Ejemplo n.º 1
0
def test_that_when_adding_resource_its_endpoints_are_added_to_chalice():
    # Arrange.
    class SimpleResource(Resource):
        route = '/'

        def get(): ...

    app = MagicMock()
    route = MagicMock()
    app.route = MagicMock(return_value=route)
    api = Api(app)

    # Act.
    api.add(SimpleResource)

    # Assert.
    app.route.assert_called_with('/', methods=['GET'])
    route.assert_called_with(SimpleResource.get)
Ejemplo n.º 2
0
def test_that_when_resource_requires_api_key_its_endpoints_are_added_with_api_key_required():
    # Arrange.
    @api_key_required
    class SimpleResource(Resource):
        route = '/'

        def get(): ...

    app = MagicMock()
    route = MagicMock()
    app.route = MagicMock(return_value=route)
    api = Api(app)

    # Act.
    api.add(SimpleResource)

    # Assert.
    app.route.assert_called_with('/', methods=['GET'], api_key_required=True)
Ejemplo n.º 3
0
def test_that_when_endpoint_is_authorized_it_is_added_with_authorizer():
    # Arrange.
    class SimpleResource(Resource):
        route = '/'

        @authorizer('x')
        def get(): ...

    app = MagicMock()
    route = MagicMock()
    app.route = MagicMock(return_value=route)
    api = Api(app)

    # Act.
    api.add(SimpleResource)

    # Assert.
    app.route.assert_called_with('/', methods=['GET'], authorizer='x')
Ejemplo n.º 4
0
def test_that_cant_add_resource_class_itself():
    # Arrange.
    api = Api(MagicMock())

    # Act.
    add = lambda: api.add(Resource)

    # Assert.
    with pytest.raises(AssertionError):
        add()
Ejemplo n.º 5
0
def test_that_cant_add_resource_without_route_field():
    # Arrange.
    class NonDecoratedResource(Resource): ...
    api = Api(MagicMock())

    # Act.
    add = lambda: api.add(NonDecoratedResource)

    # Assert.
    with pytest.raises(AssertionError):
        add()
Ejemplo n.º 6
0
def test_that_cant_add_not_resource_subclass():
    # Arrange.
    class NotResource: ...
    api = Api(MagicMock())

    # Act.
    add = lambda: api.add(NotResource)

    # Assert.
    with pytest.raises(AssertionError):
        add()
Ejemplo n.º 7
0
def test_that_cant_add_resource_without_supported_methods():
    # Arrange.
    class SimpleResource(Resource):
        route = '/'

    api = Api(MagicMock())

    # Act.
    add = lambda: api.add(SimpleResource)

    # Assert.
    with pytest.raises(AssertionError):
        add()