aboutsummaryrefslogtreecommitdiffstats
path: root/tests/test_clean_logs.py
diff options
context:
space:
mode:
authorGravatar Leon Sandøy <[email protected]>2018-07-29 09:53:01 +0000
committerGravatar Leon Sandøy <[email protected]>2018-07-29 09:53:01 +0000
commitc3cbadf64c1d568e957274e331241691de356f7f (patch)
tree3c41f029f67adda015590ed6553b1dbf30c2aabf /tests/test_clean_logs.py
parentFix typo in infractions table definition (diff)
parentAddressing 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/test_clean_logs.py')
-rw-r--r--tests/test_clean_logs.py74
1 files changed, 74 insertions, 0 deletions
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