Beispiel #1
0
def test_get(mocker):
    cinp = CInP('http://localhost:8080', '/api/v1/', None)
    mocked_open = mocker.patch('urllib.request.OpenerDirector.open')
    mocked_open.return_value = MockResponse(
        200, {}, '{"key": "value", "thing": "stuff"}')

    with pytest.raises(InvalidRequest):
        cinp.get('/api/v1/')

    with pytest.raises(InvalidRequest):
        cinp.get('/api/v1/model')

    mocked_open.reset_mock()
    rec_values = cinp.get('/api/v1/model:123:')
    req = mocked_open.call_args[0][0]
    assert req.full_url == 'http://localhost:8080/api/v1/model:123:'
    assert req.data == b''
    assert req.headers == {'Content-type': 'application/json;charset=utf-8'}
    assert req.get_method() == 'GET'
    assert rec_values == {'key': 'value', 'thing': 'stuff'}

    mocked_open.reset_mock()
    mocked_open.return_value = MockResponse(
        201, {}, '{"key": "value", "thing": "stuff"}')
    with pytest.raises(ResponseError):
        cinp.get('/api/v1/model:123:')

    mocked_open.reset_mock()
    mocked_open.return_value = MockResponse(200, {}, '"hi mom"')
    with pytest.raises(ResponseError):
        cinp.get('/api/v1/model:123:')

    mocked_open.reset_mock()
    mocked_open.return_value = MockResponse(
        404, {}, '{"key": "value", "thing": "stuff"}')
    with pytest.raises(NotFound):
        cinp.get('/api/v1/model:123:')

    mocked_open.reset_mock()
    mocked_open.return_value = MockResponse(
        200, {}, '{"key": "value", "thing": "stuff"}')
    rec_values = cinp.get('/api/v1/model:123:', force_multi_mode=True)
    req = mocked_open.call_args[0][0]
    assert req.full_url == 'http://localhost:8080/api/v1/model:123:'
    assert req.data == b''
    assert req.headers == {
        'Multi-object': True,
        'Content-type': 'application/json;charset=utf-8'
    }
    assert req.get_method() == 'GET'
    assert rec_values == {'key': 'value', 'thing': 'stuff'}
Beispiel #2
0
print(client.describe('/api/v1/User/Session(login)'))
print(client.describe('/api/v1/User/Session(logout)'))
print(client.describe('/api/v1/User/Session(hearbeat)'))
print(client.describe('/api/v1/Car/'))
print(client.describe('/api/v1/Car/PartType'))
print(client.describe('/api/v1/Car/Part'))
print(client.describe('/api/v1/Car/Car'))

print('List is not allowed on Users')
try:
    print(client.list('/api/v1/User/User'))
except NotAuthorized:
    pass

print('Let' 's get ford' 's user info')
print(client.get('/api/v1/User/User:ford:'))

print('What kind of Part Types do we have to work with')
print(client.list('/api/v1/Car/PartType'))

print('Let' 's make some parts')
print(
    client.create('/api/v1/Car/Part', {
        'part_type': '/api/v1/Car/PartType:Bumper:',
        'price': 10.00
    }))
print(
    client.create('/api/v1/Car/Part', {
        'part_type': '/api/v1/Car/PartType:MotorMount:',
        'price': 42.00
    }))