Spaces:
Runtime error
Runtime error
Commit
·
f92965c
1
Parent(s):
66144c5
<Test>: Increase coverage
Browse files- .coverage +0 -0
- .gitignore +2 -1
- app/routers/friend_request.py +2 -2
- tests/test_friend_request.py +75 -0
.coverage
CHANGED
Binary files a/.coverage and b/.coverage differ
|
|
.gitignore
CHANGED
@@ -7,4 +7,5 @@ demo
|
|
7 |
**/*.mp4
|
8 |
**/*.jpg
|
9 |
.pytest_cache
|
10 |
-
!demo.jpg
|
|
|
|
7 |
**/*.mp4
|
8 |
**/*.jpg
|
9 |
.pytest_cache
|
10 |
+
!demo.jpg
|
11 |
+
/htmlcov
|
app/routers/friend_request.py
CHANGED
@@ -102,11 +102,11 @@ async def makeFriend(inviteeId: str, inviterId: str):
|
|
102 |
@router.delete("/{RequestId}")
|
103 |
def deleteRequest(RequestId: str, user=Depends(get_current_user)):
|
104 |
Request_ref = db.collection(COLLECTION_NAME).document(RequestId)
|
105 |
-
Request = Request_ref.get()
|
106 |
|
107 |
if not Request.exists:
|
108 |
raise HTTPException(status_code=404, detail="Friend request not found")
|
109 |
-
|
110 |
if isInviter(user, Request):
|
111 |
Request_ref.delete()
|
112 |
return {"status": "OK"}
|
|
|
102 |
@router.delete("/{RequestId}")
|
103 |
def deleteRequest(RequestId: str, user=Depends(get_current_user)):
|
104 |
Request_ref = db.collection(COLLECTION_NAME).document(RequestId)
|
105 |
+
Request = Request_ref.get()
|
106 |
|
107 |
if not Request.exists:
|
108 |
raise HTTPException(status_code=404, detail="Friend request not found")
|
109 |
+
Request = Request.to_dict()
|
110 |
if isInviter(user, Request):
|
111 |
Request_ref.delete()
|
112 |
return {"status": "OK"}
|
tests/test_friend_request.py
CHANGED
@@ -159,6 +159,17 @@ class TestFriendRequest:
|
|
159 |
# Create invitee user
|
160 |
user_ref.document(invitee["id"]).set({"deviceId": deviceId})
|
161 |
# Send request
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
162 |
request_id = read_qr_code("qrcode.jpg")
|
163 |
payload = ""
|
164 |
headers = {
|
@@ -169,6 +180,70 @@ class TestFriendRequest:
|
|
169 |
"PATCH", "friend_request/" + request_id, headers=headers, data=payload
|
170 |
)
|
171 |
assert response.status_code == 200
|
|
|
172 |
# Delete entity for next time test
|
173 |
user_ref.document(inviter["id"]).delete()
|
174 |
user_ref.document(invitee["id"]).delete()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
159 |
# Create invitee user
|
160 |
user_ref.document(invitee["id"]).set({"deviceId": deviceId})
|
161 |
# Send request
|
162 |
+
## Send request with false token
|
163 |
+
payload = ""
|
164 |
+
headers = {
|
165 |
+
"Content-Type": "application/json",
|
166 |
+
"Authorization": "Bearer " + inviter['token'],
|
167 |
+
}
|
168 |
+
response = client.request(
|
169 |
+
"PATCH", "friend_request/" + request_id, headers=headers, data=payload
|
170 |
+
)
|
171 |
+
assert response.status_code == 400
|
172 |
+
## Send request
|
173 |
request_id = read_qr_code("qrcode.jpg")
|
174 |
payload = ""
|
175 |
headers = {
|
|
|
180 |
"PATCH", "friend_request/" + request_id, headers=headers, data=payload
|
181 |
)
|
182 |
assert response.status_code == 200
|
183 |
+
|
184 |
# Delete entity for next time test
|
185 |
user_ref.document(inviter["id"]).delete()
|
186 |
user_ref.document(invitee["id"]).delete()
|
187 |
+
def test_delete_requestF(self, client, inviter, invitee):
|
188 |
+
# Call the firebase database
|
189 |
+
friend_request_ref = db.collection("friend_request")
|
190 |
+
# Remove all the friend_request use for testing in the past
|
191 |
+
query = friend_request_ref.where(
|
192 |
+
filter=FieldFilter("inviter", "==", inviter["id"])
|
193 |
+
)
|
194 |
+
docs = query.stream()
|
195 |
+
for doc in docs:
|
196 |
+
doc.reference.delete()
|
197 |
+
# Delete the user for safety-check
|
198 |
+
user_ref = db.collection("user")
|
199 |
+
user_ref.document(inviter["id"]).delete()
|
200 |
+
# Create request and re-send
|
201 |
+
user_ref.document(inviter["id"]).set({"deviceId": deviceId})
|
202 |
+
payload = ""
|
203 |
+
headers = {
|
204 |
+
"Content-Type": "application/json",
|
205 |
+
"Authorization": "Bearer " + inviter["token"],
|
206 |
+
}
|
207 |
+
response = client.request(
|
208 |
+
"POST", "friend_request", headers=headers, data=payload
|
209 |
+
)
|
210 |
+
assert response.status_code == 200
|
211 |
+
result = mmcv.imfrombytes(response.read())
|
212 |
+
# Check returned QR image
|
213 |
+
assert result.shape[2] == 3
|
214 |
+
# Write image for later read
|
215 |
+
mmcv.imwrite(result, "qrcode.jpg")
|
216 |
+
# check DELETE route
|
217 |
+
request_id = read_qr_code("qrcode.jpg")
|
218 |
+
payload = ""
|
219 |
+
headers = {
|
220 |
+
"Content-Type": "application/json",
|
221 |
+
"Authorization": "Bearer " + inviter["token"],
|
222 |
+
}
|
223 |
+
response = client.request(
|
224 |
+
"DELETE", "friend_request/" + "xxxx", headers=headers, data=payload
|
225 |
+
)
|
226 |
+
assert response.status_code == 404
|
227 |
+
payload = ""
|
228 |
+
headers = {
|
229 |
+
"Content-Type": "application/json",
|
230 |
+
"Authorization": "Bearer " + invitee["token"],
|
231 |
+
}
|
232 |
+
response = client.request(
|
233 |
+
"DELETE", "friend_request/" + request_id, headers=headers, data=payload
|
234 |
+
)
|
235 |
+
assert response.status_code == 403
|
236 |
+
#Correct Request
|
237 |
+
payload = ""
|
238 |
+
headers = {
|
239 |
+
"Content-Type": "application/json",
|
240 |
+
"Authorization": "Bearer " + inviter["token"],
|
241 |
+
}
|
242 |
+
response = client.request(
|
243 |
+
"DELETE", "friend_request/" + request_id, headers=headers, data=payload
|
244 |
+
)
|
245 |
+
assert response.status_code == 200
|
246 |
+
|
247 |
+
# Delete entity for next time test
|
248 |
+
user_ref.document(inviter["id"]).delete()
|
249 |
+
user_ref.document(invitee["id"]).delete()
|