Commit 6c3040ba authored by Łukasz Nowak's avatar Łukasz Nowak

Initiate testing of instance access.

parent 1558d49b
......@@ -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'))]))
80
\ No newline at end of file
81
\ No newline at end of file
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment