diff options
| author | 2019-06-05 00:46:04 -0700 | |
|---|---|---|
| committer | 2019-06-05 09:24:57 -0700 | |
| commit | 66d3836dd27f3b0e9f1cb780c7c37c8c0f081c70 (patch) | |
| tree | ada556ca7e1aff5e650afe58139bc20d3d47dfc0 /tests/api | |
| parent | Revert "Add basic logger for responses" (diff) | |
Respond to eval with stdout, stderr, and the return code
The previous implementation limited the client's flexibility in
presenting the results of the process. A process can write to both
stdout and stderr and do so even when the return code is not 0 or 1.
* Return a CompletedProcess from NsJail
* Don't check the return code; this should be done client-side now
Diffstat (limited to 'tests/api')
| -rw-r--r-- | tests/api/__init__.py | 8 | ||||
| -rw-r--r-- | tests/api/test_eval.py | 5 | 
2 files changed, 10 insertions, 3 deletions
| diff --git a/tests/api/__init__.py b/tests/api/__init__.py index fd4679a..dcee5b5 100644 --- a/tests/api/__init__.py +++ b/tests/api/__init__.py @@ -1,3 +1,4 @@ +from subprocess import CompletedProcess  from unittest import mock  from falcon import testing @@ -11,7 +12,12 @@ class SnekAPITestCase(testing.TestCase):          self.patcher = mock.patch("snekbox.api.resources.eval.NsJail", autospec=True)          self.mock_nsjail = self.patcher.start() -        self.mock_nsjail.return_value.python3.return_value = "test output" +        self.mock_nsjail.return_value.python3.return_value = CompletedProcess( +            args=[], +            returncode=0, +            stdout="output", +            stderr="error" +        )          self.addCleanup(self.patcher.stop)          self.app = SnekAPI() diff --git a/tests/api/test_eval.py b/tests/api/test_eval.py index bcd0ec4..03f0e39 100644 --- a/tests/api/test_eval.py +++ b/tests/api/test_eval.py @@ -9,8 +9,9 @@ class TestEvalResource(SnekAPITestCase):          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"]) +        self.assertEqual("output", result.json["stdout"]) +        self.assertEqual("error", result.json["stderr"]) +        self.assertEqual(0, result.json["returncode"])      def test_post_invalid_schema_400(self):          body = {"stuff": "foo"} | 
