def test_send_ready_signal_sends_post_request(self): with mock.patch.object( azure_helper.GoalStateHealthReporter, 'build_report') as m_build_report: client = azure_helper.AzureEndpointHttpClient(mock.MagicMock()) reporter = azure_helper.GoalStateHealthReporter( azure_helper.GoalState(mock.MagicMock(), mock.MagicMock()), client, self.test_endpoint) reporter.send_ready_signal() self.assertEqual(1, self.post.call_count) self.assertEqual( mock.call( self.test_url, data=m_build_report.return_value, extra_headers=self.test_default_headers), self.post.call_args)
def test_secure_get(self): url = 'MyTestUrl' certificate = mock.MagicMock() expected_headers = self.regular_headers.copy() expected_headers.update({ "x-ms-cipher-name": "DES_EDE3_CBC", "x-ms-guest-agent-public-x509-cert": certificate, }) client = azure_helper.AzureEndpointHttpClient(certificate) response = client.get(url, secure=True) self.assertEqual(1, self.read_file_or_url.call_count) self.assertEqual(self.read_file_or_url.return_value, response) self.assertEqual( mock.call(url, headers=expected_headers, retries=10, timeout=5), self.read_file_or_url.call_args)
def test_send_ready_signal_calls_build_report(self): with mock.patch.object( azure_helper.GoalStateHealthReporter, 'build_report' ) as m_build_report: reporter = azure_helper.GoalStateHealthReporter( azure_helper.GoalState(mock.MagicMock(), mock.MagicMock()), azure_helper.AzureEndpointHttpClient(mock.MagicMock()), self.test_endpoint) reporter.send_ready_signal() self.assertEqual(1, m_build_report.call_count) self.assertEqual( mock.call( incarnation=self.default_parameters['incarnation'], container_id=self.default_parameters['container_id'], instance_id=self.default_parameters['instance_id'], status=self.provisioning_success_status), m_build_report.call_args)
def test_build_report_for_health_document(self): health_document = self._get_report_ready_health_document() reporter = azure_helper.GoalStateHealthReporter( azure_helper.GoalState(mock.MagicMock(), mock.MagicMock()), azure_helper.AzureEndpointHttpClient(mock.MagicMock()), self.test_endpoint) generated_health_document = reporter.build_report( incarnation=self.default_parameters['incarnation'], container_id=self.default_parameters['container_id'], instance_id=self.default_parameters['instance_id'], status=self.provisioning_success_status) self.assertEqual(health_document, generated_health_document) self.assertIn( '<GoalStateIncarnation>{}</GoalStateIncarnation>'.format( str(self.default_parameters['incarnation'])), generated_health_document) self.assertIn( ''.join([ '<ContainerId>', self.default_parameters['container_id'], '</ContainerId>']), generated_health_document) self.assertIn( ''.join([ '<InstanceId>', self.default_parameters['instance_id'], '</InstanceId>']), generated_health_document) self.assertIn( ''.join([ '<State>', self.provisioning_success_status, '</State>']), generated_health_document ) self.assertNotIn('<Details>', generated_health_document) self.assertNotIn('<SubStatus>', generated_health_document) self.assertNotIn('<Description>', generated_health_document)
def test_secure_get_raises_exception(self): url = 'MyTestUrl' client = azure_helper.AzureEndpointHttpClient(mock.MagicMock()) self.readurl.side_effect = SentinelException with self.assertRaises(SentinelException): client.get(url, secure=True)