Skip to content

Commit 10cc7f6

Browse files
committed
Add tests for get_threads
1 parent 25ab9d8 commit 10cc7f6

1 file changed

Lines changed: 120 additions & 0 deletions

File tree

tests/test_loading_api_wrapper.py

Lines changed: 120 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -328,3 +328,123 @@ def test_get_post_success(self, mock_requests):
328328

329329
self.assertEqual(response.get("code"), 200)
330330
self.assertEqual(response.get("post"), expected_response)
331+
332+
@patch("loading_api_wrapper.api.requests")
333+
def test_get_thread_success(self, mock_requests):
334+
status_code = 200
335+
expected_response = {
336+
"posts": [
337+
{
338+
"id": "5f9e4e8c2c32e2001ed17170",
339+
"title": "Spelmusik samplad i låtar",
340+
"body": "Har ni upptäckt några samples från spelmusik när ni suttit och lyssnat på ''vanlig'' musik?\n\nDela med er av era upptäckter!\n\nBörjar med en låt från den gamla fjortisfavoriten Byz, Byz - Respekt. Har inte kunnat säkerställa det men visst måste väl det vara ett sample av Mike Tyson's Punch-Out! - Fight Theme https://youtu.be/VE8vKLEK6A8 ?\nhttps://youtu.be/EnBHwl8-bf4\nÄr det även ljudeffekter från Link där vid 02:32, om jag hör rätt?\n\nArmy of the Pharaohs - Bloody Tears. Sample taget från Castlevania II. \nDet tog nästan pinsamt nog några genomlyssningar innan det klickade, låtarna har ju för fan samma namn också haha!\nhttps://youtu.be/rrJbpJwmQJc\nhttp://youtu.be/e2oZtvjg5oA\n\nHeavy Metal Kings - Splatterfest. Sample taget från första Medal of Honor - Rjuken Sabotage. Denna var svårare, fick bara en känsla att den var från ett spel och sökte då upp svaret.\nhttps://youtu.be/1VuVyfmPUd8\nhttps://youtu.be/tdWt-wl-wuw\n",
341+
"category": "other",
342+
"postType": "regular",
343+
"createdAt": "2020-11-01T05:58:36.722Z",
344+
"updatedAt": "2020-11-01T06:02:59.322Z",
345+
"userId": "5bb80ac88fef22001d902d69",
346+
"replies": 0,
347+
"edits": 5,
348+
"lastEdit": "2020-11-01T06:02:59.321Z",
349+
}
350+
],
351+
"users": [
352+
{
353+
"id": "5bb80ac88fef22001d902d69",
354+
"name": "Twiggy",
355+
"picture": "045d72f0-ce02-4613-99f1-c01c3b685cf4.jpg",
356+
"role": "user",
357+
"createdAt": "2018-10-06T01:07:20.176Z",
358+
"status": "active",
359+
}
360+
],
361+
}
362+
363+
mock_response = MagicMock()
364+
mock_response.status_code = status_code
365+
mock_response.json.return_value = expected_response
366+
mock_requests.get.return_value = mock_response
367+
368+
api = LoadingApiWrapper()
369+
response = api.get_thread("5f9e4e8c2c32e2001ed17170")
370+
371+
self.assertEqual(response.get("code"), 200)
372+
self.assertEqual(response.get("post"), expected_response)
373+
374+
@patch("loading_api_wrapper.api.requests")
375+
def test_get_thread_failure_empty_thread_id(self, mock_requests):
376+
status_code = 404
377+
expected_response = {
378+
"code": status_code,
379+
"message": '"thread_id" is not allowed to be empty',
380+
}
381+
382+
mock_response = MagicMock()
383+
mock_response.status_code = status_code
384+
mock_response.json.return_value = None
385+
mock_requests.get.return_value = mock_response
386+
387+
api = LoadingApiWrapper()
388+
response = api.get_thread("")
389+
390+
self.assertEqual(response.get("code"), 404)
391+
self.assertEqual(response, expected_response)
392+
393+
@patch("loading_api_wrapper.api.requests")
394+
def test_get_thread_failure_not_a_thread_id(self, mock_requests):
395+
status_code = 200
396+
expected_response = {
397+
"code": status_code,
398+
"message": "Exists, but was not a thread id",
399+
}
400+
regular_post = {
401+
"posts": [
402+
{
403+
"id": "609ef4ee90c3d5001e889c5a",
404+
"body": "Tror inte det bör vara helt omöjligt att typ köra mönster efter tredjedelar eller typ gyllene snittet. Ha olika ankarpunkter som betygen kan kretsa runt. Tänker dock att i en helt öppen lösning där bilder mest delas på internet så kommer graderingen göras helt i interagering med andra användare, låta det hela bli lite mer subjektivt, liksom.",
405+
"postType": "regular",
406+
"createdAt": "2021-05-14T22:08:46.301Z",
407+
"updatedAt": "2021-05-14T22:08:46.301Z",
408+
"parentId": "609e2783b7a187001e0c0440",
409+
"userId": "5bb7aa868fef22001d902665",
410+
"replies": 0,
411+
}
412+
],
413+
"users": [
414+
{
415+
"id": "5bb7aa868fef22001d902665",
416+
"name": "Kiki",
417+
"picture": "8b0e6e55-6b4a-4386-8551-e510b5e62fd4.png",
418+
"role": "user",
419+
"createdAt": "2018-10-05T18:16:38.350Z",
420+
"status": "active",
421+
}
422+
],
423+
}
424+
425+
mock_response = MagicMock()
426+
mock_response.status_code = status_code
427+
mock_response.json.return_value = regular_post
428+
mock_requests.get.return_value = mock_response
429+
430+
api = LoadingApiWrapper()
431+
response = api.get_thread("609ef4ee90c3d5001e889c5a")
432+
433+
self.assertEqual(response.get("code"), 200)
434+
self.assertEqual(response, expected_response)
435+
436+
@patch("loading_api_wrapper.api.requests")
437+
def test_get_thread_failure_does_not_exist(self, mock_requests):
438+
status_code = 404
439+
expected_response = {"code": status_code, "message": "Post does not exist"}
440+
441+
mock_response = MagicMock()
442+
mock_response.status_code = status_code
443+
mock_response.json.return_value = expected_response
444+
mock_requests.get.return_value = mock_response
445+
446+
api = LoadingApiWrapper()
447+
response = api.get_thread("this_id_does_not_exist")
448+
449+
self.assertEqual(response.get("code"), 404)
450+
self.assertEqual(response, expected_response)

0 commit comments

Comments
 (0)