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'}
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 }))