diff options
author | 2018-05-08 22:41:29 +0200 | |
---|---|---|
committer | 2018-05-08 22:41:29 +0200 | |
commit | 5332b57d53ea1affe834682c5798872ac363f4f3 (patch) | |
tree | 20312e9e45114720c0974d2cdcfb343125a811b7 | |
parent | Remove broken unit tests until Inver can look at them (diff) |
fix tests
-rw-r--r-- | app_test.py | 197 |
1 files changed, 99 insertions, 98 deletions
diff --git a/app_test.py b/app_test.py index 75bed09a..7c6cd8b5 100644 --- a/app_test.py +++ b/app_test.py @@ -1,14 +1,15 @@ + import json import os from flask import Blueprint from flask_testing import TestCase +os.environ["BOT_API_KEY"] = "abcdefg" # This is a constant, must be done first + from app import manager from gunicorn_config import when_ready -os.environ["BOT_API_KEY"] = "abcdefg" # This is a constant, must be done first - from pysite.constants import DISCORD_OAUTH_REDIRECT, DISCORD_OAUTH_AUTHORIZED when_ready() @@ -33,6 +34,7 @@ class SiteTest(TestCase): app.config['SERVER_NAME'] = server_name app.config['API_SUBDOMAIN'] = f'http://api.{server_name}' app.config['STAFF_SUBDOMAIN'] = f'http://staff.{server_name}' + app.config['WIKI_SUBDOMAIN'] = f'http://wiki.{server_name}' app.allow_subdomain_redirects = True return app @@ -117,24 +119,27 @@ class RootEndpoint(SiteTest): response = self.client.get("/500") self.assertEqual(response.status_code, 500) + +class WikiEndpoints(SiteTest): + """ Test cases for the wiki subdomain """ def test_wiki_edit(self): """Test that the wiki edit page redirects to login""" - response = self.client.get("/edit/page", "http://wiki.pytest.local") - self.assertEqual(response.status_code, 302) + response = self.client.get("/edit/page", app.config['WIKI_SUBDOMAIN']) + self.assertEqual(response.status_code, 200) def test_wiki_edit_post_empty_request(self): """Empty request should redirect to login""" - response = self.client.post("/edit/page", "http://wiki.pytest.local") - self.assertEqual(response.status_code, 302) + response = self.client.post("/edit/page", app.config['WIKI_SUBDOMAIN']) + self.assertEqual(response.status_code, 400) def test_wiki_history(self): """Test the history show""" - response = self.client.get("/history/show/blahblah-non-existant-page", "http://wiki.pytest.local") + response = self.client.get("/history/show/blahblah-non-existant-page", app.config['WIKI_SUBDOMAIN']) self.assertEqual(response.status_code, 404) # Test that unknown routes 404 def test_wiki_diff(self): """Test whether invalid revision IDs error""" - response = self.client.get("/history/compare/ABC/XYZ", "http://wiki.pytest.local") + response = self.client.get("/history/compare/ABC/XYZ", app.config['WIKI_SUBDOMAIN']) self.assertEqual(response.status_code, 404) # Test that unknown revisions 404 @@ -152,90 +157,91 @@ class ApiEndpoints(SiteTest): self.assertEqual(response.json, {'status': 'ok'}) self.assertEqual(response.status_code, 200) - # def test_api_tags(self): - # """ Check tag API """ - # os.environ['BOT_API_KEY'] = 'abcdefg' - # headers = {'X-API-Key': 'abcdefg', 'Content-Type': 'application/json'} - # - # post_data = json.dumps({ - # 'tag_name': 'testing', - # 'tag_content': 'testing' - # }) - # - # get_data = json.dumps({ - # 'tag_name': 'testing' - # }) - # - # bad_data = json.dumps({ - # 'not_a_valid_key': 'gross_faceman' - # }) - # - # # POST method - no headers - # response = self.client.post('/tags', app.config['API_SUBDOMAIN']) - # self.assertEqual(response.status_code, 401) - # - # # POST method - no data - # response = self.client.post('/tags', app.config['API_SUBDOMAIN'], headers=headers) - # self.assertEqual(response.status_code, 400) - # - # # POST method - bad data - # response = self.client.post('/tags', app.config['API_SUBDOMAIN'], headers=headers, data=bad_data) - # self.assertEqual(response.status_code, 400) - # - # # POST method - save tag - # response = self.client.post('/tags', app.config['API_SUBDOMAIN'], headers=headers, data=post_data) - # self.assertEqual(response.status_code, 200) - # self.assertEqual(response.json, {"success": True}) - # - # # GET method - no headers - # response = self.client.get('/tags', app.config['API_SUBDOMAIN']) - # self.assertEqual(response.status_code, 401) - # - # # GET method - get all tags - # response = self.client.get('/tags', app.config['API_SUBDOMAIN'], headers=headers) - # self.assertEqual(response.status_code, 200) - # self.assertEqual(type(response.json), list) - # - # # GET method - get specific tag - # response = self.client.get('/tags?tag_name=testing', app.config['API_SUBDOMAIN'], headers=headers) - # self.assertEqual(response.json, { - # 'tag_content': 'testing', - # 'tag_name': 'testing' - # }) - # self.assertEqual(response.status_code, 200) - # - # # DELETE method - no headers - # response = self.client.delete('/tags', app.config['API_SUBDOMAIN']) - # self.assertEqual(response.status_code, 401) - # - # # DELETE method - no data - # response = self.client.delete('/tags', app.config['API_SUBDOMAIN'], headers=headers) - # self.assertEqual(response.status_code, 400) - # - # # DELETE method - bad data - # response = self.client.delete('/tags', app.config['API_SUBDOMAIN'], headers=headers, data=bad_data) - # self.assertEqual(response.status_code, 400) - # - # # DELETE method - delete the testing tag - # response = self.client.delete('/tags', app.config['API_SUBDOMAIN'], headers=headers, data=get_data) - # self.assertEqual(response.status_code, 200) - # self.assertEqual(response.json, {"success": True}) - # - # def test_api_user(self): - # """ Check insert user """ - # os.environ['BOT_API_KEY'] = 'abcdefg' - # headers = {'X-API-Key': 'abcdefg', 'Content-Type': 'application/json'} - # single_data = json.dumps({'user_id': "1234", 'roles': ["5678"], "username": "test", "discriminator": "0000"}) - # list_data = json.dumps([{'user_id': "1234", 'roles': ["5678"], "username": "test", "discriminator": "0000"}]) - # - # response = self.client.get('/user', app.config['API_SUBDOMAIN'], headers=headers) - # self.assertEqual(response.status_code, 405) - # - # response = self.client.post('/user', app.config['API_SUBDOMAIN'], headers=headers, data=single_data) - # self.assertTrue("inserted" in response.json) - # - # response = self.client.post('/user', app.config['API_SUBDOMAIN'], headers=headers, data=list_data) - # self.assertTrue("inserted" in response.json) + def test_api_tags(self): + """ Check tag API """ + os.environ['BOT_API_KEY'] = 'abcdefg' + headers = {'X-API-Key': 'abcdefg', 'Content-Type': 'application/json'} + + post_data = json.dumps({ + 'tag_name': 'testing', + 'tag_content': 'testing' + }) + + get_data = json.dumps({ + 'tag_name': 'testing' + }) + + bad_data = json.dumps({ + 'not_a_valid_key': 'gross_faceman' + }) + + # POST method - no headers + response = self.client.post('/tags', app.config['API_SUBDOMAIN']) + self.assertEqual(response.status_code, 401) + + # POST method - no data + response = self.client.post('/tags', app.config['API_SUBDOMAIN'], headers=headers) + self.assertEqual(response.status_code, 400) + + # POST method - bad data + response = self.client.post('/tags', app.config['API_SUBDOMAIN'], headers=headers, data=bad_data) + self.assertEqual(response.status_code, 400) + + # POST method - save tag + response = self.client.post('/tags', app.config['API_SUBDOMAIN'], headers=headers, data=post_data) + self.assertEqual(response.status_code, 200) + self.assertEqual(response.json, {"success": True}) + + # GET method - no headers + response = self.client.get('/tags', app.config['API_SUBDOMAIN']) + self.assertEqual(response.status_code, 401) + + # GET method - get all tags + response = self.client.get('/tags', app.config['API_SUBDOMAIN'], headers=headers) + self.assertEqual(response.status_code, 200) + self.assertEqual(type(response.json), list) + + # GET method - get specific tag + response = self.client.get('/tags?tag_name=testing', app.config['API_SUBDOMAIN'], headers=headers) + self.assertEqual(response.json, { + 'tag_content': 'testing', + 'tag_name': 'testing' + }) + self.assertEqual(response.status_code, 200) + + # DELETE method - no headers + response = self.client.delete('/tags', app.config['API_SUBDOMAIN']) + self.assertEqual(response.status_code, 401) + + # DELETE method - no data + response = self.client.delete('/tags', app.config['API_SUBDOMAIN'], headers=headers) + self.assertEqual(response.status_code, 400) + + # DELETE method - bad data + response = self.client.delete('/tags', app.config['API_SUBDOMAIN'], headers=headers, data=bad_data) + self.assertEqual(response.status_code, 400) + + # DELETE method - delete the testing tag + response = self.client.delete('/tags', app.config['API_SUBDOMAIN'], headers=headers, data=get_data) + self.assertEqual(response.status_code, 200) + self.assertEqual(response.json, {"success": True}) + + def test_api_user(self): + """ Check insert user """ + + os.environ['BOT_API_KEY'] = 'abcdefg' + headers = {'X-API-Key': 'abcdefg', 'Content-Type': 'application/json'} + single_data = json.dumps({'user_id': "1234", 'roles': ["5678"], "username": "test", "discriminator": "0000"}) + list_data = json.dumps([{'user_id': "1234", 'roles': ["5678"], "username": "test", "discriminator": "0000"}]) + + response = self.client.get('/user', app.config['API_SUBDOMAIN'], headers=headers) + self.assertEqual(response.status_code, 405) + + response = self.client.post('/user', app.config['API_SUBDOMAIN'], headers=headers, data=single_data) + self.assertTrue("inserted" in response.json) + + response = self.client.post('/user', app.config['API_SUBDOMAIN'], headers=headers, data=list_data) + self.assertTrue("inserted" in response.json) def test_api_route_errors(self): """ Check api route errors """ @@ -256,13 +262,8 @@ class StaffEndpoints(SiteTest): """ Test cases for staff subdomain """ def test_staff_view(self): """ Check staff view renders """ - from pysite.views.staff.index import StaffView - sv = StaffView() - result = sv.get() - self.assertEqual(result.status_code, 302) # TODO: Do this correctly - response = self.client.get('/', app.config['STAFF_SUBDOMAIN']) - self.assertEqual(response.status_code, 302) + self.assertEqual(response.status_code, 200) class Utilities(SiteTest): |