Commit 973374a0 authored by liangfenglong's avatar liangfenglong

234

parent ff3eb667
File added
from .tasks import *
\ No newline at end of file
from django.contrib import admin
# Register your models here.
from django.apps import AppConfig
class BaseConfig(AppConfig):
name = 'base'
def task():
print('$' * 100)
# Generated by Django 2.2.3 on 2020-11-04 19:04
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
initial = True
dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
]
operations = [
migrations.CreateModel(
name='Case',
fields=[
('case_id', models.AutoField(primary_key=True, serialize=False)),
('case_name', models.CharField(max_length=100)),
('description', models.CharField(max_length=200)),
('content', models.TextField()),
('update_time', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
],
),
migrations.CreateModel(
name='Development',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(max_length=100)),
('tel', models.CharField(max_length=20)),
],
),
migrations.CreateModel(
name='Environment',
fields=[
('env_id', models.AutoField(primary_key=True, serialize=False)),
('env_name', models.CharField(max_length=100)),
('description', models.CharField(max_length=200)),
('url', models.CharField(max_length=100)),
('update_time', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
],
),
migrations.CreateModel(
name='HomeIndex',
fields=[
('id', models.AutoField(primary_key=True, serialize=False)),
('img_name', models.CharField(default='', max_length=255)),
('project_num', models.IntegerField(null=True)),
('env_num', models.IntegerField(null=True)),
('interface_num', models.IntegerField(null=True)),
('case_num', models.IntegerField(null=True)),
('plan_num', models.IntegerField(null=True)),
('report_num', models.IntegerField(null=True)),
('task_num', models.IntegerField(null=True)),
('qrcode_name', models.CharField(default='', max_length=255)),
('update_time', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
],
),
migrations.CreateModel(
name='Plan',
fields=[
('plan_id', models.AutoField(primary_key=True, serialize=False)),
('plan_name', models.CharField(max_length=100)),
('description', models.CharField(max_length=200)),
('content', models.TextField()),
('report_name', models.CharField(default='', max_length=255)),
('make', models.IntegerField(null=True)),
('update_time', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
('case', models.ManyToManyField(to='base.Case')),
('environment', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='base.Environment')),
],
),
migrations.CreateModel(
name='Variable',
fields=[
('variable_id', models.AutoField(primary_key=True, serialize=False)),
('variable_name', models.CharField(max_length=100)),
('variable_value', models.CharField(max_length=100)),
('description', models.CharField(max_length=200)),
('update_time', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
],
),
migrations.CreateModel(
name='Report',
fields=[
('report_id', models.AutoField(primary_key=True, serialize=False)),
('report_name', models.CharField(max_length=255)),
('pic_name', models.CharField(default='', max_length=255)),
('totalTime', models.CharField(default='', max_length=50)),
('startTime', models.CharField(default='', max_length=50)),
('content', models.TextField()),
('case_num', models.IntegerField(null=True)),
('pass_num', models.IntegerField(null=True)),
('fail_num', models.IntegerField(null=True)),
('error_num', models.IntegerField(null=True)),
('update_time', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
('path', models.FilePathField(null=True)),
('plan', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='base.Plan')),
('update_user', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
],
),
migrations.CreateModel(
name='Project',
fields=[
('prj_id', models.AutoField(primary_key=True, serialize=False)),
('prj_name', models.CharField(max_length=100)),
('description', models.CharField(max_length=200)),
('update_time', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
('update_user', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
],
),
migrations.AddField(
model_name='plan',
name='project',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='base.Project'),
),
migrations.AddField(
model_name='plan',
name='update_user',
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL),
),
migrations.CreateModel(
name='Interface',
fields=[
('if_id', models.AutoField(primary_key=True, serialize=False)),
('if_name', models.CharField(max_length=100)),
('url', models.CharField(max_length=100)),
('method', models.CharField(max_length=10)),
('data_type', models.CharField(max_length=10)),
('description', models.CharField(max_length=200)),
('request_headers', models.TextField()),
('request_params', models.TextField()),
('request_body', models.TextField()),
('update_time', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
('project', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='base.Project')),
('update_user', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
],
),
migrations.AddField(
model_name='environment',
name='project',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='base.Project'),
),
migrations.AddField(
model_name='environment',
name='update_user',
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL),
),
migrations.AddField(
model_name='case',
name='interface',
field=models.ManyToManyField(to='base.Interface'),
),
migrations.AddField(
model_name='case',
name='project',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='base.Project'),
),
migrations.AddField(
model_name='case',
name='update_user',
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL),
),
]
# Generated by Django 2.2.3 on 2020-11-23 15:25
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
('base', '0001_initial'),
]
operations = [
migrations.CreateModel(
name='TestUser',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('telephone', models.CharField(max_length=15)),
('password', models.CharField(max_length=20)),
('desc', models.CharField(max_length=100, null=True)),
('create_time', models.DateTimeField(auto_now_add=True)),
('update_time', models.DateTimeField(auto_now=True)),
('operator', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL)),
],
),
migrations.AddField(
model_name='case',
name='login_user',
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='base.TestUser'),
),
]
# Generated by Django 2.2.3 on 2020-12-11 17:07
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('base', '0002_auto_20201123_1525'),
]
operations = [
migrations.AddField(
model_name='variable',
name='params_used',
field=models.BooleanField(default=False),
),
]
from django.db import models
from django.contrib.auth.models import User
# `
class Project(models.Model):
prj_id = models.AutoField(primary_key=True, null=False)
prj_name = models.CharField(max_length=100)
# sign = models.ForeignKey('Sign', on_delete=models.CASCADE, default='')
description = models.CharField(max_length=200)
update_time = models.DateTimeField('更新时间', auto_now=True)
update_user = models.ForeignKey(User, on_delete=models.CASCADE, null=True)
def __str__(self):
return self.prj_name
class Environment(models.Model):
env_id = models.AutoField(primary_key=True, null=False)
env_name = models.CharField(max_length=100)
project = models.ForeignKey('Project', on_delete=models.CASCADE)
description = models.CharField(max_length=200)
url = models.CharField(max_length=100)
update_time = models.DateTimeField('更新时间', auto_now=True)
update_user = models.ForeignKey(User, on_delete=models.CASCADE, null=True)
def __str__(self):
return self.env_name
class Interface(models.Model):
if_id = models.AutoField(primary_key=True, null=False)
if_name = models.CharField(max_length=100)
url = models.CharField(max_length=100)
method = models.CharField(max_length=10)
data_type = models.CharField(max_length=10)
project = models.ForeignKey('Project', on_delete=models.CASCADE)
description = models.CharField(max_length=200)
request_headers = models.TextField()
request_params = models.TextField()
request_body = models.TextField()
update_time = models.DateTimeField('更新时间', auto_now=True)
update_user = models.ForeignKey(User, on_delete=models.CASCADE, null=True)
def __str__(self):
return self.if_name
class Case(models.Model):
case_id = models.AutoField(primary_key=True, null=False)
case_name = models.CharField(max_length=100)
project = models.ForeignKey('Project', on_delete=models.CASCADE)
description = models.CharField(max_length=200)
content = models.TextField()
update_time = models.DateTimeField('更新时间', auto_now=True)
update_user = models.ForeignKey(User, on_delete=models.CASCADE, null=True)
interface = models.ManyToManyField(Interface)
login_user = models.ForeignKey('TestUser',on_delete=models.SET_NULL,null=True)
def __str__(self):
return self.case_name
class Plan(models.Model):
plan_id = models.AutoField(primary_key=True, null=False)
plan_name = models.CharField(max_length=100)
project = models.ForeignKey('Project', on_delete=models.CASCADE)
environment = models.ForeignKey('Environment', on_delete=models.CASCADE)
description = models.CharField(max_length=200)
content = models.TextField()
report_name = models.CharField(max_length=255, default="")
make = models.IntegerField(null=True)
update_time = models.DateTimeField('更新时间', auto_now=True)
update_user = models.ForeignKey(User, on_delete=models.CASCADE, null=True)
case = models.ManyToManyField(Case)
def __str__(self):
return self.plan_name
class Report(models.Model):
report_id = models.AutoField(primary_key=True, null=False)
report_name = models.CharField(max_length=255)
pic_name = models.CharField(max_length=255, default='')
totalTime = models.CharField(max_length=50, default='')
startTime = models.CharField(max_length=50, default='')
plan = models.ForeignKey('Plan', on_delete=models.CASCADE)
content = models.TextField()
case_num = models.IntegerField(null=True)
pass_num = models.IntegerField(null=True)
fail_num = models.IntegerField(null=True)
error_num = models.IntegerField(null=True)
update_time = models.DateTimeField('更新时间', auto_now=True)
update_user = models.ForeignKey(User, on_delete=models.CASCADE, null=True)
path = models.FilePathField(null=True)
def __str__(self):
return self.report_name
class HomeIndex(models.Model):
id = models.AutoField(primary_key=True, null=False)
img_name = models.CharField(max_length=255, default='')
project_num = models.IntegerField(null=True)
env_num = models.IntegerField(null=True)
interface_num = models.IntegerField(null=True)
case_num = models.IntegerField(null=True)
plan_num = models.IntegerField(null=True)
# sign_num = models.IntegerField(null=True)
report_num = models.IntegerField(null=True)
task_num = models.IntegerField(null=True)
qrcode_name = models.CharField(max_length=255, default='')
update_time = models.DateTimeField('更新时间', auto_now=True)
def __str__(self):
return
# 全局变量
class Variable(models.Model):
variable_id = models.AutoField(primary_key=True, null=False)
variable_name = models.CharField(max_length=100)
variable_value = models.CharField(max_length=100)
description = models.CharField(max_length=200)
update_time = models.DateTimeField('更新时间', auto_now=True)
params_used = models.BooleanField(default=False)
def __str__(self):
return self.variable_name
# 开发对应表
class Development(models.Model):
name = models.CharField(max_length=100) # 开发名称
tel = models.CharField(max_length=20) # 手机号
def __str__(self):
return self.name
class TestUser(models.Model):
telephone = models.CharField(max_length=15)
password = models.CharField(max_length=20)
desc = models.CharField(max_length=100,null=True)
operator = models.ForeignKey(User, on_delete=models.SET_NULL, null=True)
create_time = models.DateTimeField(auto_now_add=True)
update_time = models.DateTimeField(auto_now=True)
# !/usr/bin/env python
# coding=utf-8
from django.core.cache import cache
from django.conf import settings
from redis import Redis
r = Redis(**settings.REDIS)
def page_cache(timeout):
def wrap1(view_func): # page_cache装饰器
def wrap2(request, *args, **kwargs):
key = 'Response-{}'.format(request.get_full_path()) # 拼接唯一的key
response = cache.get(key) # 从缓存中获取数据
print('从缓存中获取数据:{}'.format(response))
if response is None:
# 获取数据库中的数据,在添加到缓存中
response = view_func(request, *args, **kwargs)
cache.set(key, response, timeout)
print('从数据库中获取:{}'.format(response))
return response
return wrap2
return wrap1
#!/user/bin/env python
# coding=utf-8
'''
# 创 建 人: 李木子
# 文 件 名: performance.py
# 说 明: locust 方法
# 创建时间: 2019/6/23
'''
import sys
sys.path.insert(0, r'/Users/edz/Downloads/EasyTest_master')
from locust import HttpLocust, TaskSet, task, Locust, events
from locust.clients import HttpSession
import queue, json, subprocess, os
from lib.sql_parameter import get_parameters
from lib.public import get_extract
import logging
log = logging.getLogger('log')
class UserBehavior(TaskSet): # 定义用户行为
def on_start(self):
self.if_dict_list, self.url = get_parameters()
self.extract_dict = ''
def teardown(self):
log.info('结束!')
@task(1)
def test_request(self):
session = HttpSession(self.url)
for interface_ in self.if_dict_list:
for interface in interface_:
if isinstance(interface['body'], dict):
for k, v in interface['body'].items():
if '$' in str(v):
interface['body'][k] = self.extract_dict[v[1:]]
if interface['method'] in ["post", "put"]:
if interface['data_type'] == 'json':
res = session.request(method=interface['method'], url=interface['url'],
json=interface['body'], headers=interface['header'])
elif interface['data_type'] == 'data':
res = session.request(method=interface['method'], url=interface['url'],
data=interface['body'], headers=interface['header'])
elif interface['method'] in ["get", "delete"]:
if interface['is_sign']:
if interface['sign_type'] == 4:
res = session.request(method=interface['method'], url=interface['url'],
params={'data': interface['body']},
headers=interface['header'])
else:
res = session.request(method=interface['method'], url=interface['url'],
params=interface['body'],
headers=interface['header'])
if interface['extract']:
self.extract_dict = get_extract(interface['extract'], res.text)
log.info(res.text)
class WebsiteUser(Locust): # 设置性能测试;
task_set = UserBehavior # 指向一个定义了的用户行为类;
min_wait = 3000 # 用户执行任务之间等待时间的下界,单位:毫秒;
max_wait = 6000 # 用户执行任务之间等待时间的上界,单位:毫秒;
def run():
subprocess.check_call(
'locust -f /Users/edz/Downloads/EasyTest_master/base/performance.py')
if __name__ == '__main__':
run()
"""
需要 在 Terminal 中 手动执行 locust -f /Users/edz/Downloads/EasyTest_master/base/performance.py
"""
# !/usr/bin/python
# coding:utf-8
from __future__ import absolute_import
from EasyTest.celery import app
from celery import shared_task
import time, logging, os
from common.connectMySql import SqL
from lib.public import DrawPie, remove_logs
from datetime import datetime
from lib.sql_parameter import test_case, get_sign, get_env
from run_this import send_email
from common import readConfig
log = logging.getLogger('log')
sql = SqL()
# @app.task
# def add(x, y):
# return x + y
# @shared_task
# def hello_world():
# log.info('运行定时任务!')
# with open("output.txt", "a") as f:
# f.write("hello world --->{}".format(time.strftime('%Y-%m-%d %H-%M-%S')))
# f.write("\n")
@shared_task
def run_plan():
log.info('run plan------->执行测试计划中<--------------')
start_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
plan = sql.execute_sql(
'select bp.environment_id, bp.content,bp.plan_name,bp.plan_id from base_plan as bp where bp.is_task = 1',
dict_type=True)
if plan == None:
log.error('查询定时任务计划为空!')
return
plan_id = plan['plan_id']
env_id = plan['environment_id']
case_id_list = eval(plan['content'])
begin_time = time.clock()
prj_id, env_url, private_key = get_env(env_id)
sign_type = get_sign(prj_id)
case_num = len(case_id_list)
content = []
pass_num = 0
fail_num = 0
error_num = 0
i = 0
for case_id in case_id_list:
case_result = test_case(case_id, env_id, case_id_list, sign_type, private_key, env_url, begin_time)
content.append(case_result)
end_time = time.clock()
totalTime = str(end_time - begin_time) + 's'
for step in content:
for s in step['step_list']:
if s["result"] == "pass":
pass_num += 1
i += 1
s['id'] = i
if s["result"] == "fail":
fail_num += 1
i += 1
s['id'] = i
if s["result"] == "error":
error_num += 1
i += 1
s['id'] = i
pic_name = DrawPie(pass_num, fail_num, error_num)
report_name = plan['plan_name'] + "-" + str(start_time)
sql.execute_sql(
'insert into base_report(report_name,pic_name,totalTime,startTime,content,case_num,pass_num,fail_num,error_num,plan_id,update_time, update_user) values("{}","{}","{}","{}","{}","{}","{}","{}","{}","{}","{}", "{}")'.format(
report_name,pic_name,totalTime,start_time,str(content).replace('"', "'"), case_num,pass_num,fail_num,
error_num,plan_id, str(datetime.now()), 'root'))
sql.execute_sql('update base_plan set make=0, update_time="{}"'.format(datetime.now()))
if fail_num or error_num:
# report_file_html = get_new_report_html(report_path)
# report_file_list.append(report_file_html)
user = readConfig.user
# qq邮箱授权码
pwd = readConfig.pwd
user_163 = readConfig.user_163
# 163邮箱授权码
pwd_163 = readConfig.pwd_163
# _to = ['1977907603@qq.com', 'liyongfeng@tzx.com.cn']
_to = readConfig.to
smtp_service = readConfig.smtp_service
smtp_service_163 = readConfig.smtp_service_163
# send_email(user, pwd, user_163, pwd_163, _to, smtp_service, smtp_service_163)
log.info('测试任务执行完成!')
@shared_task
def delete_logs():
log.info('remove logs------->删除过期日志中<--------------')
report_path = os.path.abspath(os.path.dirname(os.path.dirname(__file__))) + '/templates' + '/report'
# report_path = os.path.abspath(os.path.dirname(os.path.dirname(__file__))) + '\\templates' + '\\report'
logs_path = os.path.abspath(os.path.dirname(os.path.dirname(__file__))) + '/' + 'logs' # 拼接删除目录完整路径
# logs_path = os.path.abspath(os.path.dirname(os.path.dirname(__file__))) + '\\' + 'logs' # 拼接删除目录完整路径
pic_path = os.path.abspath(os.path.dirname(os.path.dirname(__file__))) + '/media'
report_num = remove_logs(report_path)
logs_num = remove_logs(logs_path)
pic_num = remove_logs(pic_path)
total_num = report_num + logs_num + pic_num
if total_num == 0:
log.info('remove logs------->没有要删除的文件.<--------------')
else:
log.info('remove logs------->删除过期日志文件数量:{}<--------------'.format(total_num))
from django.test import TestCase
# Create your tests here.
# !/usr/bin/env python
# coding=utf-8
# from django.conf import settings
from django.conf.urls import url
# from django.conf.urls.static import static
# from django.views.generic.base import RedirectView
from . import views, web_views
urlpatterns = [
# 项目
url(r'project/', view=views.project_index, name='project'),
url(r'project_add/', view=views.project_add, name='project_add'),
url(r'project_update/', view=views.project_update, name='project_update'),
url(r'project_delete/', view=views.project_delete, name='project_delete'),
# 测试环境
url(r'env/', view=views.env_index, name='env'),
url(r'env_add/', view=views.env_add, name='env_add'),
url(r'env_update/', view=views.env_update, name='env_update'),
url(r'env_delete/', view=views.env_delete, name='env_delete'),
# 接口
url(r'interface/', view=views.interface_index, name='interface'),
url(r'interface_add/', view=views.interface_add, name='interface_add'),
url(r'interface_update/', view=views.interface_update, name='interface_update'),
url(r'interface_delete/', view=views.interface_delete, name='interface_delete'),
#测试账号
url(r'test_user/index',view=views.test_user_index,name='test_user_index'),
url(r'test_user/(\d+)',view=views.test_user,name='test_user_edit'),
url(r'test_user/add',view=views.test_user_add,name='test_user_add'),
url(r'test_user/del',view=views.test_user_del),
# 用例
url(r'case/', view=views.case_index, name='case'),
url(r'case_add/', view=views.case_add, name='case_add'),
url(r'case_update/', view=views.case_update, name='case_update'),
url(r'case_delete/', view=views.case_delete, name='case_delete'),
url(r'case_run/', view=views.case_run, name='case_run'),
url(r'case_logs/', view=views.case_logs, name='case_logs'),
url(r'case_copy/', view=views.case_copy, name='case_copy'),
# 测试计划
url(r'plan/', view=views.plan_index, name='plan'),
url(r'plan_add/', view=views.plan_add, name='plan_add'),
url(r'plan_update/', view=views.plan_update, name='plan_update'),
url(r'plan_delete/', view=views.plan_delete, name='plan_delete'),
url(r'plan_run/', view=views.plan_run, name='plan_run'),
url(r'plan_unittest_run/', view=views.plan_unittest_run, name='plan_unittest_run'),
# 报告
url(r'report/', view=views.report_index, name='report_page'),
url(r'report_search/', view=views.report_search, name='report_search'),
# 异步请求获取数据
url(r'findata/', view=views.findata, name='findata'),
# 报告页面展示
url(r'report_page/', view=views.report_page, name='report'),
url(r'report_logs/', view=views.report_logs, name='report_logs'), # 日志
url(r'report_delete/', view=views.report_delete, name='report_delete'),
# 下载
url(r'file_download/', view=views.file_download, name='file_download'),
# 添加用户
url(r'user/', view=views.user_index, name='user_index'),
# 全局变量
url(r'variable/', view=views.variable, name='variable'),
url(r'variable_add/', view=views.variable_add, name='variable_add'),
url(r'variable_update/', view=views.variable_update, name='variable_update'),
url(r'variable_delete/', view=views.variable_delete, name='variable_delete'),
# web
url(r'web/', view=web_views.webcase_index, name='webcase_index'),
url(r'web_add/', view=web_views.webcase_add, name='webcase_add'),
]
This diff is collapsed.
This diff is collapsed.
import os
import time
import json
import logging
from django.shortcuts import render, redirect
from django.http import StreamingHttpResponse
from base.models import Project, Environment, Interface, Case, Plan, Report, Variable
from lib.execute import Test_execute, get_user # 执行接口
log = logging.getLogger('log') # 初始化log
report_path = os.path.abspath(os.path.dirname(os.path.dirname(__file__))) + '/templates' + '/report'
logs_path = os.path.abspath(os.path.dirname(os.path.dirname(__file__))) + '/' + 'logs' # 拼接删除目录完整路径
# web首页
# @login_required
# @page_cache(5)
def webcase_index(request):
user_id = request.session.get('user_id', '') # 从session中获取user_id
# if get_user(user_id):
# prj_list = Project.objects.all() # 按照user_id查询项目
# page = request.GET.get('page')
# contacts = paginator(prj_list, page)
# return render(request, "base/project/index.html", {"prj_list": prj_list, 'contacts': contacts})
# else:
# request.session['login_from'] = '/base/project/'
return render(request, 'web_base/index.html')
# 新增web用例
# @login_required
# @page_cache(5)
def webcase_add(request):
user_id = request.session.get('user_id', '') # 从session中获取user_id
# if get_user(user_id):
# prj_list = Project.objects.all() # 按照user_id查询项目
# page = request.GET.get('page')
# contacts = paginator(prj_list, page)
# return render(request, "base/project/index.html", {"prj_list": prj_list, 'contacts': contacts})
# else:
# request.session['login_from'] = '/base/project/'
return render(request, 'web_base/add.html')
# This file must be used with "source bin/activate" *from bash*
# you cannot run it directly
deactivate () {
unset -f pydoc >/dev/null 2>&1
# reset old environment variables
# ! [ -z ${VAR+_} ] returns true if VAR is declared at all
if ! [ -z "${_OLD_VIRTUAL_PATH+_}" ] ; then
PATH="$_OLD_VIRTUAL_PATH"
export PATH
unset _OLD_VIRTUAL_PATH
fi
if ! [ -z "${_OLD_VIRTUAL_PYTHONHOME+_}" ] ; then
PYTHONHOME="$_OLD_VIRTUAL_PYTHONHOME"
export PYTHONHOME
unset _OLD_VIRTUAL_PYTHONHOME
fi
# This should detect bash and zsh, which have a hash command that must
# be called to get it to forget past commands. Without forgetting
# past commands the $PATH changes we made may not be respected
if [ -n "${BASH-}" ] || [ -n "${ZSH_VERSION-}" ] ; then
hash -r 2>/dev/null
fi
if ! [ -z "${_OLD_VIRTUAL_PS1+_}" ] ; then
PS1="$_OLD_VIRTUAL_PS1"
export PS1
unset _OLD_VIRTUAL_PS1
fi
unset VIRTUAL_ENV
if [ ! "${1-}" = "nondestructive" ] ; then
# Self destruct!
unset -f deactivate
fi
}
# unset irrelevant variables
deactivate nondestructive
VIRTUAL_ENV="/Users/apple/Documents/002project/EasyTest"
export VIRTUAL_ENV
_OLD_VIRTUAL_PATH="$PATH"
PATH="$VIRTUAL_ENV/bin:$PATH"
export PATH
# unset PYTHONHOME if set
if ! [ -z "${PYTHONHOME+_}" ] ; then
_OLD_VIRTUAL_PYTHONHOME="$PYTHONHOME"
unset PYTHONHOME
fi
if [ -z "${VIRTUAL_ENV_DISABLE_PROMPT-}" ] ; then
_OLD_VIRTUAL_PS1="$PS1"
if [ "x" != x ] ; then
PS1="$PS1"
else
PS1="(`basename \"$VIRTUAL_ENV\"`) $PS1"
fi
export PS1
fi
# Make sure to unalias pydoc if it's already there
alias pydoc 2>/dev/null >/dev/null && unalias pydoc
pydoc () {
python -m pydoc "$@"
}
# This should detect bash and zsh, which have a hash command that must
# be called to get it to forget past commands. Without forgetting
# past commands the $PATH changes we made may not be respected
if [ -n "${BASH-}" ] || [ -n "${ZSH_VERSION-}" ] ; then
hash -r 2>/dev/null
fi
# This file must be used with "source bin/activate.csh" *from csh*.
# You cannot run it directly.
# Created by Davide Di Blasi <davidedb@gmail.com>.
alias deactivate 'test $?_OLD_VIRTUAL_PATH != 0 && setenv PATH "$_OLD_VIRTUAL_PATH" && unset _OLD_VIRTUAL_PATH; rehash; test $?_OLD_VIRTUAL_PROMPT != 0 && set prompt="$_OLD_VIRTUAL_PROMPT" && unset _OLD_VIRTUAL_PROMPT; unsetenv VIRTUAL_ENV; test "\!:*" != "nondestructive" && unalias deactivate && unalias pydoc'
# Unset irrelevant variables.
deactivate nondestructive
setenv VIRTUAL_ENV "/Users/apple/Documents/002project/EasyTest_master"
set _OLD_VIRTUAL_PATH="$PATH"
setenv PATH "$VIRTUAL_ENV/bin:$PATH"
if ("" != "") then
set env_name = ""
else
set env_name = `basename "$VIRTUAL_ENV"`
endif
# Could be in a non-interactive environment,
# in which case, $prompt is undefined and we wouldn't
# care about the prompt anyway.
if ( $?prompt ) then
set _OLD_VIRTUAL_PROMPT="$prompt"
set prompt = "[$env_name] $prompt"
endif
unset env_name
alias pydoc python -m pydoc
rehash
# This file must be used using `. bin/activate.fish` *within a running fish ( http://fishshell.com ) session*.
# Do not run it directly.
function deactivate -d 'Exit virtualenv mode and return to the normal environment.'
# reset old environment variables
if test -n "$_OLD_VIRTUAL_PATH"
set -gx PATH $_OLD_VIRTUAL_PATH
set -e _OLD_VIRTUAL_PATH
end
if test -n "$_OLD_VIRTUAL_PYTHONHOME"
set -gx PYTHONHOME $_OLD_VIRTUAL_PYTHONHOME
set -e _OLD_VIRTUAL_PYTHONHOME
end
if test -n "$_OLD_FISH_PROMPT_OVERRIDE"
# Set an empty local `$fish_function_path` to allow the removal of `fish_prompt` using `functions -e`.
set -l fish_function_path
# Erase virtualenv's `fish_prompt` and restore the original.
functions -e fish_prompt
functions -c _old_fish_prompt fish_prompt
functions -e _old_fish_prompt
set -e _OLD_FISH_PROMPT_OVERRIDE
end
set -e VIRTUAL_ENV
if test "$argv[1]" != 'nondestructive'
# Self-destruct!
functions -e pydoc
functions -e deactivate
end
end
# Unset irrelevant variables.
deactivate nondestructive
set -gx VIRTUAL_ENV "/Users/apple/Documents/002project/EasyTest_master"
set -gx _OLD_VIRTUAL_PATH $PATH
set -gx PATH "$VIRTUAL_ENV/bin" $PATH
# Unset `$PYTHONHOME` if set.
if set -q PYTHONHOME
set -gx _OLD_VIRTUAL_PYTHONHOME $PYTHONHOME
set -e PYTHONHOME
end
function pydoc
python -m pydoc $argv
end
if test -z "$VIRTUAL_ENV_DISABLE_PROMPT"
# Copy the current `fish_prompt` function as `_old_fish_prompt`.
functions -c fish_prompt _old_fish_prompt
function fish_prompt
# Save the current $status, for fish_prompts that display it.
set -l old_status $status
# Prompt override provided?
# If not, just prepend the environment name.
if test -n ""
printf '%s%s' "" (set_color normal)
else
printf '%s(%s) ' (set_color normal) (basename "$VIRTUAL_ENV")
end
# Restore the original $status
echo "exit $old_status" | source
_old_fish_prompt
end
set -gx _OLD_FISH_PROMPT_OVERRIDE "$VIRTUAL_ENV"
end
# This file must be dot sourced from PoSh; you cannot run it directly. Do this: . ./activate.ps1
$script:THIS_PATH = $myinvocation.mycommand.path
$script:BASE_DIR = split-path (resolve-path "$THIS_PATH/..") -Parent
function global:deactivate([switch] $NonDestructive)
{
if (test-path variable:_OLD_VIRTUAL_PATH)
{
$env:PATH = $variable:_OLD_VIRTUAL_PATH
remove-variable "_OLD_VIRTUAL_PATH" -scope global
}
if (test-path function:_old_virtual_prompt)
{
$function:prompt = $function:_old_virtual_prompt
remove-item function:\_old_virtual_prompt
}
if ($env:VIRTUAL_ENV)
{
$old_env = split-path $env:VIRTUAL_ENV -leaf
remove-item env:VIRTUAL_ENV -erroraction silentlycontinue
}
if (!$NonDestructive)
{
# Self destruct!
remove-item function:deactivate
remove-item function:pydoc
}
}
function global:pydoc
{
python -m pydoc $args
}
# unset irrelevant variables
deactivate -nondestructive
$VIRTUAL_ENV = $BASE_DIR
$env:VIRTUAL_ENV = $VIRTUAL_ENV
$global:_OLD_VIRTUAL_PATH = $env:PATH
$env:PATH = "$env:VIRTUAL_ENV/bin:" + $env:PATH
if (!$env:VIRTUAL_ENV_DISABLE_PROMPT)
{
function global:_old_virtual_prompt
{
""
}
$function:_old_virtual_prompt = $function:prompt
if ("" -ne "")
{
function global:prompt
{
# Add the custom prefix to the existing prompt
write-host "" -nonewline
& $function:_old_virtual_prompt
}
}
else
{
function global:prompt
{
# Add a prefix to the current prompt, but don't discard it.
write-host "($( split-path $env:VIRTUAL_ENV -leaf )) " -nonewline
& $function:_old_virtual_prompt
}
}
}
"""Xonsh activate script for virtualenv"""
from xonsh.tools import get_sep as _get_sep
def _deactivate(args):
if "pydoc" in aliases:
del aliases["pydoc"]
if ${...}.get("_OLD_VIRTUAL_PATH", ""):
$PATH = $_OLD_VIRTUAL_PATH
del $_OLD_VIRTUAL_PATH
if ${...}.get("_OLD_VIRTUAL_PYTHONHOME", ""):
$PYTHONHOME = $_OLD_VIRTUAL_PYTHONHOME
del $_OLD_VIRTUAL_PYTHONHOME
if "VIRTUAL_ENV" in ${...}:
del $VIRTUAL_ENV
if "VIRTUAL_ENV_PROMPT" in ${...}:
del $VIRTUAL_ENV_PROMPT
if "nondestructive" not in args:
# Self destruct!
del aliases["deactivate"]
# unset irrelevant variables
_deactivate(["nondestructive"])
aliases["deactivate"] = _deactivate
$VIRTUAL_ENV = r"/Users/edz/AutoTestProm/AutoTestProm/EasyTest_master"
$_OLD_VIRTUAL_PATH = $PATH
$PATH = $PATH[:]
$PATH.add($VIRTUAL_ENV + _get_sep() + "bin", front=True, replace=True)
if ${...}.get("PYTHONHOME", ""):
# unset PYTHONHOME if set
$_OLD_VIRTUAL_PYTHONHOME = $PYTHONHOME
del $PYTHONHOME
$VIRTUAL_ENV_PROMPT = ""
if not $VIRTUAL_ENV_PROMPT:
del $VIRTUAL_ENV_PROMPT
aliases["pydoc"] = ["python", "-m", "pydoc"]
"""By using execfile(this_file, dict(__file__=this_file)) you will
activate this virtualenv environment.
This can be used when you must use an existing Python interpreter, not
the virtualenv bin/python
"""
try:
__file__
except NameError:
raise AssertionError(
"You must run this like execfile('path/to/activate_this.py', dict(__file__='path/to/activate_this.py'))")
import sys
import os
old_os_path = os.environ.get('PATH', '')
os.environ['PATH'] = os.path.dirname(os.path.abspath(__file__)) + os.pathsep + old_os_path
base = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
if sys.platform == 'win32':
site_packages = os.path.join(base, 'Lib', 'site-packages')
else:
site_packages = os.path.join(base, 'lib', 'python%s' % sys.version[:3], 'site-packages')
prev_sys_path = list(sys.path)
import site
site.addsitedir(site_packages)
sys.real_prefix = sys.prefix
sys.prefix = base
# Move the added items to the front of the path:
new_sys_path = []
for item in list(sys.path):
if item not in prev_sys_path:
new_sys_path.append(item)
sys.path.remove(item)
sys.path[:0] = new_sys_path
#!/Users/apple/Documents/002project/EasyTest_master/bin/python3
# -*- coding: utf-8 -*-
import re
import sys
from celery.__main__ import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(main())
#!/Users/apple/Documents/002project/EasyTest_master/bin/python3
# -*- coding: utf-8 -*-
import re
import sys
from celery.__main__ import _compat_beat
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(_compat_beat())
#!/Users/apple/Documents/002project/EasyTest_master/bin/python3
# -*- coding: utf-8 -*-
import re
import sys
from celery.__main__ import _compat_worker
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(_compat_worker())
#!/Users/apple/Documents/002project/EasyTest_master/bin/python3
# -*- coding: utf-8 -*-
import re
import sys
from celery.__main__ import _compat_multi
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(_compat_multi())
#!/Users/apple/Documents/002project/EasyTest_master/bin/python3
# -*- coding: utf-8 -*-
import re
import sys
from chardet.cli.chardetect import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(main())
#!/Users/apple/Documents/002project/EasyTest_master/bin/python3
# -*- coding: utf-8 -*-
import re
import sys
from django.core.management import execute_from_command_line
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(execute_from_command_line())
#!/Users/apple/Documents/002project/EasyTest_master/bin/python3
from django.core import management
if __name__ == "__main__":
management.execute_from_command_line()
#!/Users/apple/Documents/002project/EasyTest_master/bin/python3
# -*- coding: utf-8 -*-
import re
import sys
from setuptools.command.easy_install import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
sys.exit(main())
#!/Users/apple/Documents/002project/EasyTest_master/bin/python3
# -*- coding: utf-8 -*-
import re
import sys
from setuptools.command.easy_install import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
sys.exit(main())
#!/Users/edz/AutoTestProm/AutoTestProm/EasyTest_master/bin/python3.7
# -*- coding: utf-8 -*-
import re
import sys
from setuptools.command.easy_install import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
sys.exit(main())
#!/Users/apple/Documents/002project/EasyTest_master/bin/python3
# -*- coding: utf-8 -*-
import re
import sys
from numpy.f2py.f2py2e import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(main())
#!/Users/apple/Documents/002project/EasyTest_master/bin/python3
# -*- coding: utf-8 -*-
import re
import sys
from numpy.f2py.f2py2e import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(main())
#!/Users/apple/Documents/002project/EasyTest_master/bin/python3
# -*- coding: utf-8 -*-
import re
import sys
from numpy.f2py.f2py2e import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(main())
#!/Users/edz/AutoTestProm/AutoTestProm/EasyTest_master/bin/python3.7
# -*- coding: utf-8 -*-
import re
import sys
from numpy.f2py.f2py2e import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(main())
#!/Users/apple/Documents/002project/EasyTest_master/bin/python3
# -*- coding: utf-8 -*-
import re
import sys
from faker.cli import execute_from_command_line
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(execute_from_command_line())
#!/Users/apple/Documents/002project/EasyTest_master/bin/python3
# -*- coding: utf-8 -*-
import re
import sys
from markdown.__main__ import run
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(run())
#!/Users/apple/Documents/002project/EasyTest_master/bin/python3
# -*- coding: utf-8 -*-
import re
import sys
from Naked.app import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(main())
#!/Users/apple/Documents/002project/EasyTest_master/bin/python3
# -*- coding: utf-8 -*-
import re
import sys
from pip._internal.cli.main import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
sys.exit(main())
#!/Users/apple/Documents/002project/EasyTest_master/bin/python3
# -*- coding: utf-8 -*-
import re
import sys
from pip._internal.cli.main import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
sys.exit(main())
#!/Users/apple/Documents/002project/EasyTest_master/bin/python3
# -*- coding: utf-8 -*-
import re
import sys
from pip._internal.cli.main import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
sys.exit(main())
#!/Users/edz/AutoTestProm/AutoTestProm/EasyTest_master/bin/python3.7
# -*- coding: utf-8 -*-
import re
import sys
from pip._internal.cli.main import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
sys.exit(main())
python3
\ No newline at end of file
#!/Users/apple/Documents/002project/EasyTest_master/bin/python
import sys
import getopt
import sysconfig
valid_opts = ['prefix', 'exec-prefix', 'includes', 'libs', 'cflags',
'ldflags', 'help']
if sys.version_info >= (3, 2):
valid_opts.insert(-1, 'extension-suffix')
valid_opts.append('abiflags')
if sys.version_info >= (3, 3):
valid_opts.append('configdir')
def exit_with_usage(code=1):
sys.stderr.write("Usage: {0} [{1}]\n".format(
sys.argv[0], '|'.join('--'+opt for opt in valid_opts)))
sys.exit(code)
try:
opts, args = getopt.getopt(sys.argv[1:], '', valid_opts)
except getopt.error:
exit_with_usage()
if not opts:
exit_with_usage()
pyver = sysconfig.get_config_var('VERSION')
getvar = sysconfig.get_config_var
opt_flags = [flag for (flag, val) in opts]
if '--help' in opt_flags:
exit_with_usage(code=0)
for opt in opt_flags:
if opt == '--prefix':
print(sysconfig.get_config_var('prefix'))
elif opt == '--exec-prefix':
print(sysconfig.get_config_var('exec_prefix'))
elif opt in ('--includes', '--cflags'):
flags = ['-I' + sysconfig.get_path('include'),
'-I' + sysconfig.get_path('platinclude')]
if opt == '--cflags':
flags.extend(getvar('CFLAGS').split())
print(' '.join(flags))
elif opt in ('--libs', '--ldflags'):
abiflags = getattr(sys, 'abiflags', '')
libs = ['-lpython' + pyver + abiflags]
libs += getvar('LIBS').split()
libs += getvar('SYSLIBS').split()
# add the prefix/lib/pythonX.Y/config dir, but only if there is no
# shared library in prefix/lib/.
if opt == '--ldflags':
if not getvar('Py_ENABLE_SHARED'):
libs.insert(0, '-L' + getvar('LIBPL'))
if not getvar('PYTHONFRAMEWORK'):
libs.extend(getvar('LINKFORSHARED').split())
print(' '.join(libs))
elif opt == '--extension-suffix':
ext_suffix = sysconfig.get_config_var('EXT_SUFFIX')
if ext_suffix is None:
ext_suffix = sysconfig.get_config_var('SO')
print(ext_suffix)
elif opt == '--abiflags':
if not getattr(sys, 'abiflags', None):
exit_with_usage()
print(sys.abiflags)
elif opt == '--configdir':
print(sysconfig.get_config_var('LIBPL'))
python3.7
\ No newline at end of file
python3
\ No newline at end of file
File added
#!/Users/apple/Documents/002project/EasyTest_master/bin/python3
# -*- coding: utf-8 -*-
import re
import sys
from qrcode.console_scripts import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(main())
#!/Users/apple/Documents/002project/EasyTest_master/bin/python3
# -*- coding: utf-8 -*-
import re
import sys
from sqlparse.__main__ import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(main())
#!/Users/apple/Documents/002project/EasyTest_master/bin/python3
# -*- coding: utf-8 -*-
import re
import sys
from wheel.cli import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
sys.exit(main())
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment