def module_add(): r = request.form pm = ProductModule() pd = r.get('pd', '') pid = r.get('pid', '') name = r.get('name', '') nt = r.get('nt', '') if pd == "" or pid == "" or name == "" or nt == "": return common_response(data='', err=500, msg="参数错误,请检查!") _id = get_mongo_index('product_module_index') d = { "_id": _id, "pd": pd, "name": name, "pid": pid, "nt": nt, "st": _id, "create_time": time.time(), "update_time": time.time() } try: data = pm.table.insert_one(d) return common_response(data={"_id": data.inserted_id}, err=0, msg="添加模块成功!") except Exception as e: app.logger.error(str(e)) return common_response(data='', err=500, msg=e)
def version(): r = request pv = ProductVersion() if r.method == 'POST': r = request.form product_id = r.get('product_id', '') ver = r.get('version', '') if product_id.strip() == "": return common_response(data='', err=500, msg="产品ID不能为空!") if ver.strip() == "": return common_response(data='', err=500, msg="产品版本不能为空!") product_version = pv.table.find_one({"pd": product_id, "ver": ver}) if product_version is not None: return common_response(data='', err=500, msg="产品版本已存在!") d = { "_id": get_mongo_index('product_version_index'), "pd": product_id, "ver": ver } try: data = pv.table.insert_one(d) return common_response(data={"_id": data.inserted_id}, err=0, msg="添加产品版本成功!") except Exception as e: app.logger.error(str(e)) return common_response(data='', err=500, msg="添加产品版本失败!")
def add(): r = request.form pd = Product() name = r.get('name', None) if name is None: return common_response(data={}, err=500, msg='缺少产品名称!') check = pd.table.find_one({"name": name}) if check is not None: return common_response(data=check, err=500, msg='产品名称已存在!') try: d = { "_id": get_mongo_index('products'), "name": name, "category": r.get('category', None), "link": r.get('link', None), "desc": r.get('desc', None), "owner": current_user.username, "create_time": time.time(), "update_time": time.time() } _id = pd.table.insert_one(d) return common_response(data={"_id": _id.inserted_id, "name": name}, err=0, msg='产品添加成功!') except Exception as e: app.logger.error(str(e)) return common_response(data={}, err=500, msg=e)
def add(): pl = Plan() pv = ProductVersion() if request.method == "GET": r = request.args pd = Product() product_id = r.get('product_id', '') pd_ver = pv.table.find({"pd": product_id}, {"ver": 1}).sort([("_id", -1)]).limit(20) prod = pd.table.find_one({"_id": int(product_id)}) return render_template('plan/plan.add.html', product=prod, versions=pd_ver) if request.method == "POST": r = request.form name = r.get('plan_name', '') product_id = r.get('product_id', '') pd_ver = r.get('pd_ver', '') plan_type = r.get('plan_type', '') plan_detail = r.get('plan_detail', '') err = {} if name.strip() == "": err['name'] = "计划名称不能为空!" if product_id.strip() == "": err['product_id'] = "产品ID不能为空!" if pd_ver.strip() == "": err['pd_ver'] = "产品版本不能为空!" if plan_type.strip() == "": err['plan_type'] = "计划类型不能为空!" if plan_detail.strip() == "": err['plan_detail'] = "计划详情不能为空!" if len(err) > 0: return common_response(data=err, err=500, msg="参数错误,请查看接口返回!") try: d = { "_id": get_mongo_index('plans'), "name": name, "pd": product_id, "pd_ver": pd_ver, "type": plan_type, "detail": plan_detail, "author": current_user.username, "create_time": time.time(), "update_time": time.time() } data = pl.table.insert_one(d) return common_response(data={"_id": data.inserted_id}, err=0, msg="添加成功!") except Exception as e: app.logger.error(str(e)) return common_response(data='', err=500, msg='添加失败')
def query_or_add(self, product_id, name, pid, nt): tb = self.table r = tb.find_one({"pd": str(product_id), "pid": str(pid), "name": name}) if r is not None: return str(r["_id"]) else: _id = get_mongo_index('product_module_index') d = { "_id": _id, "pd": str(product_id), "name": name, "pid": str(pid), "nt": nt, "st": _id, "create_time": time.time(), "update_time": time.time() } r = tb.insert_one(d) return str(r.inserted_id)
def add(): if request.method == "GET": r = request.args product_id = r.get('product_id', '') plan_id = r.get('plan_id', '') if product_id.strip() == '': flash("产品ID不存在!") return redirect(url_for('plan.product')) if plan_id.strip() == "": flash("计划不存在,请重新选择!") return redirect(request.referrer) pd = Product() pl = Plan() product = pd.table.find_one({"_id": int(product_id)}) plan_ = pl.table.find_one({"_id": int(plan_id)}) if product is None: return redirect(url_for('case.dashboard')) pm = ProductModule() modules = pm.get_module_tree({"pd": str(product_id)}, 'all') return render_template('run/run.add.html', product=product, modules=modules, plan=plan_) if request.method == "POST": r = request.form rc = Run() product_id = r.get("product_id", "") plan_id = r.get("plan_id", "") run_name = r.get('run_name', '') assign_to = r.get('assign_to', '') cid = r.get('cid', '') err = {} if product_id.strip() == "": err['product_id'] = "产品ID 不能为空!" if plan_id.strip() == "": err['plan_id'] = "计划ID 不能为空!" if run_name.strip() == "": err["run_name"] = "执行名称不能为空!" if assign_to.strip() == "": err['assign_to'] = "用例执行者不能为空!" if cid.strip() == "": err['cit'] = "选择用例为空,请先选择用例!" if len(err) > 0: return common_response(data=err, err=500, msg="参数错误,请查看接口返回!") cases = cid.split(',') ids = list(map(int, cases)) detail = {} for case in cases: detail[case] = { "stat": "init", "comment": "", "bugs": "", "update_time": "" } case_count = len(cases) progress = { "init": { "name": "待执行", "count": case_count }, "stop": { "name": "暂停", "count": 0 }, "abort": { "name": "废弃", "count": 0 }, "fail": { "name": "失败", "count": 0 }, "pass": { "name": "通过", "count": 0 }, "total": { "name": "总数", "count": case_count }, "percent": { "name": "百分比", "count": "0%" } } d = { "_id": get_mongo_index('run_index'), "pd": product_id, "pl": plan_id, "name": run_name, "assign": assign_to, "stat": "未开始", "progress": progress, "start_time": "", "end_time": "", "ids": ids, "detail": detail } try: data = rc.table.insert_one(d) return common_response(data={"_id": data.inserted_id}, err=0, msg="添加执行成功!") except Exception as e: app.logger.error(str(e)) return common_response(data='', err=500, msg=str(e))
def categories(): pc = ProductCategory() if request.method == "GET": r = request.args page = r.get('page', 1) if page is None: page = 1 data = pc.get_list({}, int(page)) params = get_query_url(request) return render_template('product/categories.html', categories=data, url=request.path, params=params) if request.method == "POST": r = request.form try: check = pc.table.find_one({"name": r.get('name')}) if check is not None: return common_response(data='', err=500, msg="产品分类已经存在!") if r.get('name') is None: return common_response(data='', err=500, msg="产品分类不能为空!") d = { "_id": get_mongo_index('product_category_index'), "name": r.get('name'), "desc": r.get('desc'), "create_time": time.time(), "update_time": time.time() } pc.table.insert(d) return common_response(data={}, err=0, msg="添加成功!") except Exception as e: app.logger.error(str(e)) return common_response(data='', err=500, msg=e) if request.method == "PUT": r = request.form _id = r.get('_id', None) if _id is None: return common_response(data='', err=500, msg="_id不能为空!") query = {"_id": int(_id)} _update = {"$set": { "name": r.get('name'), "desc": r.get('desc'), "update_time": time.time() } } try: pc.table.update_one(query, _update) return common_response(data={}, err=0, msg="更新成功") except Exception as e: app.logger.error(str(e)) return common_response(data='', err=500, msg=e) if request.method == "DELETE": r = request.form _id = r.get('_id') if _id is None: return common_response(data='', err=500, msg="id不能为空!") try: pc.table.delete_one({"_id": int(_id)}) return common_response(data='', err=0, msg="删除成功") except Exception as e: app.logger.err(e) return common_response(data='', err=500, msg="删除失败!")