Esempio n. 1
0
def test_set_add_multiple_resources_with_no_api_prefix(app, client):

    api = ArrestedAPI(app)
    characters_resource = Resource('characters',
                                   __name__,
                                   url_prefix='/characters')
    planets_resource = Resource('planets', __name__, url_prefix='/planets')

    characters_resource.add_endpoint(CharactersEndpoint)
    planets_resource.add_endpoint(PlanetsEndpoint)

    api.register_resource(characters_resource)
    api.register_resource(planets_resource)

    resp = client.get('/characters')
    assert resp.data == bytes(
        json.dumps({
            'payload': _get_character_objects()
        }).encode('utf-8'))

    resp = client.get('/planets')
    assert resp.data == bytes(
        json.dumps({
            'payload': _get_planet_objects()
        }).encode('utf-8'))
Esempio n. 2
0
def test_set_add_resource_endpoint_with_prefix(api_v1, client):

    characters_resource = Resource('characters',
                                   __name__,
                                   url_prefix='/characters')
    characters_resource.add_endpoint(CharactersEndpoint)
    api_v1.register_resource(characters_resource)

    resp = client.get('/v1/characters')

    assert resp.data == bytes(
        json.dumps({
            'payload': _get_character_objects()
        }).encode('utf-8'))
Esempio n. 3
0
def test_set_add_resource_endpoint_with_url_params(api_v1, client):

    characters_resource = Resource('characters', __name__, url_prefix='/jedis')

    class JediObjectEndpoint(CharacterEndpoint):
        url = '/<string:obj_id>'

        def get_object(self):

            return _get_character_objects()[1]

    characters_resource.add_endpoint(JediObjectEndpoint)
    api_v1.register_resource(characters_resource)

    resp = client.get('/v1/jedis/1')

    assert resp.data == bytes(
        json.dumps({
            'payload': _get_character_objects()[1]
        }).encode('utf-8'))
Esempio n. 4
0
def test_set_add_resource_endpoint_with_no_prefix(api_v1, client):

    characters_resource = Resource('characters', __name__)

    class JedisEndpoint(CharactersEndpoint):
        url = '/jedis'

        def get_objects(self):

            return [_get_character_objects()[1]]

    characters_resource.add_endpoint(JedisEndpoint)
    api_v1.register_resource(characters_resource)

    resp = client.get('/v1/jedis')

    assert resp.data == bytes(
        json.dumps({
            'payload': [_get_character_objects()[1]]
        }).encode('utf-8'))
Esempio n. 5
0
        def get_object(self):

            return _get_character_objects()[1]