Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bosheng #1

Open
wants to merge 16 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 39 additions & 0 deletions API_Test/run_test.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
import request_test
from Common.config_parse import config_parse
import unittest


userdata=config_parse()["Accounts"]

s=unittest.TestSuite()
data=[('test_login',userdata["chef"]["username"],userdata["chef"]["password"],"00000"),
('test_login',userdata["chef"]["username"],'123','A0004'),
('test_login',userdata["cooker"]["username"],userdata["cooker"]["password"],"00000"),
('test_login',userdata["cooker"]["username"],'123','A0004'),
('test_login',userdata["architect"]["username"],userdata["architect"]["password"],"00000"),
('test_login',userdata["architect"]["username"],'123','A0004'),
('test_getInfo',userdata["chef"]["username"],userdata["chef"]["password"],"00000"),
('test_getInfo',userdata["architect"]["username"],userdata["architect"]["password"],"00000"),
('test_getInfo',userdata["cooker"]["username"],userdata["cooker"]["password"],"00000"),
('test_getUserList', userdata["chef"]["username"], userdata["chef"]["password"], "00000"),
('test_getUserList', userdata["architect"]["username"], userdata["architect"]["password"], "A0002"),
('test_getUserList', userdata["cooker"]["username"], userdata["cooker"]["password"], "00000"),
('test_getAnnouncement', userdata["chef"]["username"], userdata["chef"]["password"], "00000"),
('test_getAnnouncement', userdata["architect"]["username"], userdata["architect"]["password"], "A0002"),
('test_getAnnouncement', userdata["cooker"]["username"], userdata["cooker"]["password"], "00000"),
('test_getCurrentVideoInfo', userdata["chef"]["username"], userdata["chef"]["password"], "00000"),
('test_getCurrentVideoInfo', userdata["architect"]["username"], userdata["architect"]["password"], "A0002"),
('test_getCurrentVideoInfo', userdata["cooker"]["username"], userdata["cooker"]["password"], "00000"),
('test_getResource', userdata["chef"]["username"], userdata["chef"]["password"], "00000"),
('test_getResource', userdata["architect"]["username"], userdata["architect"]["password"], "A0002"),
('test_getResource', userdata["cooker"]["username"], userdata["cooker"]["password"], "00000"),
('test_getRecentMansionId', userdata["chef"]["username"], userdata["chef"]["password"], "00000"),
('test_getRecentMansionId', userdata["architect"]["username"], userdata["architect"]["password"], "00000"),
('test_getRecentMansionId', userdata["cooker"]["username"], userdata["cooker"]["password"], "A0002")
]

for i in data:
s.addTest(request_test.Basic_test(*i))

r=unittest.TextTestRunner()
r.run(s)
12 changes: 12 additions & 0 deletions Common/config_parse.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import json


def config_parse():
# 运行此文件的话要使用相对此文件的路径,由什么文件调用路径应用相对于那个文件的路径
with open ("config.json") as f:
jsonstr = str(f.read())
cfg = json.loads(jsonstr,strict=False)
return cfg["testpara"]


config_parse()
135 changes: 135 additions & 0 deletions Test_case/Backend/Announcement/main.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,135 @@
import unittest
import requests
import json
import hashlib

URL = 'http://127.0.0.1:8000/api/v1'

initialUsername = "ceobe"
initialPassword = "fdb04988b4e48c4f16952457e86b8d25"
architectUsername = "testarchitect"
architectPassword = "K5SJl8WbWz"
cookerUsername = "testcooker"
cookerPassword = "VTbXkp1AGd"
chefUsername = "testchef"
chefPassword = "0abtxnRZ8F"
chefUsername = "testchef"
chefPassword = "0abtxnRZ8F"
#
# 针对公告模块的测试
class Announcement_Module(unittest.TestCase) :

def login_getToken(self,username,password):
loginr = requests.post(URL + '/admin/user/login',
json={"username" : username,
"password" : password})
obj = json.loads(loginr.text)
if (obj['code']==None):
print("login successfully")
return obj['data']['token']
else:
print('login failed error Code:'+obj['code'])

def list_dumps(self,list):
for i in list:
i=json.dumps(i,ensure_ascii=False)
return list

#md5 加密
def exchange_to_md5(self, content) :
# 创建md5对象
md_obj = hashlib.md5()
# 传入信息进行加密,注意传入的信息必须进行encode编码,否则报错
md_obj.update(content.encode("utf-8"))
# 获取加密后的信息
md_res = md_obj.hexdigest()
return md_res

# 上传公告测试:chef
def test_uploadAnnouncement_chef(self):
token=self.login_getToken(chefUsername,self.exchange_to_md5(chefPassword))
data=[{
"start_time": "2022-02-15 16:00:00",
"over_time": "2022-02-22 03:59:59",
"img_url": "icon",
"content": "<p><font color=\"#e03b3b\">故事集「阴云火花」</font>将 于<font color=\"#ffba4b\">2月22号</font>结束</p><p>结束时间为<font color=\"#ffba4b\">周二4:00</font></p><p>活动期间掉落<font color=\"#e4d64a\">聚酸酯组</font>、<font color=\"#e4d64a\">晶体元件</font></p><p>活动开启时,快捷链接更新作业视频</p><p>或者点击 <drawer>这里</drawer> 快速跳转</p>",
"notice": False
}]
r=requests.post(URL+ '/admin/announcement/submitList',
headers={"token": token},
json=self.list_dumps(data))
obj=json.loads(r.text)
self.assertEqual(obj['code'],None)

def test_uploadAnnouncement_chef(self) :
token = self.login_getToken(chefUsername, self.exchange_to_md5(chefPassword))
data = [{
"start_time" : "2022-02-15 16:00:00",
"over_time" : "2022-02-22 03:59:59",
"img_url" : "icon",
"content" : "<p><font color=\"#e03b3b\">故事集「阴云火花」</font>将 于<font color=\"#ffba4b\">2月22号</font>结束</p><p>结束时间为<font color=\"#ffba4b\">周二4:00</font></p><p>活动期间掉落<font color=\"#e4d64a\">聚酸酯组</font>、<font color=\"#e4d64a\">晶体元件</font></p><p>活动开启时,快捷链接更新作业视频</p><p>或者点击 <drawer>这里</drawer> 快速跳转</p>",
"notice" : False
}]
r = requests.post(URL + '/admin/announcement/submitList',
headers={"token" : token},
json=self.list_dumps(data))
obj = json.loads(r.text)
self.assertEqual(obj['code'], None)

# 上传公告测试:cooker
def test_uploadAnnouncement_cooker(self) :
token = self.login_getToken(cookerUsername, self.exchange_to_md5(cookerPassword))
data = [{
"start_time" : "2022-02-15 16:00:00",
"over_time" : "2022-02-22 03:59:59",
"img_url" : "icon",
"content" : "<p><font color=\"#e03b3b\">故事集「阴云火花」</font>将 于<font color=\"#ffba4b\">2月22号</font>结束</p><p>结束时间为<font color=\"#ffba4b\">周二4:00</font></p><p>活动期间掉落<font color=\"#e4d64a\">聚酸酯组</font>、<font color=\"#e4d64a\">晶体元件</font></p><p>活动开启时,快捷链接更新作业视频</p><p>或者点击 <drawer>这里</drawer> 快速跳转</p>",
"notice" : False
}]
r = requests.post(URL + '/admin/announcement/submitList',
headers={"token" : token},
json=self.list_dumps(data))
obj = json.loads(r.text)
assert obj['code'] is None

# 上传公告测试:architect 无权限
def test_uploadAnnouncement_architect(self) :
token = self.login_getToken(architectUsername, self.exchange_to_md5(architectPassword))
data = {
"start_time" : "2022-02-15 16:00:00",
"over_time" : "2022-02-22 03:59:59",
"img_url" : "icon",
"content" : "<p><font color=\"#e03b3b\">故事集「阴云火花」</font>将 于<font color=\"#ffba4b\">2月22号</font>结束</p><p>结束时间为<font color=\"#ffba4b\">周二4:00</font></p><p>活动期间掉落<font color=\"#e4d64a\">聚酸酯组</font>、<font color=\"#e4d64a\">晶体元件</font></p><p>活动开启时,快捷链接更新作业视频</p><p>或者点击 <drawer>这里</drawer> 快速跳转</p>",
"notice" : False
}
r = requests.post(URL + '/admin/announcement/submitList',
headers={"token" : token},
json=json.dumps(data))
obj = json.loads(r.text)
self.assertEqual(obj['code'],"A0002")
# 获取公告测试
def test_getAnnouncemnet_chef(self):
token=self.login_getToken(initialUsername,initialPassword)
r=requests.get(URL+ '/admin/announcement/get',
headers={"token": token})
obj=json.loads(r.text)
assert obj['code'] is None

def test_getAnnouncemnet_cooker(self):
token=self.login_getToken(cookerUsername,self.exchange_to_md5(cookerPassword))
r=requests.get(URL+ '/admin/announcement/get',
headers={"token": token})
obj=json.loads(r.text)
assert obj['code'] is None

def test_getAnnouncemnet_architect(self):
token=self.login_getToken(architectUsername,self.exchange_to_md5(architectPassword))
r=requests.get(URL+ '/admin/announcement/get',
headers={"token": token})
obj=json.loads(r.text)
self.assertEqual(obj['code'],"A0002")



if __name__ == '__main__' :
unittest.main()
Loading