コード例 #1
0
    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."
コード例 #2
0
    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,
        )
コード例 #3
0
    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}
        )
コード例 #4
0
    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)