diff options
author | 2018-07-29 09:53:01 +0000 | |
---|---|---|
committer | 2018-07-29 09:53:01 +0000 | |
commit | c3cbadf64c1d568e957274e331241691de356f7f (patch) | |
tree | 3c41f029f67adda015590ed6553b1dbf30c2aabf /tests | |
parent | Fix typo in infractions table definition (diff) | |
parent | Addressing gdude comments (diff) |
Merge branch 'clean_command' into 'master'
Clean command API and frontend
See merge request python-discord/projects/site!26
Diffstat (limited to 'tests')
-rw-r--r-- | tests/__init__.py | 1 | ||||
-rw-r--r-- | tests/test_api_bot_snake.py | 62 | ||||
-rw-r--r-- | tests/test_api_bot_tags.py | 2 | ||||
-rw-r--r-- | tests/test_clean_logs.py | 74 | ||||
-rw-r--r-- | tests/test_roots.py | 1 | ||||
-rw-r--r-- | tests/test_staff.py | 3 |
6 files changed, 119 insertions, 24 deletions
diff --git a/tests/__init__.py b/tests/__init__.py index 84e69105..1f3ca1a4 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -1,4 +1,3 @@ -import json import os from flask import Blueprint diff --git a/tests/test_api_bot_snake.py b/tests/test_api_bot_snake.py index b5aa3bab..fcc18409 100644 --- a/tests/test_api_bot_snake.py +++ b/tests/test_api_bot_snake.py @@ -1,42 +1,64 @@ -import os +"""Tests the `/api/bot/snake_` endpoints.""" + from tests import SiteTest, app -class ApiBotSnakeEndpoints(SiteTest): - """ - Tests the following endpoints: - - snake_movies - - snake_quiz - - snake_names - - snake_idioms - - snake_facts - """ + +class TestSnakeFactsAPI(SiteTest): + """GET method - get snake fact""" def test_snake_facts(self): - # GET method - get snake fact - response = self.client.get('/bot/snake_facts', app.config['API_SUBDOMAIN'], headers=app.config['TEST_HEADER']) + response = self.client.get( + '/bot/snake_facts', + app.config['API_SUBDOMAIN'], + headers=app.config['TEST_HEADER'] + ) self.assertEqual(response.status_code, 200) self.assertEqual(type(response.json), str) + +class TestSnakeIdiomAPI(SiteTest): + """GET method - get snake idiom""" + def test_snake_idiom(self): - # GET method - get snake idiom - response = self.client.get('/bot/snake_idioms', app.config['API_SUBDOMAIN'], headers=app.config['TEST_HEADER']) + response = self.client.get( + '/bot/snake_idioms', + app.config['API_SUBDOMAIN'], + headers=app.config['TEST_HEADER'] + ) self.assertEqual(response.status_code, 200) self.assertEqual(type(response.json), str) + +class TestSnakeQuizAPI(SiteTest): + """GET method - get snake quiz""" + def test_snake_quiz(self): - # GET method - get snake quiz - response = self.client.get('/bot/snake_quiz', app.config['API_SUBDOMAIN'], headers=app.config['TEST_HEADER']) + response = self.client.get( + '/bot/snake_quiz', + app.config['API_SUBDOMAIN'], + headers=app.config['TEST_HEADER'] + ) self.assertEqual(response.status_code, 200) self.assertEqual(type(response.json), dict) + +class TestSnakeNameAPI(SiteTest): + """GET method - get a single snake name, or all of them.""" + def test_snake_names(self): - # GET method - get snake name - response = self.client.get('/bot/snake_names', app.config['API_SUBDOMAIN'], headers=app.config['TEST_HEADER']) + response = self.client.get( + '/bot/snake_names', + app.config['API_SUBDOMAIN'], + headers=app.config['TEST_HEADER'] + ) self.assertEqual(response.status_code, 200) self.assertEqual(type(response.json), dict) def test_snake_names_all(self): - # GET method - get all snake names - response = self.client.get('/bot/snake_names?get_all=True', app.config['API_SUBDOMAIN'], headers=app.config['TEST_HEADER']) + response = self.client.get( + '/bot/snake_names?get_all=True', + app.config['API_SUBDOMAIN'], + headers=app.config['TEST_HEADER'] + ) self.assertEqual(response.status_code, 200) self.assertEqual(type(response.json), list) diff --git a/tests/test_api_bot_tags.py b/tests/test_api_bot_tags.py index 66940f7e..fa06e0fa 100644 --- a/tests/test_api_bot_tags.py +++ b/tests/test_api_bot_tags.py @@ -1,7 +1,7 @@ -import os import json from tests import SiteTest, app + class ApiBotTagsEndpoint(SiteTest): def test_api_tags(self): diff --git a/tests/test_clean_logs.py b/tests/test_clean_logs.py new file mode 100644 index 00000000..1c3449b4 --- /dev/null +++ b/tests/test_clean_logs.py @@ -0,0 +1,74 @@ +"""Tests the `/api/bot/clean` endpoint.""" +import json + +from tests import SiteTest, app + + +class TestCleanLogAPI(SiteTest): + """ + Tests submitting a clean log and + verifies that we get a UUID in return. + + Also ensures that we get a 400 if we send in bad data. + """ + + def test_returns_400_on_bad_data(self): + bad_data = json.dumps({ + "scubfire": "testiclaes" + }) + + response = self.client.post( + '/bot/clean', + app.config['API_SUBDOMAIN'], + headers=app.config['TEST_HEADER'], + data=bad_data + ) + self.assert400(response) + + def test_submit_clean_log(self): + good_data = json.dumps({ + "log_data": [ + { + "author": "something", + "user_id": "12345151", + "role_id": "4818413", + "content": "testy", + "timestamp": "this way comes", + "embeds": [{"fire":"nanny"}], + "attachments": ["<Attachment>"], + } + ] + }) + + response = self.client.post( + '/bot/clean', + app.config['API_SUBDOMAIN'], + headers=app.config['TEST_HEADER'], + data=good_data + ) + + log_id = response.json.get("log_id") + + self.assert200(response) + self.assertIsNotNone(log_id) + self.assertGreater(len(log_id), 2) + self.assertEqual(type(log_id), str) + + +class TestCleanLogFrontEnd(SiteTest): + """ + Tests the frontend for + viewing the clean logs. + + Best I can do with our current + system is check if I'm redirected, + since this is behind OAuth. + """ + + def test_clean_log_frontend_returns_302(self): + response = self.client.get( + f'/bot/clean_logs/1', + 'http://pytest.local' + ) + + self.assertEqual(response.status_code, 302)
\ No newline at end of file diff --git a/tests/test_roots.py b/tests/test_roots.py index 0b7b129c..1b270178 100644 --- a/tests/test_roots.py +++ b/tests/test_roots.py @@ -3,6 +3,7 @@ from pysite.constants import DISCORD_OAUTH_REDIRECT from pysite.constants import DISCORD_OAUTH_AUTHORIZED from pysite.constants import ERROR_DESCRIPTIONS + class RootEndpoint(SiteTest): """ Test cases for the root endpoint and error handling """ diff --git a/tests/test_staff.py b/tests/test_staff.py index 68c182b5..bc911b0c 100644 --- a/tests/test_staff.py +++ b/tests/test_staff.py @@ -1,7 +1,6 @@ -import os -import json from tests import SiteTest, app + class StaffEndpoints(SiteTest): """ Test cases for staff subdomain """ |