def test_search_with_option(self, client, mocker): url = 'http://httpbin.org/image' api = m.API(client, 'search', '******') api.query(url) api.client.post.assert_called_with(api.base_url, data={ 'loc': '0-0-1-1', 'url': url, 'count': 20 }, files=None) api.query(url, abc=123) api.client.post.assert_called_with(api.base_url, data={ 'loc': '0-0-1-1', 'url': url, 'count': 20, 'abc': 123 }, files=None) with pytest.raises(ValueError) as val_err: api.query(url, search='123') assert str( val_err.value ) == "The keys ['search'] are in conflict with built-in parameters."
def test_should_accept_image_url(self, client, mocker): api = m.API(client, 'classify_fashion', '_0000001') image = 'http://httpbin.org/image' api.query(image, '0-0-1-1') api.client.post.assert_called_with( api.base_url, data={'loc': '0-0-1-1', 'url': image, 'count': 20}, files=None, )
def test_should_upload_file_like_obj(self, client, mocker): api = m.API(client, 'classify_fashion', '_0000001') f = mocker.Mock() f.read = lambda: b'1111' api.query(f, '0-0-1-1') api.client.post.assert_called_with( api.base_url, data={'loc': '0-0-1-1', 'count': 20}, files={'search': f} )
def test_search_by_tag(self, client, mocker): url = 'http://httpbin.org/image' api = m.API(client, 'search', '******') api.query(url, tags=None) api.client.post.assert_called_with(api.base_url, data={ 'loc': '0-0-1-1', 'url': url, 'count': 20 }, files=None) api.query(url, tags='1') api.client.post.assert_called_with(api.base_url, data={ 'loc': '0-0-1-1', 'url': url, 'count': 20, 'tags': '1' }, files=None) api.query(url, tags='1|2') api.client.post.assert_called_with(api.base_url, data={ 'loc': '0-0-1-1', 'url': url, 'count': 20, 'tags': '1|2' }, files=None) api.query(url, tags=['1']) api.client.post.assert_called_with(api.base_url, data={ 'loc': '0-0-1-1', 'url': url, 'count': 20, 'tags': '1' }, files=None) api.query(url, tags=['1', '2', '3']) api.client.post.assert_called_with(api.base_url, data={ 'loc': '0-0-1-1', 'url': url, 'count': 20, 'tags': '1|2|3' }, files=None) expected = {'or': ['1', '2']} api.query(url, tags=expected) api.client.post.assert_called_with(api.base_url, data={ 'loc': '0-0-1-1', 'url': url, 'count': 20, 'tags': json.dumps(expected) }, files=None) expected = { 'or': [ '1', '2', { 'and': ['3', '4'] }, { 'or': ['5', { 'and': ['7', '8'] }] } ] } api.query(url, tags=expected) api.client.post.assert_called_with(api.base_url, data={ 'loc': '0-0-1-1', 'url': url, 'count': 20, 'tags': json.dumps(expected) }, files=None)