def test_search_by_name_fur_shampoo_exists(self): # 2.5-1 service.add_item_to_store( json.dumps({ "price": 12.34, "name": "fur shampoo", "description": "This is a fur shampoo", "category": "HOME", "quantity": 12 }), self.store.pk, self.user.pk) self.assertTrue(list(service.search("fur shampoo")))
def test_member_adds_to_empty_cart_an_existing_product(self): # 2.6-1... service.add_item_to_store( json.dumps({ "price": 12.34, "name": "fur shampoo 2", "description": "This is a fur shampoo 2", "category": "HOME", "quantity": 12 }), self.store.pk, self.user.pk) self.login(self.default_user, self.default_password)
def test_adding_item_with_negative_quantity(self): # 4.1.1-5 self.assertTrue(self.user.groups.filter(name='store_owners').exists()) item_name = "fur shampoo 6" self.assertFalse(self.store.items.filter(name=item_name).exists()) with self.assertRaises(DataError): service.add_item_to_store( json.dumps({ "price": 12.34, "name": item_name, "description": "This is a %s" % item_name, "category": "HOME", "quantity": -12 }), self.store.pk, self.user.pk) self.assertFalse(self.store.items.filter(name=item_name).exists())
def test_not_store_owner_adds_item_to_store(self): # 4.1.1-2 user = next(self.generate_user_with_default_password) self.assertFalse(user.groups.filter(name='store_owners').exists()) item_name = "fur shampoo 4" self.assertFalse(self.store.items.filter(name=item_name).exists()) service.add_item_to_store( json.dumps({ "price": 12.34, "name": item_name, "description": "This is a %s" % item_name, "category": "HOME", "quantity": 12 }), self.store.pk, user.pk) self.assertFalse(self.store.items.filter(name=item_name).exists())
def test_edit_an_existing_item_by_owner(self): # 4.1.3-1 item_name = "fur shampoo 6" self.assertFalse(self.store.items.filter(name=item_name).exists()) service.add_item_to_store( json.dumps({ "price": 12.34, "name": item_name, "description": "This is a %s" % item_name, "category": "HOME", "quantity": 12 }), self.store.pk, self.user.pk) added_items = self.store.items.filter(name=item_name) self.assertTrue(added_items.exists()) service.update_item(added_items[0].pk, {"quantity": 99}, self.user.pk) self.assertEqual(added_items[0].quantity, 99)
def test_delete_existing_item_by_none_owner(self): # 4.1.2-3 user = next(self.generate_user_with_default_password) self.assertFalse(user.groups.filter(name='store_owners').exists()) item_name = "fur shampoo 5" self.assertFalse(self.store.items.filter(name=item_name).exists()) service.add_item_to_store( json.dumps({ "price": 12.34, "name": item_name, "description": "This is a %s" % item_name, "category": "HOME", "quantity": 12 }), self.store.pk, self.user.pk) added_items = self.store.items.filter(name=item_name) self.assertTrue(added_items.exists()) service.delete_item(added_items[0].pk, user.pk) self.assertTrue(added_items.exists())
def test_buy_logic_all_ok(self): # 7-1 item_name = "fur shampoo 10" quantity = 12 amount_to_buy = 6 self.assertFalse(self.store.items.filter(name=item_name).exists()) service.add_item_to_store( json.dumps({ "price": 12.34, "name": item_name, "description": "This is a %s" % item_name, "category": "HOME", "quantity": quantity }), self.store.pk, self.user.pk) added_items = self.store.items.filter(name=item_name) self.assertTrue(added_items.exists()) shipping_details = { 'country': "Israel", 'city': "Nahariyya", 'zip': 2242676, 'address': "Blafour 113", 'name': "Roy Ash" } card_details = { 'card_number': "222", 'month': 6, 'year': 2020, 'holder': "Roy Ash", 'cvc': 234, 'id': 308007749 } valid, total, total_after_discount, messages_ = service.buy_logic( pk=added_items[0].pk, amount=amount_to_buy, amount_in_db=added_items[0], is_auth=self.user.is_authenticated, username=self.user.username, shipping_details=shipping_details, card_details=card_details, is_cart=False, user_id=self.user) self.assertTrue(valid) self.assertEqual( total, Decimal(12.34 * amount_to_buy).quantize(Decimal('1.00'))) self.assertEqual(added_items[0].quantity, quantity - amount_to_buy)
def test_delete_existing_item_by_member(self): # 5.1-4 new_user = next(self.generate_user_with_default_password) item_name = "bbb2" item_dict = { "price": 12.34, "name": item_name, "description": "This is a %s" % item_name, "category": "HOME", "quantity": 12 } service.add_item_to_store(json.dumps(item_dict), self.store.pk, self.user.pk) self.assertEqual(item_dict["name"], service.get_store_items(self.store.pk)[0]["name"]) self.assertFalse( service.delete_item( service.get_store_items(self.store.pk)[0]["id"], new_user.pk)[0]) self.assertTrue(service.get_store_items(self.store.pk))
def test_store_owner_adds_already_existing_item_to_store(self): # 4.1.1 self.assertTrue(self.user.groups.filter(name='store_owners').exists()) item_name: str = "fur shampoo 5" self.assertFalse(self.store.items.filter(name=item_name).exists()) service.add_item_to_store( json.dumps({ "price": 12.34, "name": item_name, "description": "This is a %s" % item_name, "category": "HOME", "quantity": 12 }), self.store.pk, self.user.pk) self.assertTrue(self.store.items.filter(name=item_name).exists()) service.add_item_to_store( json.dumps({ "price": 12.34, "name": item_name, "description": "This is a %s" % item_name, "category": "HOME", "quantity": 12 }), self.store.pk, self.user.pk)
def test_delete_existing_item_by_manager_without_permission(self): # 5.1-3 new_user = next(self.generate_user_with_default_password) self.assertFalse( service.add_manager(new_user.username, [self.Perms.ADD_ITEM.value], False, self.store.pk, self.default_user, False)[0]) item_name = "bbb2" item_dict = { "price": 12.34, "name": item_name, "description": "This is a %s" % item_name, "category": "HOME", "quantity": 12 } service.add_item_to_store(json.dumps(item_dict), self.store.pk, self.user.pk) self.assertEqual(item_dict["name"], service.get_store_items(self.store.pk)[0]["name"]) self.assertFalse( service.delete_item( service.get_store_items(self.store.pk)[0]["id"], new_user.pk)[0]) self.assertTrue(service.get_store_items(self.store.pk))