summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/rest.c5
-rw-r--r--tests/units/test_0025_get_scopes.py25
2 files changed, 30 insertions, 0 deletions
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, &params, 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