diff --git a/master/bt5/slapos_cloud/TestTemplateItem/testSlapOSSlapTool.py b/master/bt5/slapos_cloud/TestTemplateItem/testSlapOSSlapTool.py index 676cea05213c6de46f1383745bccb95b5251d81a..907d102b628fda4bf6686dc86949bb4919372904 100644 --- a/master/bt5/slapos_cloud/TestTemplateItem/testSlapOSSlapTool.py +++ b/master/bt5/slapos_cloud/TestTemplateItem/testSlapOSSlapTool.py @@ -12,8 +12,7 @@ import xml.dom.ext import StringIO import difflib -class TestSlapOSSlapToolComputerAccess(testSlapOSMixin): - +class TestSlapOSSlapToolMixin(testSlapOSMixin): def generateNewId(self): return self.portal.portal_ids.generateNewId( id_group=('slapos_core_test')) @@ -32,7 +31,7 @@ class TestSlapOSSlapToolComputerAccess(testSlapOSMixin): 'id="param">%s</parameter></instance>' % self.generateNewId() def afterSetUp(self): - super(TestSlapOSSlapToolComputerAccess, self).afterSetUp() + super(TestSlapOSSlapToolMixin, self).afterSetUp() self.portal_slap = self.portal.portal_slap new_id = self.generateNewId() @@ -50,7 +49,6 @@ class TestSlapOSSlapToolComputerAccess(testSlapOSMixin): self.tic() self.computer_id = self.computer.getReference() - self.login(self.computer_id) def beforeTearDown(self): pass @@ -181,6 +179,7 @@ class TestSlapOSSlapToolComputerAccess(testSlapOSMixin): self.tic() +class TestSlapOSSlapToolComputerAccess(TestSlapOSSlapToolMixin): def _getPartitionXml(self): return """\ <?xml version='1.0' encoding='UTF-8'?> @@ -510,6 +509,7 @@ class TestSlapOSSlapToolComputerAccess(testSlapOSMixin): self.portal_slap.getComputerInformation.im_func.func_name) def test_not_accessed_getComputerStatus(self): + self.login(self.computer_id) created_at = rfc1123_date(DateTime()) response = self.portal_slap.getComputerStatus(self.computer_id) self.assertEqual(200, response.status) @@ -548,6 +548,7 @@ class TestSlapOSSlapToolComputerAccess(testSlapOSMixin): '\n'.join([q for q in difflib.unified_diff(expected_xml.split('\n'), got_xml.split('\n'))])) def test_accessed_getComputerStatus(self): + self.login(self.computer_id) self.portal_slap.getComputerInformation(self.computer_id) created_at = rfc1123_date(DateTime()) response = self.portal_slap.getComputerStatus(self.computer_id) @@ -586,3 +587,42 @@ class TestSlapOSSlapToolComputerAccess(testSlapOSMixin): ) self.assertEqual(expected_xml, got_xml, '\n'.join([q for q in difflib.unified_diff(expected_xml.split('\n'), got_xml.split('\n'))])) + +class TestSlapOSSlapToolInstanceAccess(TestSlapOSSlapToolMixin): + def test_getComputerPartitionCertificate(self): + self._makeComplexComputer() + self.login(self.start_requested_software_instance.getReference()) + response = self.portal_slap.getComputerPartitionCertificate(self.computer_id, + self.start_requested_software_instance.getAggregateValue( + portal_type='Computer Partition').getReference()) + self.assertEqual(200, response.status) + self.assertEqual( 'public, max-age=0, must-revalidate', + response.headers.get('cache-control')) + self.assertEqual('REMOTE_USER', + response.headers.get('vary')) + self.assertTrue('last-modified' in response.headers) + self.assertEqual('text/xml; charset=utf-8', + response.headers.get('content-type')) + # check returned XML + xml_fp = StringIO.StringIO() + + xml.dom.ext.PrettyPrint(xml.dom.ext.reader.Sax.FromXml(response.body), + stream=xml_fp) + xml_fp.seek(0) + got_xml = xml_fp.read() + expected_xml = """\ +<?xml version='1.0' encoding='UTF-8'?> +<marshal> + <dictionary id='i2'> + <string>certificate</string> + <string>%(instance_certificate)s</string> + <string>key</string> + <string>%(instance_key)s</string> + </dictionary> +</marshal> +""" % dict( + instance_certificate=self.start_requested_software_instance.getSslCertificate(), + instance_key=self.start_requested_software_instance.getSslKey() +) + self.assertEqual(expected_xml, got_xml, + '\n'.join([q for q in difflib.unified_diff(expected_xml.split('\n'), got_xml.split('\n'))])) diff --git a/master/bt5/slapos_cloud/bt/revision b/master/bt5/slapos_cloud/bt/revision index e3f1e9b791c84fce95fe992dc246e9e2286c84ed..c147342cbefa3ef64ade3ed72b63aa05906a1829 100644 --- a/master/bt5/slapos_cloud/bt/revision +++ b/master/bt5/slapos_cloud/bt/revision @@ -1 +1 @@ -80 \ No newline at end of file +81 \ No newline at end of file