コード例 #1
0
 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")))
コード例 #2
0
 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)
コード例 #3
0
 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())
コード例 #4
0
 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())
コード例 #5
0
 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)
コード例 #6
0
 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())
コード例 #7
0
 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)
コード例 #8
0
 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))
コード例 #9
0
 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)
コード例 #10
0
 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))