From 29e7641e910901e813f5682da677f767a2aea5cc Mon Sep 17 00:00:00 2001 From: Javier Sánchez Parra Date: Tue, 20 Apr 2021 11:54:00 +0200 Subject: #915 Add /room/add POST method Adds POST method to add rooms (labs), required payload parameters are name, netmask and center; any additional attributes are optional. Required JSON: { "center": 0, "name": "classroom10", "netmask": "255.255.255.0" } Full JSON: { "center": 0, "name": "classroom11", "netmask": "255.255.255.0", "group": 0, "location": "First floor", "gateway": "192.168.56.1", "ntp": "hora.cica.es", "dns": "1.1.1.1", "remote": True } This commit also adds unit tests for /room/add POST method. --- tests/units/test_0031_post_room_add.py | 47 ++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 tests/units/test_0031_post_room_add.py (limited to 'tests') diff --git a/tests/units/test_0031_post_room_add.py b/tests/units/test_0031_post_room_add.py new file mode 100644 index 0000000..3db8c6d --- /dev/null +++ b/tests/units/test_0031_post_room_add.py @@ -0,0 +1,47 @@ +import requests +import unittest + +class TestPostRoomAddMethods(unittest.TestCase): + + def setUp(self): + self.url = 'http://localhost:8888/room/add' + self.headers = {'Authorization' : '07b3bfe728954619b58f0107ad73acc1'} + self.full_json = { "center": 0, + "name": "classroom11", + "netmask": "255.255.255.0", + "group": 0, + "location": "First floor", + "gateway": "192.168.56.1", + "ntp": "hora.cica.es", + "dns": "1.1.1.1", + "remote": True } + self.minimal_json = { "center": 0, + "name": "classroom10", + "netmask": "255.255.255.0" } + self.duplicated_room_json = { "center": 0, + "name": "repeated_room", + "netmask": "255.255.255.0" } + + def test_post(self): + returned = requests.post(self.url, headers=self.headers, + json=self.full_json) + self.assertEqual(returned.status_code, 200) + + def test_post_only_required_fields(self): + returned = requests.post(self.url, headers=self.headers, + json=self.minimal_json) + self.assertEqual(returned.status_code, 200) + + def test_post_duplicated_room(self): + requests.post(self.url, headers=self.headers, + json=self.duplicated_room_json) + returned = requests.post(self.url, headers=self.headers, + json=self.duplicated_room_json) + self.assertEqual(returned.status_code, 400) + + def test_get(self): + returned = requests.get(self.url, headers=self.headers) + self.assertEqual(returned.status_code, 405) + +if __name__ == '__main__': + unittest.main() -- cgit v1.2.3-18-g5258