def syncAlgoliaWith(data, id, ingredients):
    config = SearchConfig(ALGOLIA_ID, ALGOLIA_ADMIN_KEY)
    config.batch_size = 1

    client = SearchClient.create_with_config(config)
    client._config.bach_size = 1

    # Add an 'objectID' field which Algolia requires
    data["objectID"] = id
    data["filtered_ingredients"] = ingredients
    # Write to the algolia index
    index = client.init_index('Recipes')
    index.save_objects([data])
示例#2
0
 def setUp(self):
     self.config = SearchConfig('foo', 'bar')
     requester = Requester()
     self.transporter = Transporter(requester, self.config)
     self.transporter.read = mock.Mock(name="read")
     self.transporter.read.return_value = {}
     self.transporter.write = mock.Mock(name="write")
     self.transporter.write.return_value = {}
     self.index = SearchIndex(self.transporter, self.config, 'index-name')
示例#3
0
    def setUp(self):
        self.config = SearchConfig("foo", "bar")
        self.transporter = Transporter(Requester(), self.config)
        self.transporter.read = mock.Mock(name="read")
        self.transporter.read.return_value = {}
        self.transporter.write = mock.Mock(name="write")
        self.transporter.write.return_value = {}

        self.client = RecommendClient(self.transporter, self.config)
示例#4
0
    def test_dns_timeout(self):
        config = SearchConfig(F.get_app_id(), F.get_api_key())

        config.hosts = HostsCollection([
            Host('algolia.biz', 10),
            Host('{}-1.algolianet.com'.format(F.get_app_id())),
            Host('{}-2.algolianet.com'.format(F.get_app_id())),
            Host('{}-3.algolianet.com'.format(F.get_app_id()))
        ])

        client = SearchClient.create_with_config(config)

        client.list_indices()
        # We test that the first Host `algolia.biz` is down.
        self.assertFalse(config.hosts.read()[0].up)
        self.assertTrue(config.hosts.read()[1].up)
        self.assertTrue(config.hosts.read()[2].up)
        self.assertTrue(config.hosts.read()[3].up)
    def setUp(self):
        self.config = SearchConfig('foo', 'bar')
        self.transporter = Transporter(Requester(), self.config)
        self.transporter.read = mock.Mock(name="read")
        self.transporter.read.return_value = {}
        self.transporter.write = mock.Mock(name="write")
        self.transporter.write.return_value = {}

        self.client = SearchClient(self.transporter, self.config)
    def test_dns_timeout(self):

        config = SearchConfig(F.get_app_id(), F.get_api_key())

        config.hosts = HostsCollection([
            Host('algolia.biz', 10),
            Host('{}-1.algolianet.com'.format(F.get_app_id())),
            Host('{}-2.algolianet.com'.format(F.get_app_id())),
            Host('{}-3.algolianet.com'.format(F.get_app_id()))
        ])

        client = SearchClient.create_with_config(config)

        client.list_indices()
        # We test that the first Host `algolia.biz` is down.
        self.assertFalse(config.hosts.read()[0].up)
        self.assertTrue(config.hosts.read()[1].up)
        self.assertTrue(config.hosts.read()[2].up)
        self.assertTrue(config.hosts.read()[3].up)
示例#7
0
    def test_secured_api_keys(self):
        hosts = F.hosts(self.client.app_id)

        config1 = SearchConfig(F.get_app_id(), F.get_api_key())
        config1.hosts = hosts
        client1 = F.decide(SearchClient.create_with_config(config1))

        index1 = F.index(client1, self._testMethodName)
        index2 = F.index(client1, '{}_dev'.format(self._testMethodName))

        index1.save_object({'objectID': 'one'}).wait()
        index2.save_object({'objectID': 'one'}).wait()

        api_key = self.client.generate_secured_api_key(
            os.environ['ALGOLIA_SEARCH_KEY_1'],
            {
                "validUntil": int(round(time.time())) + (60 * 10),  # + 10 min
                "restrictIndices": index1.name
            })

        config2 = SearchConfig(F.get_app_id(), api_key)
        config2.hosts = hosts
        client2 = F.decide(SearchClient.create_with_config(config2))

        index1_search = client2.init_index(index1.name)
        index2_search = client2.init_index(index2.name)

        index1_search.search('')
        with self.assertRaises(RequestException) as _:
            index2_search.search('')
    def setUp(self):
        self.requester = Requester()
        self.requester.send = mock.Mock(name="send")
        self.requester.send.return_value = Response(200, {'foo': 'bar'})

        self.data = {'data': 'foo'}

        self.config = SearchConfig('foo', 'bar')

        self.request_options = RequestOptions.create(
            self.config, {
                'User-Agent': 'foo',
                'createIfNotExists': True,
                'readTimeout': 109,
                'bodyParam': 'bar'
            })

        self.transporter = Transporter(self.requester, self.config)
    def setUp(self):
        self.config = SearchConfig("foo", "bar")
        self.config.headers["Foo-Bar"] = "foo-bar"

        self.request_options = RequestOptions.create(
            self.config,
            {
                # Headers
                "User-Agent": "foo",
                # Upper case header, should equal to `X-Forwarded-For`
                "X-FORWARDED-FOR": "1.1.1.1",
                # Query Params
                "createIfNotExists": True,
                # Timeouts Params
                "readTimeout": 10,
                # Data Params
                "bodyParam": "bar",
            },
        )
    def setUp(self):
        self.requester = Requester()
        self.requester.send = mock.Mock(name="send")
        self.requester.send.return_value = Response(200, {"foo": "bar"})

        self.data = {"data": "foo"}

        self.config = SearchConfig("foo", "bar")

        self.request_options = RequestOptions.create(
            self.config,
            {
                "User-Agent": "foo",
                "createIfNotExists": True,
                "readTimeout": 109,
                "bodyParam": "bar",
            },
        )

        self.transporter = Transporter(self.requester, self.config)
    def setUp(self):
        self.config = SearchConfig('foo', 'bar')
        self.config.headers['Foo-Bar'] = 'foo-bar'

        self.request_options = RequestOptions.create(
            self.config,
            {

                # Headers
                'User-Agent': 'foo',

                # Query Params
                'createIfNotExists': True,

                # Timeouts Params
                'readTimeout': 10,

                # Data Params
                'bodyParam': 'bar'
            })
示例#12
0
    def setUp(self):
        self.config = SearchConfig('foo', 'bar')
        self.config.headers['Foo-Bar'] = 'foo-bar'

        self.request_options = RequestOptions.create(self.config, {

            # Headers
            'User-Agent': 'foo',

            # Upper case header, should equal to `X-Forwarded-For`
            'X-FORWARDED-FOR': '1.1.1.1',

            # Query Params
            'createIfNotExists': True,

            # Timeouts Params
            'readTimeout': 10,

            # Data Params
            'bodyParam': 'bar'
        })
    def test_with_proxy(self):
        config = SearchConfig("foo", "bar")
        requester = Requester()
        requester.send = mock.Mock(name="send")
        requester.send.return_value = Response(200, {"foo": "bar"})
        transporter = Transporter(requester, config)

        headers = RequestOptions.create(config).headers
        data = {}
        transporter.write("post", "endpoint/foo", data, None)

        request = Request(
            "POST",
            headers,
            {},
            2,  # Default connect timeout
            30,  # Default timeout
            proxies={"https": "https://127.0.0.1:8080"},
        )
        request.url = "https://foo.algolia.net/endpoint/foo?"
        requester.send.assert_called_once_with(request)
 def setUp(self):
     self.config = SearchConfig("foo", "bar")
    def create(app_id=None, api_key=None):
        # type: (Optional[str], Optional[str]) -> SearchClient

        config = SearchConfig(app_id, api_key)

        return SearchClient.create_with_config(config)
示例#16
0
    def test_create_with_config(self):
        config = SearchConfig("foo", "bar")

        self.assertIsInstance(AnalyticsClient.create_with_config(config),
                              AnalyticsClient)
示例#17
0
    def test_create_with_config(self):
        config = SearchConfig("foo", "bar")

        self.assertIsInstance(RecommendClient.create_with_config(config),
                              RecommendClient)
    def test_create_with_config(self):
        config = SearchConfig('foo', 'bar')

        self.assertIsInstance(SearchClient.create_with_config(config),
                              SearchClient)
示例#19
0
 def setUp(self):
     self.config = SearchConfig('foo', 'bar')