Skip to content

Commit d48e541

Browse files
authored
Merge pull request #33 from BUAA-SE-coders007/chore/buildtest
Chore/buildtest
2 parents 2eb9ce0 + dec4391 commit d48e541

File tree

4 files changed

+195
-150
lines changed

4 files changed

+195
-150
lines changed

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
env
2-
__pycache__
2+
__pycache__
3+
articles

tests/test_article.py

Lines changed: 39 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,13 @@
1010
print(sys.path)
1111

1212
from app.main import app
13+
from app.db.session import SessionLocal
1314

1415
client = TestClient(app)
1516
# 初始化全局变量headers
1617
Headers = {}
1718
def setup_headers():
19+
1820
global Headers
1921
# 模拟登录获取令牌
2022
login_response = client.post("/public/login", json={
@@ -30,40 +32,48 @@ def setup_headers():
3032

3133

3234
def test_article_case1():
33-
global Headers
34-
# 确保headers已经设置
35-
if not Headers:
36-
setup_headers()
35+
db = SessionLocal()
36+
db.begin()
37+
try:
38+
global Headers
39+
# 确保headers已经设置
40+
if not Headers:
41+
setup_headers()
3742

38-
#创建文件夹
39-
create_folder_response = client.post("/article/selfCreateFolder", headers=Headers, json={
40-
"folder_name" : "测试文件夹1"
41-
})
42-
assert create_folder_response.status_code == 200
43+
#创建文件夹
44+
create_folder_response = client.post("/article/selfCreateFolder", headers=Headers, json={
45+
"folder_name" : "测试文件夹1"
46+
})
47+
assert create_folder_response.status_code == 200
4348

44-
#获取文件夹列表
45-
get_folder_list_response = client.get("/article/getSelfFolders", headers=Headers)
46-
assert get_folder_list_response.status_code == 200
47-
folders = get_folder_list_response.json().get('result')
48-
folder_id = None
49-
for folder in folders:
50-
if folder.get('folder_name') == '测试文件夹1':
51-
folder_id = folder.get('folder_id')
52-
break
49+
#获取文件夹列表
50+
get_folder_list_response = client.get("/article/getSelfFolders", headers=Headers)
51+
assert get_folder_list_response.status_code == 200
52+
folders = get_folder_list_response.json().get('result')
53+
folder_id = None
54+
for folder in folders:
55+
if folder.get('folder_name') == '测试文件夹1':
56+
folder_id = folder.get('folder_id')
57+
break
5358

54-
assert folder_id is not None
59+
assert folder_id is not None
5560

56-
#获取该文件夹下的文件列表
57-
get_file_list_response = client.get(f"/article/getArticlesInFolder", headers=Headers,
58-
params={"folder_id": folder_id})
59-
assert get_file_list_response.status_code == 200
60-
files = get_file_list_response.json().get('result')
61-
if len(files) == 0:
62-
#向该文件夹下上传文件
61+
#获取该文件夹下的文件列表
62+
get_file_list_response = client.get(f"/article/getArticlesInFolder", headers=Headers,
63+
params={"folder_id": folder_id})
64+
assert get_file_list_response.status_code == 200
65+
files = get_file_list_response.json().get('result')
66+
if len(files) == 0:
67+
#向该文件夹下上传文件
6368

64-
upload_file_response = client.post("/article/uploadToSelfFolder", params={"folder_id": folder_id},headers=Headers, files={
65-
"article": os.path.join(project_root, "tests/in/test.pdf")})
66-
assert upload_file_response.status_code == 200
69+
upload_file_response = client.post("/article/uploadToSelfFolder", params={"folder_id": folder_id},headers=Headers, files={
70+
"article": os.path.join(project_root, "tests/in/test.pdf")})
71+
assert upload_file_response.status_code == 200
72+
except Exception as e:
73+
db.rollback()
74+
raise e
75+
finally:
76+
db.close()
6777

6878

6979

tests/test_note.py

Lines changed: 79 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
print(sys.path)
1111

1212
from app.main import app
13+
from app.db.session import SessionLocal
1314

1415
client = TestClient(app)
1516
# 初始化全局变量headers
@@ -32,68 +33,84 @@ def setup_headers():
3233

3334
# 创建后删除笔记
3435
def test_note_case1():
35-
global Headers
36-
# 确保headers已经设置
37-
if not Headers:
38-
setup_headers()
39-
40-
41-
# 创建笔记
42-
create_response = client.post("/notes", json={
43-
"article_id": 1,
44-
"content": "<p> 12 <p>",
45-
"title": "test"
46-
}, headers=Headers)
47-
assert create_response.status_code == 200
48-
note_id = create_response.json().get('note_id')
49-
if note_id is None:
50-
raise ValueError("Failed to get note_id from create note response")
51-
52-
# 删除笔记
53-
delete_response = client.delete(f"/notes/{note_id}", headers=Headers)
54-
assert delete_response.status_code == 200
55-
56-
# 再次删除不存在的笔记
57-
double_delete_response = client.delete(f"/notes/{note_id}", headers=Headers)
58-
assert double_delete_response.status_code != 200
36+
db = SessionLocal()
37+
db.begin()
38+
try:
39+
global Headers
40+
# 确保headers已经设置
41+
if not Headers:
42+
setup_headers()
43+
44+
45+
# 创建笔记
46+
create_response = client.post("/notes", json={
47+
"article_id": 1,
48+
"content": "<p> 12 <p>",
49+
"title": "test"
50+
}, headers=Headers)
51+
assert create_response.status_code == 200
52+
note_id = create_response.json().get('note_id')
53+
if note_id is None:
54+
raise ValueError("Failed to get note_id from create note response")
55+
56+
# 删除笔记
57+
delete_response = client.delete(f"/notes/{note_id}", headers=Headers)
58+
assert delete_response.status_code == 200
59+
60+
# 再次删除不存在的笔记
61+
double_delete_response = client.delete(f"/notes/{note_id}", headers=Headers)
62+
assert double_delete_response.status_code == 200
63+
except Exception as e:
64+
db.rollback()
65+
raise e
66+
finally:
67+
db.close()
5968

6069

6170
def test_note_case2():
62-
global Headers
63-
if not Headers:
64-
setup_headers()
65-
66-
# 创建笔记
67-
create_response = client.post("/notes", json={
68-
"article_id": 1,
69-
"content": "<p> 12 <p>",
70-
"title": "test"
71-
}, headers=Headers)
72-
assert create_response.status_code == 200
73-
note_id = create_response.json().get('note_id')
74-
if note_id is None:
75-
raise ValueError("Failed to get note_id from create note response")
76-
77-
print(note_id)
78-
# 更新笔记
79-
update_response = client.put(f"/notes/{note_id}", params={
80-
"content": "<p> 123 <p>",
81-
"title": "test2"
82-
}, headers=Headers)
83-
print(update_response.json())
84-
assert update_response.status_code == 200
85-
86-
87-
88-
# 获取笔记
89-
get_response = client.get(f"/notes",params={
90-
"id": note_id
91-
}, headers=Headers)
92-
assert get_response.status_code == 200
93-
assert get_response.json().get('notes')[0].get('id') == note_id
94-
assert get_response.json().get('notes')[0].get('content') == "<p> 123 <p>"
95-
96-
97-
#删除笔记
98-
delete_response = client.delete(f"/notes/{note_id}", headers=Headers)
99-
assert delete_response.status_code == 200
71+
db = SessionLocal()
72+
db.begin()
73+
try:
74+
global Headers
75+
if not Headers:
76+
setup_headers()
77+
78+
# 创建笔记
79+
create_response = client.post("/notes", json={
80+
"article_id": 1,
81+
"content": "<p> 12 <p>",
82+
"title": "test"
83+
}, headers=Headers)
84+
assert create_response.status_code == 200
85+
note_id = create_response.json().get('note_id')
86+
if note_id is None:
87+
raise ValueError("Failed to get note_id from create note response")
88+
89+
print(note_id)
90+
# 更新笔记
91+
update_response = client.put(f"/notes/{note_id}", params={
92+
"content": "<p> 123 <p>",
93+
"title": "test2"
94+
}, headers=Headers)
95+
print(update_response.json())
96+
assert update_response.status_code == 200
97+
98+
99+
100+
# 获取笔记
101+
get_response = client.get(f"/notes",params={
102+
"id": note_id
103+
}, headers=Headers)
104+
assert get_response.status_code == 200
105+
assert get_response.json().get('notes')[0].get('id') == note_id
106+
assert get_response.json().get('notes')[0].get('content') == "<p> 123 <p>"
107+
108+
109+
#删除笔记
110+
delete_response = client.delete(f"/notes/{note_id}", headers=Headers)
111+
assert delete_response.status_code == 200
112+
except Exception as e:
113+
db.rollback()
114+
raise e
115+
finally:
116+
db.close()

0 commit comments

Comments
 (0)