From e617e7469daf580dda37eba63f9d44d749d8db30 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Nowak?= <luke@nexedi.com> Date: Thu, 10 May 2012 16:27:12 +0200 Subject: [PATCH] Test instance PUT (positive scenarios). --- .../testVifibSlaposRestAPIV1.py | 85 +++++++++++++++++++ .../vifib_slapos_rest_api_v1_test/bt/revision | 2 +- 2 files changed, 86 insertions(+), 1 deletion(-) 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 31fd64704..fd447c502 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 @@ -790,3 +790,88 @@ class TestInstancePOSTbang(VifibSlaposRestAPIV1BangMixin): self.assertResponseJson() self.assertEqual({'log': 'bool is not unicode.'}, self.json_response) self.assertInstanceBangSimulatorEmpty() + +class TestInstancePUT(VifibSlaposRestAPIV1InstanceMixin): + def afterSetUp(self): + super(TestInstancePUT, self).afterSetUp() + self.instance_put_simulator = tempfile.mkstemp()[1] + self.software_instance.setTitle = Simulator(self.instance_put_simulator, + 'setTitle') + self.software_instance.setConnectionXml = Simulator(self.instance_put_simulator, + 'setConnectionXml') + transaction.commit() + + def beforeTearDown(self): + super(TestInstancePUT, self).beforeTearDown() + if os.path.exists(self.instance_put_simulator): + os.unlink(self.instance_put_simulator) + + def assertInstancePUTSimulator(self, l): + stored = eval(open(self.instance_put_simulator).read()) + self.assertEqual(stored, l) + + def test(self): + d = { + 'title': 'New Title' + self.test_random_id, + 'connection': {'url': 'http://new' + self.test_random_id} + } + self.connection.request(method='PUT', + url='/'.join([self.api_path, 'instance', + self.software_instance.getRelativeUrl()]), + body=json.dumps(d), + headers={'REMOTE_USER': self.customer_reference}) + self.prepareResponse() + self.assertBasicResponse() + self.assertResponseCode(200) + self.assertResponseJson() + self.assertEqual({ + "title": "Modified.", + "connection": "Modified." + }, + self.json_response) + self.assertInstancePUTSimulator([{'recargs': (d['title'],), 'reckwargs': {}, + 'recmethod': 'setTitle'}, + {'recargs': ('<?xml version=\'1.0\' encoding=\'utf-8\'?>\n<instance>\n '\ + '<parameter id="url">http://new%s</parameter>\n</instance>\n'% + self.test_random_id,), 'reckwargs': {}, 'recmethod': 'setConnectionXml'}]) + + def test_same_title(self): + d = { + 'title': self.software_instance.getTitle(), + 'connection': {'url': 'http://new' + self.test_random_id} + } + self.connection.request(method='PUT', + url='/'.join([self.api_path, 'instance', + self.software_instance.getRelativeUrl()]), + body=json.dumps(d), + headers={'REMOTE_USER': self.customer_reference}) + self.prepareResponse() + self.assertBasicResponse() + self.assertResponseCode(200) + self.assertResponseJson() + self.assertEqual({"connection": "Modified."}, self.json_response) + self.assertInstancePUTSimulator([ + {'recargs': ('<?xml version=\'1.0\' encoding=\'utf-8\'?>\n<instance>\n '\ + '<parameter id="url">http://new%s</parameter>\n</instance>\n'% + self.test_random_id,), 'reckwargs': {}, 'recmethod': 'setConnectionXml'}]) + + def test_same_connection(self): + d = { + 'title': 'New Title 2' + self.test_random_id, + 'connection': self.software_instance.getConnectionXmlAsDict() + } + self.connection.request(method='PUT', + url='/'.join([self.api_path, 'instance', + self.software_instance.getRelativeUrl()]), + body=json.dumps(d), + headers={'REMOTE_USER': self.customer_reference}) + self.prepareResponse() + self.assertBasicResponse() + self.assertResponseCode(200) + self.assertResponseJson() + self.assertEqual({ + "title": "Modified.", + }, + self.json_response) + self.assertInstancePUTSimulator([{'recargs': (d['title'],), + 'reckwargs': {}, 'recmethod': 'setTitle'}]) 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 7c091989d..c24b6ae77 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 @@ -37 \ No newline at end of file +38 \ No newline at end of file -- 2.30.9