From aeb53bd3512a2b7878c66334b2e36b6f89befdfc Mon Sep 17 00:00:00 2001 From: Diego Crespo Quinta Date: Sat, 28 Nov 2020 00:11:10 +0100 Subject: #915 Test GET /scopes And fix ogserver, report error if GET /scopes have a JSON body. --- src/rest.c | 5 +++++ tests/units/test_0025_get_scopes.py | 25 +++++++++++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 tests/units/test_0025_get_scopes.py diff --git a/src/rest.c b/src/rest.c index ae4c44d..196a25d 100644 --- a/src/rest.c +++ b/src/rest.c @@ -3859,6 +3859,11 @@ int og_client_state_process_payload_rest(struct og_client *cli) if (method != OG_METHOD_GET) return og_client_method_not_found(cli); + if (root) { + syslog(LOG_ERR, "command scopes with payload\n"); + return og_client_bad_request(cli); + } + err = og_cmd_scope_get(root, ¶ms, buf_reply); } else if (!strncmp(cmd, "poweroff", strlen("poweroff"))) { if (method != OG_METHOD_POST) diff --git a/tests/units/test_0025_get_scopes.py b/tests/units/test_0025_get_scopes.py new file mode 100644 index 0000000..dcfc04f --- /dev/null +++ b/tests/units/test_0025_get_scopes.py @@ -0,0 +1,25 @@ +import requests +import unittest + +class TestGetScopesMethods(unittest.TestCase): + + def setUp(self): + self.url = 'http://localhost:8888/scopes' + self.headers = {'Authorization' : '07b3bfe728954619b58f0107ad73acc1'} + self.json = None + + def test_get(self): + returned = requests.get(self.url, headers=self.headers, json=self.json) + self.assertEqual(returned.status_code, 200) + + def test_empty_payload(self): + returned = requests.get(self.url, headers=self.headers, json={}) + self.assertEqual(returned.status_code, 400) + + def test_malformed_payload(self): + returned = requests.get(self.url, headers=self.headers, json={ 'client': ['192.168.56.11'] }) + self.assertEqual(returned.status_code, 400) + + +if __name__ == '__main__': + unittest.main() \ No newline at end of file -- cgit v1.2.3-18-g5258