Python 小记
1 传参-数组里包含字典
-
需要传的参数
-
form文件
from wtforms import Form, StringField, FieldList, FormField, IntegerField
class QuickReplayContentDetail(Form):
msgType = IntegerField('msgType', default=1)
msgContent = StringField('msgContent', default="uuu")
class SardineReplyPersonAddQuickReplyForm(Form):
# 集团id
cliqueId = StringField('cliqueId')
# 标题
title = StringField('title')
# type类型
type = StringField('type')
# groupName 组名
groupName = StringField('groupName')
# content 内容
content = FieldList(FormField(QuickReplayContentDetail), min_entries=2)
print(SardineReplyPersonAddQuickReplyForm().data)
- case里引用
from wtforms import StringField
from src.cases.BaseCase import BaseCase
from src.common.enums.CliqueEnum import CliqueEnum
from src.common.enums.ResponseEnum import ResponseEnum
from src.common.enums.ServiceNameEnum import ServiceNameEnum
from src.forms.reception_center_forms.quickReplyForms.SardineReplyPersonAddQuickReplyForm import \
SardineReplyPersonAddQuickReplyForm
from src.mapper.SardineQuickReplyMapper import SardineQuickReplyMapper
class SardineReplyPersonAddQuickReplyCase(BaseCase):
# 刷新接待中心
ServiceName = ServiceNameEnum.SARDINE_SERVICE_NAME.value
method = '/api/sardine/reply/person/addQuickReply'
def test_case_1(self):
"""
:author:木兮
:level: 0
:title:
:premise:
:step:
:result:
:time:2021/4/29 10:20
"""
form = SardineReplyPersonAddQuickReplyForm()
form.cliqueId.data = CliqueEnum.CLIQUE_ID.value
form.title.data = '我是标题'
form.type.data = ''
# 分组名,从数据库获取(这里选择了已有分组)
groupNameSqlId = SardineQuickReplyMapper()
groupName = groupNameSqlId.queryQuickReplyGroupName()[0]
print(groupName)
form.groupName.data = groupName
# content
form.content[0].msgType.data = 2
form.content[0].msgContent.data = 'hhh'
print(form.data)
response = self.service.post(self.ServiceName, self.method, form.data).json()
self.assertEqual(response.get('code'), ResponseEnum.CODE_SUCCESS.value)
2 连接数据库
- mapper文件
import pymysql
import traceback
from src.common.enums.HostEnum import HostEnum
class SardineQuickReplyMapper:
def __init__(self):
self.connection = pymysql.connect(host='xxxx.mysql.rds.aliyuncs.com',
user='xxxx',
password="xxxx",
database='sardine_qa',
charset='utf8')
def insertAutomationTask(self, value):
try:
insert_sql = "INSERT INTO ht_automation_task_info (environment, group_id, project_name, build_id, builder, git_branch, commit_detail, total_case, pass_case, pass_rate, fail_case, skip_case, task_begin_time, task_total_time) \
VALUES ('%s', '%s','%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', str_to_date('%s','%%Y-%%m-%%d %%H:%%i:%%s'), '%s')"
with self.connection.cursor() as cursor: # 建游标
cursor.execute(insert_sql % value)
self.connection.commit()
except Exception:
traceback.print_exc()
self.connection.rollback()
def queryQuickReplyGroupName(self):
query_sql = "SELECT group_name from reply_group WHERE customer_id = '94797356278390784' and status=1"
try:
with self.connection.cursor() as cursor:
# cursor.execute(query_sql % (build_id))
cursor.execute(query_sql)
return cursor.fetchone()
except Exception:
traceback.print_exc()
def updateTaskByBuildId(self, build_id, values):
"""
根据构建id更新构建结果
:param build_id:
:param values:
:return:
"""
try:
list_values = list(values)
list_values.append(build_id)
tuple_values = tuple(list_values)
update_sql = "UPDATE ht_automation_task_info " \
"SET environment='%s', group_id='%s', project_name='%s', build_id='%s', builder='%s', " \
"git_branch='%s', commit_detail='%s', total_case='%s', pass_case='%s', pass_rate='%s', " \
"fail_case='%s', skip_case='%s', task_begin_time=str_to_date('%s','%%Y-%%m-%%d %%H:%%i:%%s'), " \
"task_total_time='%s'" \
"WHERE build_id='%s'"
with self.connection.cursor() as cursor:
cursor.execute(update_sql % tuple_values)
self.connection.commit()
except Exception:
traceback.print_exc()
self.connection.rollback()
def closeConnect(self):
self.connection.close()
- case里引用
# 分组名,从数据库获取(这里选择了已有分组)
groupNameSqlId = SardineQuickReplyMapper()
groupName = groupNameSqlId.queryQuickReplyGroupName()[0]
print(groupName)
form.groupName.data = groupName