diff options
author | 2019-06-02 23:28:09 +0200 | |
---|---|---|
committer | 2019-06-02 23:28:09 +0200 | |
commit | 77c7fc3e30069259bb5160048b152962da586350 (patch) | |
tree | 0585661f636f8c4f17e2fa763de93801208337b9 /tests/api/test_eval.py | |
parent | Merge branch 'master' into revitalisation (diff) | |
parent | Revise docstrings for SnekAPI & EvalResource (diff) |
Merge pull request #23 from python-discord/falcon
Replace Flask with Falcon
Diffstat (limited to 'tests/api/test_eval.py')
-rw-r--r-- | tests/api/test_eval.py | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/tests/api/test_eval.py b/tests/api/test_eval.py new file mode 100644 index 0000000..a5b83fd --- /dev/null +++ b/tests/api/test_eval.py @@ -0,0 +1,49 @@ +from tests.api import SnekAPITestCase + + +class TestEvalResource(SnekAPITestCase): + PATH = "/eval" + + def test_post_valid_200(self): + body = {"input": "foo"} + result = self.simulate_post(self.PATH, json=body) + + self.assertEqual(result.status_code, 200) + self.assertEqual(body["input"], result.json["input"]) + self.assertEqual("test output", result.json["output"]) + + def test_post_invalid_schema_400(self): + body = {"stuff": "foo"} + result = self.simulate_post(self.PATH, json=body) + + self.assertEqual(result.status_code, 400) + + expected = { + "title": "Request data failed validation", + "description": "'input' is a required property" + } + + self.assertEqual(expected, result.json) + + def test_post_invalid_content_type_415(self): + body = "{\"input\": \"foo\"}" + headers = {"Content-Type": "application/xml"} + result = self.simulate_post(self.PATH, body=body, headers=headers) + + self.assertEqual(result.status_code, 415) + + expected = { + "title": "Unsupported media type", + "description": "application/xml is an unsupported media type." + } + + self.assertEqual(expected, result.json) + + def test_disallowed_method_405(self): + result = self.simulate_get(self.PATH) + self.assertEqual(result.status_code, 405) + + def test_options_allow_post_only(self): + result = self.simulate_options(self.PATH) + self.assertEqual(result.status_code, 200) + self.assertEqual(result.headers.get("Allow"), "POST") |