def test_get_to_ports(self, mock_neutron, mock_nova): """This should look exactly like disabled_filter (we ignore GETs).""" test_filter = nova_interaction.filter_factory(self.conf)(self.app) resp = test_filter( webob.Request.blank("/v2/ports/random_port_id", method="GET")) self.assertFalse(mock_nova.called) self.assertFalse(mock_neutron.called) self.assertEqual(resp, self.app)
def test_post_to_ports_fail_on_nova(self, mock_neutron, mock_nova): mock_conn = mock.MagicMock() mock_conn.admin_virtual_interfaces.return_value = (503, "ERROR!") mock_nova.return_value = mock_conn req = webob.Request.blank("/v2/ports", method="POST") test_filter = nova_interaction.filter_factory(self.conf)(self.fake_app) resp = test_filter(req) fake_resp = self.fake_response(req, fail="nova") self.assertFalse(mock_neutron.called) self.assertTrue(mock_nova.called) self.assertTrue(mock_conn.admin_virtual_interfaces.called) self.assertEqual(resp.json, fake_resp.json) self.assertEqual(resp.status_code, 500)
def test_put_to_ports_fail_on_nova(self, mock_neutron, mock_nova): """This is identical to the POST nova failure above, except PUT.""" mock_conn = mock.MagicMock() mock_conn.admin_virtual_interfaces.return_value = (503, "ERROR!") mock_nova.return_value = mock_conn req = webob.Request.blank("/v2/ports/random_port_id", method="PUT") test_filter = nova_interaction.filter_factory(self.conf)(self.fake_app) resp = test_filter(req) fake_resp = self.fake_response(req, fail="nova") self.assertFalse(mock_neutron.called) self.assertTrue(mock_nova.called) self.assertTrue(mock_conn.admin_virtual_interfaces.called) self.assertEqual(resp.json, fake_resp.json) self.assertEqual(resp.status_code, 500)
def test_delete_to_ports_fail_on_neutron(self, mock_neutron, mock_nova): """Test DELETE to /ports failing on Neutron callback. Delete includes a call to Neutron, so two failure tests needed. """ mock_neutron_conn = mock.MagicMock() mock_neutron_conn.ports.return_value = (503, "ERROR!") mock_neutron.return_value = mock_neutron_conn req = webob.Request.blank("/v2/ports/random_port_id", method="DELETE") test_filter = nova_interaction.filter_factory(self.conf)(self.fake_app) resp = test_filter(req) fake_resp = self.fake_response(req, fail="neutron") self.assertTrue(mock_neutron.called) self.assertTrue(mock_neutron_conn.ports.called) self.assertFalse(mock_nova.called) self.assertEqual(resp.json, fake_resp.json) self.assertEqual(resp.status_code, 500)
def test_delete_to_ports(self, mock_neutron, mock_nova): mock_neutron_conn = mock.MagicMock() mock_neutron_conn.ports.return_value = self.neutron_response mock_neutron.return_value = mock_neutron_conn mock_nova_conn = mock.MagicMock() mock_nova_conn.admin_virtual_interfaces.return_value = ( self.nova_response) mock_nova.return_value = mock_nova_conn req = webob.Request.blank("/v2/ports/random_port_id", method="DELETE") test_filter = nova_interaction.filter_factory(self.conf)(self.fake_app) resp = test_filter(req) fake_resp = self.fake_response(req) self.assertTrue(mock_neutron.called) self.assertTrue(mock_neutron_conn.ports.called) self.assertTrue(mock_nova.called) self.assertTrue(mock_nova_conn.admin_virtual_interfaces.called) self.assertEqual(resp.json, fake_resp.json) self.assertEqual(resp.status_code, fake_resp.status_code)
def test_disabled_filter(self): conf = {"enabled": "false"} test_filter = nova_interaction.filter_factory(conf)(self.app) resp = test_filter(webob.Request.blank("/v2/ports", method="POST")) self.assertEqual(resp, self.app)
def test_filter_creation(self): test_filter = nova_interaction.filter_factory(self.conf)(self.fake_app) self.assertIsNotNone(test_filter) self.assertIsInstance(test_filter, nova_interaction.NovaInteraction) self.assertTrue(callable(test_filter))