def test_multi_vif_no_match(self): m_get_nwinfo = self.create_patch( 'nova.compute.utils.get_nw_info_for_instance') m_get_nwinfo.return_value = self.multi_nw2 result = detach_network_check.filter_factory(self.conf)(self.app) resp = result.__call__.request(self.good_url, method='DELETE') self.assertEqual(self.app, resp)
def test_multi_vif_matching_network(self): m_get_nwinfo = self.create_patch( 'nova.compute.utils.get_nw_info_for_instance') m_get_nwinfo.return_value = self.multi_nw1 result = detach_network_check.filter_factory(self.conf)(self.app) resp = result.__call__.request(self.good_url, method='DELETE') self.assertNotEqual(self.app, resp) self.assertTrue(isinstance(resp, webob.exc.HTTPForbidden))
def test_incorrect_url(self): m_get_nwinfo = self.create_patch( 'nova.compute.utils.get_nw_info_for_instance') m_get_nwinfo.return_value = self.multi_nw2 result = detach_network_check.filter_factory(self.conf)(self.app) resp = result.__call__.request(self.bad_url2, method='DELETE') self.assertEqual(1, self.m_get_context.call_count) self.assertEqual(0, self.m_get_instance.call_count) self.assertEqual(self.app, resp)
def test_filtering_requests(self): m_get_nwinfo = self.create_patch( 'nova.compute.utils.get_nw_info_for_instance') m_get_nwinfo.return_value = self.empty_nw result = detach_network_check.filter_factory(self.conf)(self.app) result.__call__.request('/something', method='DELETE') self.assertEqual(1, self.m_get_context.call_count) self.assertEqual(0, self.m_get_instance.call_count) result.__call__.request(self.good_url, method='DELETE') self.assertEqual(2, self.m_get_context.call_count) self.assertEqual(1, self.m_get_instance.call_count)
def test_runtime_overrides(self): self.set_reconfigure() headers = {'X_WAFFLEHAUS_DETACHNETWORKCHECK_ENABLED': False} m_get_nwinfo = self.create_patch( 'nova.compute.utils.get_nw_info_for_instance') m_get_nwinfo.return_value = self.empty_nw result = detach_network_check.filter_factory(self.conf)(self.app) result.__call__.request(self.good_url, method='POST') self.assertEqual(0, self.m_get_context.call_count) self.assertEqual(self.app, result.app) result.__call__.request(self.good_url, method='PUT') self.assertEqual(0, self.m_get_context.call_count) self.assertEqual(self.app, result.app) result.__call__.request(self.good_url, method='GET') self.assertEqual(0, self.m_get_context.call_count) self.assertEqual(self.app, result.app) result.__call__.request(self.good_url, method='DELETE') self.assertEqual(1, self.m_get_context.call_count) # This waffle needs to be recreated due to the way that it stores the # values that we are testing. result = detach_network_check.filter_factory(self.conf)(self.app) result.__call__.request(self.good_url, method='POST', headers=headers) self.assertEqual(1, self.m_get_context.call_count) self.assertEqual(self.app, result.app) result.__call__.request(self.good_url, method='PUT', headers=headers) self.assertEqual(1, self.m_get_context.call_count) self.assertEqual(self.app, result.app) result.__call__.request(self.good_url, method='GET', headers=headers) self.assertEqual(1, self.m_get_context.call_count) self.assertEqual(self.app, result.app) result.__call__.request(self.good_url, method='DELETE', headers=headers) self.assertEqual(1, self.m_get_context.call_count)
def test_run_on_deletes(self): m_get_nwinfo = self.create_patch( 'nova.compute.utils.get_nw_info_for_instance') m_get_nwinfo.return_value = self.empty_nw result = detach_network_check.filter_factory(self.conf)(self.app) result.__call__.request(self.good_url, method='POST') self.assertEqual(0, self.m_get_context.call_count) self.assertEqual(self.app, result.app) result.__call__.request(self.good_url, method='PUT') self.assertEqual(0, self.m_get_context.call_count) self.assertEqual(self.app, result.app) result.__call__.request(self.good_url, method='GET') self.assertEqual(0, self.m_get_context.call_count) self.assertEqual(self.app, result.app) result.__call__.request(self.good_url, method='DELETE') self.assertEqual(1, self.m_get_context.call_count)
def test_create_filter(self): result = detach_network_check.filter_factory(self.conf)(self.app) self.assertIsNotNone(result) self.assertIsNotNone(result.required_networks) self.assertTrue(self.reqnet_id in result.required_networks)