def test_put_port(self):
     nb_db = Mock()
     nb_db.update_port.return_value = {
         PortMapper.REST_PORT_ID: str(PORT_ID07),
     }
     handler, params = SelectingHandler.get_response_handler(
         responses(), PUT, PORT_ENTITY.split('/'))
     response = handler(nb_db, '{"port" :{}}', {PORT_ID: str(PORT_ID07)})
     response_json = json.loads(response.body)
     assert response_json['port']['id'] == str(PORT_ID07)
    def test_delete_port(self):

        nb_db = Mock()

        handler, params = SelectingHandler.get_response_handler(
            responses(), DELETE,
            PORT_ENTITY.format(port_id=PORT_ID07).split('/'))
        handler(nb_db, NOT_RELEVANT, params)

        nb_db.delete_port.assert_called_once_with(str(PORT_ID07))
    def test_show_port(self):
        nb_db = Mock()
        nb_db.get_port.return_value = {
            PortMapper.REST_PORT_ID: str(PORT_ID07),
            PortMapper.REST_PORT_NAME: 'port_name',
            PortMapper.REST_PORT_SECURITY_GROUPS: [],
        }
        handler, params = SelectingHandler.get_response_handler(
            responses(), GET, PORT_ENTITY.split('/'))
        response = handler(nb_db, NOT_RELEVANT, {PORT_ID: PORT_ID07})

        response_json = json.loads(response.body)
        assert response_json['port']['id'] == str(PORT_ID07)
        assert response_json['port']['name'] == 'port_name'
        assert response_json['port']['security_groups'] == []
    def _test_invalid_content(self, content):
        for path in [NETWORKS, PORTS, SUBNETS]:
            handler, params = SelectingHandler.get_response_handler(
                responses(), POST, path.split('/'))
            with pytest.raises(BadRequestError):
                handler(NOT_RELEVANT, content, NOT_RELEVANT)

        for path in [
                NETWORK_ENTITY.format(network_id=7),
                PORT_ENTITY.format(port_id=7),
                SUBNET_ENTITY.format(subnet_id=7)
        ]:
            handler, params = SelectingHandler.get_response_handler(
                responses(), PUT, path.split('/'))
            with pytest.raises(BadRequestError):
                handler(NOT_RELEVANT, content, NOT_RELEVANT)
예제 #5
0
    def test_check_neutron_responses_required_by_engine_are_present(self):
        for method in [GET, POST]:
            for path in [NETWORKS, PORTS, SUBNETS, ROUTERS]:
                handler, params = SelectingHandler.get_response_handler(
                    responses(), method, path.split('/'))
                assert handler is not None
                assert params is not None
                assert not params

        for method in [GET, PUT, DELETE]:
            for path in [
                    NETWORK_ENTITY.format(network_id=7),
                    PORT_ENTITY.format(port_id=7),
                    SUBNET_ENTITY.format(subnet_id=7),
                    ROUTER_ENTITY.format(router_id=7)
            ]:
                handler, params = SelectingHandler.get_response_handler(
                    responses(), method, path.split('/'))
                assert handler is not None
                assert params is not None
                assert params.values()[0] == '7'

        for path in [
                ADD_ROUTER_INTERFACE.format(router_id=7),
                DELETE_ROUTER_INTERFACE.format(router_id=7)
        ]:
            handler, params = SelectingHandler.get_response_handler(
                responses(), PUT, path.split('/'))
            assert handler is not None
            assert params is not None
            assert params['router_id'] == '7'

        for path in [FLOATINGIPS, SECURITY_GROUPS]:
            handler, params = SelectingHandler.get_response_handler(
                responses(), GET, path.split('/'))
            assert handler is not None

        # This is a test call engine makes to check if provider is alive
        handler, params = SelectingHandler.get_response_handler(
            responses(), GET, ''.split('/'))
        assert handler is not None