def test_auto_loading_generator(self):
        session = requests.Session()
        session.auth = Auth(self.base_url, self.client_id, self.secret,
                            self.username, self.password)
        session.headers.update({'Content-Type': 'application/json'})
        pool = BasicResourcePool(
            urljoin(self.base_url, '/api/rest/v1/', 'products/'), session)
        c = pool.fetch_list()

        self.assertEqual(len(c._items), 10)
        i = 0
        generator = c
        previousLink = generator.get_self_link()
        for item in generator:
            i += 1
            self.assertNotEqual(generator.get_self_link(),
                                generator.get_next_link())
            if i + 5 % 10 == 0:
                self.assertNotEqual(generator.get_self_link(), previousLink)
                previousLink = generator.get_self_link()
            if i == 25:
                break
        # check that it iterated over 25 elements, but did not store them:
        self.assertEqual(len(c._items), 10)
        self.assertEqual(i, 25)
    def test_auto_loading(self):
        session = requests.Session()
        session.auth = Auth(self.base_url, self.client_id, self.secret,
                            self.username, self.password)
        session.headers.update({'Content-Type': 'application/json'})
        pool = BasicResourcePool(
            urljoin(self.base_url, '/api/rest/v1/', 'products/'), session)

        c = pool.fetch_list()
        firstElement = c.get_page_items()[0]
        self.assertEqual(len(c.get_page_items()), 10)
        for i in range(12):
            next(c)
        eleventhElement = c.get_page_items()[0]
        self.assertNotEqual(eleventhElement["identifier"],
                            firstElement["identifier"])
        self.assertEqual(len(c.get_page_items()), 10)
        for i in range(12):
            next(c)
        twentyonethElement = c.get_page_items()[0]
        self.assertNotEqual(twentyonethElement["identifier"],
                            firstElement["identifier"])
        self.assertNotEqual(twentyonethElement["identifier"],
                            eleventhElement["identifier"])
        self.assertEqual(len(c.get_page_items()), 10)
 def test_invalid_refresh(self):
     auth = Auth(self.base_url, self.client_id, self.secret, self.username,
                 self.password)
     auth._request_a_token()
     with self.assertRaises(requests.exceptions.HTTPError):
         auth._refresh_token = "coucou"
         auth._refresh_the_token()
 def test_query_products_with_auth(self):
     auth = Auth(self.base_url, self.client_id, self.secret, self.username,
                 self.password)
     r = requests.get(urljoin(self.base_url, "/api/rest/v1/products"),
                      auth=auth)
     logger.debug(r)
     logger.debug(r.status_code)
     json_data = json.loads(r.text)
     logger.debug(json.dumps(json_data, indent=4, sort_keys=True))
 def test_create_delete_from_json(self):
     session = requests.Session()
     session.auth = Auth(self.base_url, self.client_id, self.secret,
                         self.username, self.password)
     session.headers.update({'Content-Type': 'application/json'})
     pool = BasicResourcePool(
         urljoin(self.base_url, '/api/rest/v1/', 'products/'), session)
     pool.create_item(json.loads(self.valid_product))
     pool.delete_item('myawesometshirt')
 def test_get_invalide_item(self):
     session = requests.Session()
     session.auth = Auth(self.base_url, self.client_id, self.secret,
                         self.username, self.password)
     session.headers.update({'Content-Type': 'application/json'})
     pool = BasicResourcePool(
         urljoin(self.base_url, '/api/rest/v1/', 'products/'), session)
     with self.assertRaises(requests.HTTPError):
         item = pool.fetch_item('1111111137asdfsdfgsdf')
 def test_should_refresh_request(self):
     auth = Auth(self.base_url, self.client_id, self.secret, self.username,
                 self.password)
     auth._request_a_token()
     logger.debug(int(time()))
     logger.debug(auth._expiry_date)
     self.assertFalse(auth._should_refresh_token())
     auth._expiry_date = time() - 100
     self.assertTrue(auth._should_refresh_token())
 def test_fetch_item(self):
     session = requests.Session()
     session.auth = Auth(self.base_url, self.client_id, self.secret,
                         self.username, self.password)
     session.headers.update({'Content-Type': 'application/json'})
     pool = BasicResourcePool(
         urljoin(self.base_url, '/api/rest/v1/', 'products/'), session)
     item = pool.fetch_item('1111111137')
     logger.debug(item)
     self.assertEqual(item['identifier'], '1111111137')
     self.assertEqual(len(item['categories']), 3)
 def test_loading_fetch_next_page(self):
     session = requests.Session()
     session.auth = Auth(self.base_url, self.client_id, self.secret,
                         self.username, self.password)
     session.headers.update({'Content-Type': 'application/json'})
     pool = ResourcePool(
         urljoin(self.base_url, '/api/rest/v1/', 'products/'), session)
     c = pool.fetch_list()
     self.assertEqual(len(c._items), 10)
     c.fetch_next_page()
     self.assertEqual(len(c._items), 20)
     c.fetch_next_page()
     self.assertEqual(len(c._items), 30)
    def test_auto_loading_generator_ending(self):
        session = requests.Session()
        session.auth = Auth(self.base_url, self.client_id, self.secret,
                            self.username, self.password)
        session.headers.update({'Content-Type': 'application/json'})
        pool = BasicResourcePool(
            urljoin(self.base_url, '/api/rest/v1/', 'families/'), session)
        c = pool.fetch_list()

        self.assertEqual(len(c._items), 10)
        i = 0
        # for item in c.get_generator():
        for item in c:
            i += 1
        # checking that it did not raise any exception when trying to iterate
        # after the last element
        self.assertEqual(len(c._items), 7)
        self.assertEqual(i, 17)
 def test_create_delete_from_real_element(self):
     session = requests.Session()
     session.auth = Auth(self.base_url, self.client_id, self.secret,
                         self.username, self.password)
     session.headers.update({'Content-Type': 'application/json'})
     if False:
         session.auth._request_a_token()
         pool = BasicResourcePool(
             urljoin('http://localhost:8088', '/api/rest/v1/', 'products/'),
             session)
     else:
         pool = BasicResourcePool(
             urljoin(self.base_url, '/api/rest/v1/', 'products/'), session)
     initialItem = pool.fetch_item('Biker-jacket-polyester-xl')
     item = copy.deepcopy(initialItem)
     item['identifier'] = 'myawesometshirt'
     item['values']['ean'][0]['data'] = '1234567946367'
     item['values']['size'][0]['data'] = 'XS'
     pool.create_item(item)
     pool.delete_item('myawesometshirt')
 def test_invalid_request(self):
     auth = Auth(self.base_url, self.client_id, "fake secret",
                 self.username, self.password)
     with self.assertRaises(requests.exceptions.HTTPError):
         auth._request_a_token()
 def test_valid(self):
     auth = Auth(self.base_url, self.client_id, self.secret, self.username,
                 self.password)
     auth._request_a_token()
     auth._refresh_the_token()
Exemple #14
0
 def test_client_auth_object(self):
     auth=Auth(self.base_url, self.client_id, self.secret,
         self.username, self.password)
     akeneo = Client(self.base_url, session=None,
         auth=auth)
     item = akeneo.products.fetch_item('1111111137')