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')
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')
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())
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
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)
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
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())
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')
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
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())