Exemple #1
0
    def test_create_calls_customer_models_get(self, mocked_customer_model,
                                              customer_model):
        with mocked_customer_model as mocked_customer:
            mocked_customer.return_value = customer_model
            Wishlist.create(customer_id='a')

        mocked_customer.assert_called_with(customer_id='a')
Exemple #2
0
 def test_create_raises_exception_when_customer_has_wishlist_id(
         self, mocked_customer_model, customer_model):
     with mocked_customer_model as mocked_customer:
         customer_model.wishlist_id = 'a'
         mocked_customer.return_value = customer_model
         with pytest.raises(WishlistAlreadyExistsForCustomer):
             Wishlist.create(customer_id='a')
Exemple #3
0
    async def delete(self):
        wishlist_id = _get_wishlist_id(self.request)
        sku = _get_sku(self.request)

        wishlist = Wishlist.get(id=wishlist_id)
        wishlist.remove_item(sku=sku)

        return JSONResponse(status=200, data=wishlist.to_dict())
Exemple #4
0
    async def test_remove_item_calls_model(self):
        wishlist = Wishlist('a')
        with mock.patch.object(wishlist.model, 'remove_item') as mocked_model:
            with mock.patch.object(wishlist, 'save') as mocked_save:
                await wishlist.remove_item(sku='b')

        mocked_model.assert_called_with(sku='b')
        assert mocked_save.called
Exemple #5
0
    def test_create_returns_instance_with_default_attributes(
            self, mocked_customer_model, customer_model):
        with mocked_customer_model as mocked_customer:
            mocked_customer.return_value = customer_model
            wishlist = Wishlist.create(customer_id='a')

        assert isinstance(wishlist, Wishlist)
        assert isinstance(wishlist.model, WishlistModel)
        assert isinstance(wishlist._cache, Cache)
Exemple #6
0
    async def test_save_calls_cache_and_model(self):
        wishlist = Wishlist(id='a')
        with mock.patch.object(Cache, 'set') as mocked_cache:
            with mock.patch.object(wishlist, 'model') as mocked_model:
                await wishlist.save()

        mocked_cache.assert_called_with(mocked_model.id,
                                        mocked_model.to_dict(),
                                        settings.WISHLIST_CACHE_MAX_AGE)
        assert mocked_model.save.called
Exemple #7
0
    async def post(self):
        data = await self.request.json()
        schema = WishlistSchema(strict=True)
        try:
            schema = schema.load(data)
        except ValidationError as e:
            logger.debug(
                f'Error validating wishlist create. Error {e.messages}')
            return JSONResponse(data={'error_message': e.messages}, status=400)

        wishlist = Wishlist.create(customer_id=schema.customer_id)

        return JSONResponse(status=201, data=wishlist.to_dict())
Exemple #8
0
    async def test_get_calls_catalog_and_model(self, mocked_catalog_backend,
                                               item_model):
        with mocked_catalog_backend as mocked_catalog:
            with mock.patch('genie.wishlist.models.wishlist.WishlistModel.get'
                            ) as mocked_model:
                wishlist = Wishlist('a')
                with mock.patch.object(wishlist, 'save'):
                    mocked_model.return_value = WishlistModel(
                        id='a', items=[item_model])
                    await wishlist.get()

        mocked_catalog.assert_called_with(sku=item_model.sku)
        mocked_model.assert_called_with(id='a')
Exemple #9
0
    async def test_add_item_calls_catalog_and_model(
        self,
        mocked_catalog_backend,
    ):
        wishlist = Wishlist('a')
        with mocked_catalog_backend as mocked_catalog:
            with mock.patch.object(wishlist, 'model') as mocked_model:
                with mock.patch.object(wishlist, 'save') as mocked_save:
                    await wishlist.add_item(sku='abc')

        mocked_catalog.assert_called_with(sku='abc'),
        assert mocked_model.add_item.called
        assert mocked_save.called
Exemple #10
0
 async def get(self):
     wishlist_id = _get_wishlist_id(self.request)
     wishlist = Wishlist(wishlist_id=wishlist_id).get()
     return JSONResponse(status=200, data=wishlist.to_dict())