Skip to content

Commit f8ae9c6

Browse files
committed
[fix]:测试增添数据库保护
1 parent 2eb9ce0 commit f8ae9c6

File tree

6 files changed

+193
-149
lines changed

6 files changed

+193
-149
lines changed

articles/27.pdf

67 Bytes
Binary file not shown.

articles/28.pdf

67 Bytes
Binary file not shown.

articles/29.pdf

67 Bytes
Binary file not shown.

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()

tests/test_user.py

Lines changed: 75 additions & 58 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
@@ -31,68 +32,84 @@ def setup_headers():
3132

3233

3334
def test_user_case1():
34-
global Headers
35-
if not Headers:
36-
setup_headers()
37-
# 修改信息
38-
save_response = client.get("/user", headers=Headers)
39-
assert save_response.status_code == 200
40-
save_data = save_response.json()
41-
42-
advise_response = client.put("/user", data={"username":"李国庆test",
43-
"address": "北京市海淀区中关村",
44-
"university": "北京大学",
45-
}, headers=Headers)
46-
assert advise_response.status_code == 200
35+
db = SessionLocal()
36+
db.begin()
37+
try:
38+
global Headers
39+
if not Headers:
40+
setup_headers()
41+
# 修改信息
42+
save_response = client.get("/user", headers=Headers)
43+
assert save_response.status_code == 200
44+
save_data = save_response.json()
45+
46+
advise_response = client.put("/user", data={"username":"李国庆test",
47+
"address": "北京市海淀区中关村",
48+
"university": "北京大学",
49+
}, headers=Headers)
50+
assert advise_response.status_code == 200
4751

48-
# 获取修改后的信息
49-
adviser_response = client.get("/user", headers=Headers)
50-
assert adviser_response.status_code == 200
51-
assert adviser_response.json().get('address') == "北京市海淀区中关村"
52-
assert adviser_response.json().get('university') == "北京大学"
53-
assert adviser_response.json().get('username') == "李国庆test"
52+
# 获取修改后的信息
53+
adviser_response = client.get("/user", headers=Headers)
54+
assert adviser_response.status_code == 200
55+
assert adviser_response.json().get('address') == "北京市海淀区中关村"
56+
assert adviser_response.json().get('university') == "北京大学"
57+
assert adviser_response.json().get('username') == "李国庆test"
5458

55-
restore_response = client.put("/user", data={
56-
"username": save_data.get('username'),
57-
"address": save_data.get('address'),
58-
"university": save_data.get('university')
59-
}, headers=Headers)
60-
assert restore_response.status_code == 200
59+
restore_response = client.put("/user", data={
60+
"username": save_data.get('username'),
61+
"address": save_data.get('address'),
62+
"university": save_data.get('university')
63+
}, headers=Headers)
64+
assert restore_response.status_code == 200
65+
except Exception as e:
66+
db.rollback()
67+
raise e
68+
finally:
69+
db.close()
6170

6271
def test_user_case2():
63-
global Headers
64-
if not Headers:
65-
setup_headers()
66-
67-
# 修改密码
68-
password_response = client.post("/user/password", json={
69-
"old_password": "123456",
70-
"new_password": "654321"
71-
}, headers=Headers)
72-
assert password_response.status_code == 200
73-
# 验证密码是否修改成功
74-
login_response = client.post("/public/login", json={
75-
"email": "[email protected]",
76-
"password": "123456"
77-
})
78-
assert login_response.status_code == 401
79-
login_response = client.post("/public/login", json={
80-
"email": "[email protected]",
81-
"password": "654321"
82-
})
83-
assert login_response.status_code == 200
84-
# 还原密码
85-
restore_response = client.post("/user/password", json={
86-
"old_password": "654321",
87-
"new_password": "123456"
88-
}, headers=Headers)
89-
assert restore_response.status_code == 200
90-
# 验证密码是否还原成功
91-
login_response = client.post("/public/login", json={
92-
"email": "[email protected]",
93-
"password": "123456"
94-
})
95-
assert login_response.status_code == 200
72+
db = SessionLocal()
73+
db.begin()
74+
try:
75+
global Headers
76+
if not Headers:
77+
setup_headers()
78+
79+
# 修改密码
80+
password_response = client.post("/user/password", json={
81+
"old_password": "123456",
82+
"new_password": "654321"
83+
}, headers=Headers)
84+
assert password_response.status_code == 200
85+
# 验证密码是否修改成功
86+
login_response = client.post("/public/login", json={
87+
"email": "[email protected]",
88+
"password": "123456"
89+
})
90+
assert login_response.status_code == 401
91+
login_response = client.post("/public/login", json={
92+
"email": "[email protected]",
93+
"password": "654321"
94+
})
95+
assert login_response.status_code == 200
96+
# 还原密码
97+
restore_response = client.post("/user/password", json={
98+
"old_password": "654321",
99+
"new_password": "123456"
100+
}, headers=Headers)
101+
assert restore_response.status_code == 200
102+
# 验证密码是否还原成功
103+
login_response = client.post("/public/login", json={
104+
"email": "[email protected]",
105+
"password": "123456"
106+
})
107+
assert login_response.status_code == 200
108+
except Exception as e:
109+
db.rollback()
110+
raise e
111+
finally:
112+
db.close()
96113

97114

98115

0 commit comments

Comments
 (0)