Esempio n. 1
0
    def test_get_product_get_image(self, requests_mock):
        response_mock = Mock()
        response_mock.status_code = 200
        response_mock.content = json.dumps({'id': 991, 'name': 'test prod'})
        requests_mock.get.return_value = response_mock
        cli = APIClient('test_api_key', 'test user agent')
        p = ProductResource(cli, '46')


        res = p.get(991)

        self.assertEqual(991, res.id)

        requests_mock.get.assert_called_with(
            url='https://api.tiendanube.com/v1/46/products/991',
            headers={'Authentication': 'bearer test_api_key', 'User-Agent': 'test user agent'},
            params=None
        )
        response_mock.content = json.dumps({'id': 1, 'name': 'test prod image'})
        res = res.images.get(1)
        self.assertEqual(bunchify({'id': 1, 'name': 'test prod image'}), res)

        requests_mock.get.assert_called_with(
            url='https://api.tiendanube.com/v1/46/products/991/images/1',
            headers={'Authentication': 'bearer test_api_key', 'User-Agent': 'test user agent'},
            params=None
        )
Esempio n. 2
0
 def get(self, id):
     return bunchify(
         json.loads(
             self._make_request(self.resource_name,
                                resource_id=str(self.resource_id),
                                subresource=self.subresource,
                                subresource_id=str(id)).content))
Esempio n. 3
0
 def delete(self, resource_delete_dict):
     res_id = str(resource_delete_dict['id'])
     return bunchify(
         json.loads(
             self._make_request(self.resource_name,
                                resource_id=res_id,
                                verb='delete').text))
Esempio n. 4
0
 def update(self, resource_update_dict):
     res_id = str(resource_update_dict['id'])
     return bunchify(
         json.loads(
             self._make_request(self.resource_name,
                                resource_id=res_id,
                                data=resource_update_dict,
                                verb='put').text))
Esempio n. 5
0
 def add(self, subresource_dict):
     return bunchify(
         json.loads(
             self._make_request(self.resource_name,
                                resource_id=str(self.resource_id),
                                subresource=self.subresource,
                                data=subresource_dict,
                                verb='post').text))
Esempio n. 6
0
 def list(self, filters={}, fields={}):
     """ Get the list of customers for a store.
     """
     extra = {k: _get_value(v) for k, v in filters.items()}
     if fields:
         extra['fields'] = fields
     return bunchify(
         json.loads(
             self._make_request(self.resource_name,
                                extra=extra).content.decode('utf-8')))
Esempio n. 7
0
 def update(self, subresource_update_dict):
     return bunchify(
         json.loads(
             self._make_request(
                 self.resource_name,
                 resource_id=str(self.resource_id),
                 subresource=self.subresource,
                 subresource_id=subresource_update_dict['id'],
                 data=subresource_update_dict,
                 verb='put').text))
Esempio n. 8
0
    def test_get_store_info(self, requests_mock):
        response_mock = Mock()
        response_mock.status_code = 200
        response_mock.content = json.dumps({'id': 46, 'name': 'test store'})
        requests_mock.get.return_value = response_mock
        cli = APIClient('test_api_key', 'test user agent')
        s = StoreResource(cli, '46')

        res = s.get()

        self.assertEqual(bunchify({'id': 46, 'name': 'test store'}), res)

        requests_mock.get.assert_called_with(
            url='https://api.tiendanube.com/v1/46/store',
            headers={'Authentication': 'bearer test_api_key', 'User-Agent': 'test user agent'},
            params=None
        )
Esempio n. 9
0
    def test_add_order(self, requests_mock):
        response_mock = Mock()
        response_mock.status_code = 201
        response_mock.text = json.dumps(
            {'id': 46, 'name': 'test order'},
        )
        requests_mock.post.return_value = response_mock
        cli = APIClient('test_api_key', 'test user agent')
        o = OrderResource(cli, '46')

        res = o.add({'id': 46, 'name': 'test order'})

        self.assertEqual(bunchify(
            {'id': 46, 'name': 'test order'}
        ), res)

        requests_mock.post.assert_called_with(
            url='https://api.tiendanube.com/v1/46/orders',
            headers={'Authentication': 'bearer test_api_key', 'User-Agent': 'test user agent', 'Content-Type': 'application/json; charset=utf-8'},
            data=json.dumps({'id': 46, 'name': 'test order'})
        )
Esempio n. 10
0
    def test_list_products_filter(self, requests_mock):
        response_mock = Mock()
        response_mock.status_code = 200
        response_mock.content = json.dumps([
            {'id': 47},
        ])
        requests_mock.get.return_value = response_mock
        cli = APIClient('test_api_key', 'test user agent')
        p = ProductResource(cli, '46')

        res = p.list(filters={'since_id': 47}, fields='id')

        self.assertEqual(bunchify([
            {'id': 47},
        ]), res)

        requests_mock.get.assert_called_with(
            url='https://api.tiendanube.com/v1/46/products',
            headers={'Authentication': 'bearer test_api_key', 'User-Agent': 'test user agent'},
            params={'fields': 'id', 'since_id': 47}
        )
Esempio n. 11
0
    def test_list_categories_filter_date(self, requests_mock):
        response_mock = Mock()
        response_mock.status_code = 200
        response_mock.content = json.dumps([
            {'id': 47},
        ])
        requests_mock.get.return_value = response_mock
        cli = APIClient('test_api_key', 'test user agent')
        c = CategoryResource(cli, '46')

        created_at_min = datetime.datetime(2013, 1, 1, 0, 0, 0).replace(tzinfo=utc)
        res = c.list(filters={'since_id': 47, 'created_at_min': created_at_min}, fields='id')

        self.assertEqual(bunchify([
            {'id': 47},
        ]), res)

        requests_mock.get.assert_called_with(
            url='https://api.tiendanube.com/v1/46/categories',
            headers={'Authentication': 'bearer test_api_key', 'User-Agent': 'test user agent'},
            params={'since_id': 47, 'created_at_min': '2013-01-01T00:00:00+00:00', 'fields': 'id'}
        )
Esempio n. 12
0
    def test_list_categories_base(self, requests_mock):
        response_mock = Mock()
        response_mock.status_code = 200
        response_mock.content = json.dumps([
            {'id': 46, 'name': 'test cat'},
            {'id': 47, 'name': 'test cat 2'},
        ])
        requests_mock.get.return_value = response_mock
        cli = APIClient('test_api_key', 'test user agent')
        c = CategoryResource(cli, '46')

        res = c.list()

        self.assertEqual(bunchify([
            {'id': 46, 'name': 'test cat'},
            {'id': 47, 'name': 'test cat 2'},
        ]), res)

        requests_mock.get.assert_called_with(
            url='https://api.tiendanube.com/v1/46/categories',
            headers={'Authentication': 'bearer test_api_key', 'User-Agent': 'test user agent'},
            params=None
        )
Esempio n. 13
0
 def get(self):
     """
     Get a single store.
     """
     return bunchify(json.loads(self._make_request('store').content))
Esempio n. 14
0
 def add(self, resource_dict):
     return bunchify(
         json.loads(
             self._make_request(self.resource_name,
                                data=resource_dict,
                                verb='post').text))
Esempio n. 15
0
 def get(self, id):
     return bunchify(
         json.loads(
             self._make_request(
                 self.resource_name,
                 resource_id=str(id)).content.decode('utf-8')))