From 98d6da7db95a078ef9d3920c5d5a4182441b4a1b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Nowak?= <luke@nexedi.com> Date: Mon, 21 May 2012 17:32:40 +0200 Subject: [PATCH] Cover basic cases specific to Computer.PUT. --- .../testVifibSlaposRestAPIV1.py | 150 +++++++++++++++++- .../vifib_slapos_rest_api_v1_test/bt/revision | 2 +- 2 files changed, 146 insertions(+), 6 deletions(-) diff --git a/master/bt5/vifib_slapos_rest_api_v1_test/TestTemplateItem/testVifibSlaposRestAPIV1.py b/master/bt5/vifib_slapos_rest_api_v1_test/TestTemplateItem/testVifibSlaposRestAPIV1.py index 822082be1..7065ec7e8 100644 --- a/master/bt5/vifib_slapos_rest_api_v1_test/TestTemplateItem/testVifibSlaposRestAPIV1.py +++ b/master/bt5/vifib_slapos_rest_api_v1_test/TestTemplateItem/testVifibSlaposRestAPIV1.py @@ -1531,16 +1531,156 @@ class TestComputerPUT(VifibSlaposRestAPIV1MixinBase): self.assertComputerPUTSimulatorEmpty() def test_software_release_status(self): - raise NotImplementedError + d = { + "partition": [ + { + "title": "part0", + "public_ip": "::0", + "private_ip": "127.0.0.0", + "tap_interface": "tap0" + } + ], + "software": [ + { + "software_release": "software_release", + "status": "wrong status", + "log": "Installation log" + } + ] + } + + self.connection.request(method='PUT', + url='/'.join([self.api_path, 'computer', + self.computer.getRelativeUrl()]), + body=json.dumps(d), + headers={'REMOTE_USER': self.computer_reference}) + self.prepareResponse() + self.assertBasicResponse() + self.assertResponseCode(400) + self.assertResponseJson() + self.assertEqual({'software_0': ['Status "wrong status" is incorrect.']}, + self.json_response) + self.assertComputerPUTSimulatorEmpty() def test_only_partition(self): - raise NotImplementedError + d = { + "partition": [ + { + "title": "part0", + "public_ip": "::0", + "private_ip": "127.0.0.0", + "tap_interface": "tap0" + } + ] + } + + self.connection.request(method='PUT', + url='/'.join([self.api_path, 'computer', + self.computer.getRelativeUrl()]), + body=json.dumps(d), + headers={'REMOTE_USER': self.computer_reference}) + self.prepareResponse() + self.assertBasicResponse() + self.assertResponseCode(204) + self.assertComputerPUTSimulator([ + {'recmethod': 'Computer_updateFromJson', + 'recargs': ({ + 'partition': + [{ + 'public_ip': '::0', + 'tap_interface': 'tap0', + 'private_ip': '127.0.0.0', + 'title': 'part0'}], + },), + 'reckwargs': {}}]) def test_only_software(self): - raise NotImplementedError + d = { + "software": [ + { + "software_release": "software_release", + "status": "uninstalled", + "log": "Installation log" + } + ] + } + + self.connection.request(method='PUT', + url='/'.join([self.api_path, 'computer', + self.computer.getRelativeUrl()]), + body=json.dumps(d), + headers={'REMOTE_USER': self.computer_reference}) + self.prepareResponse() + self.assertBasicResponse() + self.assertResponseCode(204) + self.assertComputerPUTSimulator([ + {'recmethod': 'Computer_updateFromJson', + 'recargs': ({ + 'software': + [{ + 'status': 'uninstalled', + 'software_release': 'software_release', + 'log': 'Installation log'}]},), + 'reckwargs': {}}]) def test_partition_object_incorrect(self): - raise NotImplementedError + d = { + "partition": [ + { + "title": "part0", + "public_ip": "::0", + "private_ip": "127.0.0.0" + } + ], + "software": [ + { + "software_release": "software_release", + "status": "uninstalled", + "log": "Installation log" + } + ] + } + + self.connection.request(method='PUT', + url='/'.join([self.api_path, 'computer', + self.computer.getRelativeUrl()]), + body=json.dumps(d), + headers={'REMOTE_USER': self.computer_reference}) + self.prepareResponse() + self.assertBasicResponse() + self.assertResponseCode(400) + self.assertResponseJson() + self.assertEqual({'partition_0': ['Missing key "tap_interface".']}, + self.json_response) + self.assertComputerPUTSimulatorEmpty() def test_software_object_incorrect(self): - raise NotImplementedError + d = { + "partition": [ + { + "title": "part0", + "public_ip": "::0", + "private_ip": "127.0.0.0", + "tap_interface": "tap0" + } + ], + "software": [ + { + "software_release": "software_release", + "status": "uninstalled", + } + ] + } + + self.connection.request(method='PUT', + url='/'.join([self.api_path, 'computer', + self.computer.getRelativeUrl()]), + body=json.dumps(d), + headers={'REMOTE_USER': self.computer_reference}) + self.prepareResponse() + self.assertBasicResponse() + self.assertResponseCode(400) + self.assertResponseJson() + self.assertEqual({'software_0': ['Missing key "log".']}, + self.json_response) + self.assertComputerPUTSimulatorEmpty() diff --git a/master/bt5/vifib_slapos_rest_api_v1_test/bt/revision b/master/bt5/vifib_slapos_rest_api_v1_test/bt/revision index fc9afb48e..2b82dfea3 100644 --- a/master/bt5/vifib_slapos_rest_api_v1_test/bt/revision +++ b/master/bt5/vifib_slapos_rest_api_v1_test/bt/revision @@ -1 +1 @@ -59 \ No newline at end of file +60 \ No newline at end of file -- 2.30.9