Esempio n. 1
0
    def test_supply_system(self):
        UsersLogic.register(RegisteredUser('ShaharBenS', "SsS0897SsS"))
        UsersLogic.update_details('ShaharBenS', 'AFG', 20, 'Male')

        UsersLogic.register(RegisteredUser('ShaharBenS2', "SsS0897SsS"))
        ShopLogic.create_shop(Shop('eBay', "Active"), 'ShaharBenS2')
        ShopLogic.create_shop(Shop('Amazon', "Active"), 'ShaharBenS2')
        item1 = Item(1, 'eBay', 'apple', 'vegas', 'good', 10, 500, 'regular',
                     None, 0, 0, 0)
        item2 = Item(2, 'Amazon', 'apple', 'fruits', 'good', 10, 500,
                     'regular', None, 0, 0, 0)
        ItemsLogic.add_item_to_shop(item1, 'ShaharBenS2')
        ItemsLogic.add_item_to_shop(item2, 'ShaharBenS2')

        access_token = hashlib.md5('ShaharBenS'.encode()).hexdigest()
        Consumer.loggedInUsers[access_token] = 'ShaharBenS'
        Consumer.loggedInUsersShoppingCart[access_token] = []

        UserShoppingCartLogic.add_item_shopping_cart(
            access_token, ShoppingCartItem('ShaharBenS', 2, 3, None))
        UserShoppingCartLogic.add_item_shopping_cart(
            access_token, ShoppingCartItem('ShaharBenS', 1, 7, None))

        ExternalSystems.supply = ProxySupplySystem.ProxySupplySystem()
        status = UserShoppingCartLogic.pay_all(access_token)
        if isinstance(status, list) is not True:
            status = False
        self.assertFalse(status)

        ExternalSystems.supply = SupplySystem.SupplySystem()
        status = UserShoppingCartLogic.pay_all(access_token)
        if isinstance(status, list):
            status = True
        self.assertTrue(status)
Esempio n. 2
0
    def test_policies_torture(self):
        UsersLogic.register(RegisteredUser('ShaharBenS', "SsS0897SsS"))
        UsersLogic.update_details('ShaharBenS', 'AFG', 20, 'Male')

        UsersLogic.register(RegisteredUser('ShaharBenS2', "SsS0897SsS"))
        ShopLogic.create_shop(Shop('eBay', "Active"), 'ShaharBenS2')
        ShopLogic.create_shop(Shop('Amazon', "Active"), 'ShaharBenS2')
        item1 = Item(1, 'eBay', 'apple', 'vegas', 'good', 10, 500, 'regular',
                     None, 0, 0, 0)
        item2 = Item(2, 'Amazon', 'apple', 'fruits', 'good', 10, 500,
                     'regular', None, 0, 0, 0)
        ItemsLogic.add_item_to_shop(item1, 'ShaharBenS2')
        ItemsLogic.add_item_to_shop(item2, 'ShaharBenS2')

        ShoppingPolicyLogic.add_shopping_policy_on_shop(
            'ShaharBenS2', 'eBay', "age = ''20''", "AL", 3)
        ShoppingPolicyLogic.add_shopping_policy_on_shop(
            'ShaharBenS2', 'Amazon', "age > ''15''", "UT", 5)
        ShoppingPolicyLogic.add_shopping_policy_on_identity(
            'Ultimate_ShaharShahar', "sex = ''Male''", "AL", 9)
        ShoppingPolicyLogic.add_shopping_policy_on_category(
            'Ultimate_ShaharShahar', "vegas", "state = ''AFG''", "UT", 5)
        ShoppingPolicyLogic.add_shopping_policy_on_items(
            'Ultimate_ShaharShahar', "apple", "state != ''AFG''", "E", 2)

        access_token = hashlib.md5('ShaharBenS'.encode()).hexdigest()
        Consumer.loggedInUsers[access_token] = 'ShaharBenS'
        Consumer.loggedInUsersShoppingCart[access_token] = []

        UserShoppingCartLogic.add_item_shopping_cart(
            access_token, ShoppingCartItem('ShaharBenS', 2, 3, None))
        UserShoppingCartLogic.add_item_shopping_cart(
            access_token, ShoppingCartItem('ShaharBenS', 1, 7, None))
        status = UserShoppingCartLogic.pay_all(access_token)
        self.assertFalse(StoB(status))
Esempio n. 3
0
 def test_bad_no_permssion_send_message_and_get_messages_of_shops(self):
     register(RegisteredUser('TomerTomer1', '1234567878'))
     shop1 = Shop('My Shop1', 'Active')
     ShopLogic.create_shop(shop1, 'TomerTomer1')
     register(RegisteredUser('TomerTomer2', '1234567878'))
     shop2 = Shop('My Shop2', 'Active')
     ShopLogic.create_shop(shop2, 'TomerTomer2')
     UsersLogic.add_manager('TomerTomer1', StoreManager('TomerTomer2', 'My Shop1', 1, 1, 1, 0, 1, 1, 1, 1))
     UsersLogic.add_manager('TomerTomer2', StoreManager('TomerTomer1', 'My Shop2', 1, 1, 1, 0, 1, 1, 1, 1))
     self.assertEqual(MessagingLogic.send_message_from_shop('TomerTomer2',
                                                            Message(1, 'My Shop1', 'My Shop2', 'Hello 1'))
                      , "FAILED: You don't have the permissions")
     self.assertEqual(MessagingLogic.send_message_from_shop('TomerTomer1',
                                                            Message(2, 'My Shop2', 'My Shop1', 'Hello 2'))
                      , "FAILED: You don't have the permissions")
Esempio n. 4
0
 def test_bad_no_get_all_premss_send_message_and_get_messages_of_shops(self):
     register(RegisteredUser('TomerTomer1', '1234567878'))
     shop1 = Shop('My Shop1', 'Active')
     ShopLogic.create_shop(shop1, 'TomerTomer1')
     register(RegisteredUser('TomerTomer2', '1234567878'))
     shop2 = Shop('My Shop2', 'Active')
     ShopLogic.create_shop(shop2, 'TomerTomer2')
     UsersLogic.add_manager('TomerTomer1', StoreManager('TomerTomer2', 'My Shop1', 1, 1, 1, 1, 0, 1, 1, 1))
     UsersLogic.add_manager('TomerTomer2', StoreManager('TomerTomer1', 'My Shop2', 1, 1, 1, 1, 0, 1, 1, 1))
     MessagingLogic.send_message_from_shop('TomerTomer2', Message(1, 'My Shop1', 'My Shop2', 'Hello 1'))
     MessagingLogic.send_message_from_shop('TomerTomer1', Message(2, 'My Shop2', 'My Shop1', 'Hello 2'))
     messages1 = MessagingLogic.get_all_shop_messages('TomerTomer2', 'My Shop1')
     messages2 = MessagingLogic.get_all_shop_messages('TomerTomer1', 'My Shop2')
     self.assertFalse(messages1)
     self.assertFalse(messages2)
Esempio n. 5
0
    def test_permissions(self):
        UsersLogic.register(RegisteredUser('ShaharShahar', '1212345678'))
        UsersLogic.register(RegisteredUser('TomerTomerLev', '65412321'))
        shop = Shop('myShop', 'Active')
        ShopLogic.create_shop(shop, 'ShaharShahar')
        UsersLogic.add_manager(
            'ShaharShahar',
            StoreManager('TomerTomerLev', 'myShop', 1, 1, 1, 1, 1, 1, 1, 1))
        ItemsLogic.add_item_to_shop(
            Item(None, 'myShop', 'doll', 'toys', 'toys:kids', 20, 300,
                 'regular', None, 0, 0, 0), 'TomerTomerLev')
        item = Items.get_item(1)
        self.assertEqual(item.shop_name, 'myShop')
        self.assertEqual(item.price, 20)
        self.assertEqual(item.quantity, 300)

        status = ItemsLogic.edit_shop_item('TomerTomerLev', 1, 'price', 40)
        self.assertTrue(status)
        status = ItemsLogic.edit_shop_item('TomerTomerLev', 1, 'name',
                                           'doll_new')
        self.assertTrue(status)
        status = ItemsLogic.edit_shop_item('TomerTomerLev', 1, 'quantity', 40)
        self.assertTrue(status)

        item = Items.get_item(1)
        self.assertEqual(item.name, 'doll_new')
        self.assertEqual(item.quantity, 40)
        self.assertEqual(item.keyWords, 'toys:kids')

        status = ItemsLogic.remove_item_from_shop(1, 'TomerTomerLev')
        self.assertTrue(status)
Esempio n. 6
0
def create_shop(request):
    if request.method == 'POST':
        # return HttpResponse('item added')
        shop_name = request.POST.get('name')
        shop_status = request.POST.get('status')

        event = "ADD SHOP"
        suspect_sql_injection = False
        suspect_sql_injection = LoggerLogic.identify_sql_injection(
            shop_name, event) or suspect_sql_injection
        suspect_sql_injection = LoggerLogic.identify_sql_injection(
            shop_status, event) or suspect_sql_injection

        if suspect_sql_injection or shop_name == '':
            return HttpResponse(LoggerLogic.MESSAGE_SQL_INJECTION)

        login = request.COOKIES.get('login_hash')
        if login is None:
            login = request.POST.get('login_hash')
        if login is None:
            return HttpResponse('FAILED: You are not logged in')
        username = Consumer.loggedInUsers.get(login)
        if username is None:
            return HttpResponse('FAILED: You are not logged in')

        shop = Shop(shop_name, shop_status)
        return HttpResponse(ShopLogic.create_shop(shop, username))
Esempio n. 7
0
 def test_get_visible_discount_bad(self):
     register(RegisteredUser('YoniYoni', '1234567878'))
     register(RegisteredUser('StoreManager1', '1234567878'))
     shop = Shop('My Shop', 'Active')
     shop1 = Shop('My Shop1', 'Active')
     ShopLogic.create_shop(shop, 'YoniYoni')
     UsersLogic.add_manager(
         'YoniYoni',
         StoreManager('StoreManager1', 'My Shop', 1, 1, 1, 1, 1, 1, 1, 1))
     item1 = Item(1, 'My Shop', 'milk', 'diary', 'good', 12, 100, 'regular',
                  None, 0, 0, 0)
     ItemsLogic.add_item_to_shop(item1, 'StoreManager1')
     disc = VisibleDiscount(item1.id, shop.name, 50, '2018-12-01',
                            '2019-12-01')
     self.assertTrue(add_visible_discount(disc, 'YoniYoni'))
     self.assertFalse(get_visible_discount(item1.id, shop1.name))
Esempio n. 8
0
 def setUp(self):
     init_database('db.sqlite3')
     register(RegisteredUser('YoniYoni', '1234567878'))
     register(RegisteredUser('StoreManager1', '1234567878'))
     shop = Shop('My Shop', 'Active')
     ShopLogic.create_shop(shop, 'YoniYoni')
     UsersLogic.add_manager('YoniYoni', StoreManager('StoreManager1', 'My Shop', 1, 1, 1, 1, 1, 1, 1, 1))
Esempio n. 9
0
 def test_bad_create_shop(self):
     register(RegisteredUser('TomerTomer', '1234567878'))
     shop = Shop('My Shop', 'Active')
     ShopLogic.create_shop(shop, 'TomerTomer')
     shop_founded = Shops.search_shop('My Shop')
     self.assertTrue(shop_founded.name == 'My Shop')
     status = ShopLogic.create_shop(shop, 'TomerTomer')
     self.assertEqual(status, 'FAILED: Shop name is taken')
Esempio n. 10
0
 def test_bad_sys_man_close_shop_permanently(self):
     register(RegisteredUser('YoniYoni', '12121122'))
     register(RegisteredUser('ToniToni', '12121122'))
     remover = get_user('YoniYoni')
     owner = get_user('ToniToni')
     shop = Shop('My Shop', 'Active')
     ShopLogic.create_shop(shop, owner.username)
     status = close_shop_permanently(remover.username, 'My Shop')
     self.assertFalse(status)
Esempio n. 11
0
    def setUp(self):
        init_database('db.sqlite3')
        UsersLogic.register(RegisteredUser('ShaharBenS', "SsS0897SsS"))
        UsersLogic.update_details('ShaharBenS', 'AFG', 20, 'Male')

        UsersLogic.register(RegisteredUser('ShaharBenS2', "SsS0897SsS"))
        ShopLogic.create_shop(Shop('eBay', "Active"), 'ShaharBenS2')
        item1 = Item(1, 'eBay', 'banana', 'vegas', 'good', 10, 500, 'regular', None, 0, 0, 0)
        ItemsLogic.add_item_to_shop(item1, 'ShaharBenS2')
Esempio n. 12
0
 def test_close_shop_permanently(self):
     register(RegisteredUser('YoniYoni', '12121212'))
     register(RegisteredUser('ToniToniToniToni', '12112212'))
     remover = get_user('YoniYoni')
     owner = get_user('ToniToniToniToni')
     shop = Shop('My Shop', 'Active')
     ShopLogic.create_shop(shop, owner.username)
     add_system_manager(SystemManager(remover.username, remover.password))
     status = close_shop_permanently(remover.username, shop.name)
     self.assertTrue(status)
Esempio n. 13
0
 def test_add_invisible_discount(self):
     register(RegisteredUser('YoniYoni', '1234567878'))
     register(RegisteredUser('StoreManager1', '1234567878'))
     shop = Shop('My Shop', 'Active')
     ShopLogic.create_shop(shop, 'YoniYoni')
     UsersLogic.add_manager(
         'YoniYoni',
         StoreManager('StoreManager1', 'My Shop', 1, 1, 1, 1, 1, 1, 1, 1))
     item1 = Item(1, 'My Shop', 'milk', 'diary', 'good', 12, 100, 'regular',
                  None, 0, 0, 0)
     ItemsLogic.add_item_to_shop(item1, 'StoreManager1')
     invdisc = InvisibleDiscount('ABCDEFGHIJKLMNO', item1.id, shop.name, 50,
                                 '2018-12-01', '2019-12-01')
     self.assertTrue(add_invisible_discount(invdisc, 'YoniYoni'))
Esempio n. 14
0
 def test_review_on_shop(self):
     register(RegisteredUser('TomerTomer', '1234567878'))
     user = get_user('TomerTomer')
     shop = Shop('My Shop', 'Active')
     ShopLogic.create_shop(shop, 'TomerTomer')
     ItemsLogic.add_item_to_shop(Item(1, 'My Shop', 'milk', 'diary', 'good', 12, 100, 'regular', None, 0, 0, 0),
                                 'TomerTomer')
     purchase_id = add_purchase_and_return_id(datetime.now(), 'TomerTomer', 0)
     status = PurchasedItems.add_purchased_item(purchase_id, 1, 10, 10)
     shop_review = ShopReview('TomerTomer', 'Best', 10, 'My Shop')
     status = ShopLogic.add_review_on_shop(shop_review)
     reviews = get_all_reviews_on_shop('My Shop')
     answer = len(reviews) == 1
     self.assertTrue(answer)
Esempio n. 15
0
 def test_add_store_manager(self):
     UsersLogic.register(RegisteredUser('ShaharShahar', '12345126'))
     UsersLogic.register(RegisteredUser('TomerTomerLev', '65412321'))
     shop = Shop('myShop', 'Active')
     ShopLogic.create_shop(shop, 'ShaharShahar')
     UsersLogic.add_manager(
         'ShaharShahar',
         StoreManager('TomerTomerLev', 'myShop', 1, 1, 1, 1, 1, 1, 1, 1))
     manager = StoreManagers.get_store_manager('TomerTomerLev', 'myShop')
     self.assertTrue(manager.permission_add_item > 0)
     self.assertTrue(manager.permission_remove_item > 0)
     self.assertTrue(manager.permission_edit_item > 0)
     self.assertEqual(manager.store_name, 'myShop')
     self.assertEqual(manager.username, 'TomerTomerLev')
Esempio n. 16
0
    def test_no_permission(self):
        UsersLogic.register(RegisteredUser('ShaharShahar', '12312456'))
        UsersLogic.register(RegisteredUser('TomerTomerLev', '65431221'))
        shop = Shop('myShop', 'Active')
        ShopLogic.create_shop(shop, 'ShaharShahar')
        UsersLogic.add_manager(
            'ShaharShahar',
            StoreManager('TomerTomerLev', 'myShop', 0, 0, 0, 0, 0, 0, 0, 0))
        status = ItemsLogic.add_item_to_shop(
            Item(None, 'myShop', 'doll', 'toys', 'toys;kids', 20, 300,
                 'regular', None, 0, 0, 0), 'TomerTomerLev')
        self.assertFalse(status)

        message = Message(None, 'myShop', 'ShaharShahar', 'Hi There')
        status = MessagingLogic.send_message_from_shop('TomerTomerLev',
                                                       message)
        self.assertFalse(returnStringToBoolean(status))
Esempio n. 17
0
 def setUp(self):
     init_database('db.sqlite3')
     register(RegisteredUser('TomerTomer', '1234567878'))
     shop = Shop('My Shop', 'Active')
     ShopLogic.create_shop(shop, 'TomerTomer')
     ItemsLogic.add_item_to_shop(
         Item(1, 'My Shop', 'milk', 'diary', 'good', 12, 100, 'regular',
              None, 0, 0, 0), 'TomerTomer')
     ItemsLogic.add_item_to_shop(
         Item(2, 'My Shop', 'steak', 'meat', 'bad', 12, 100, 'regular',
              None, 0, 0, 0), 'TomerTomer')
     ItemsLogic.add_item_to_shop(
         Item(3, 'My Shop', 'banana', 'fruit', 'best', 12, 100, 'regular',
              None, 0, 0, 0), 'TomerTomer')
     ItemsLogic.add_item_to_shop(
         Item(4, 'My Shop', 'water', 'drinks', 'one two', 12, 100,
              'regular', None, 0, 0, 0), 'TomerTomer')
Esempio n. 18
0
 def test_create_shop(self):
     register(RegisteredUser('TomerTomer', '1234567878'))
     shop = Shop('My Shop', 'Active')
     ShopLogic.create_shop(shop, 'TomerTomer')
     shop_founded = Shops.search_shop('My Shop')
     self.assertTrue(shop_founded.name == 'My Shop')
Esempio n. 19
0
def parse_shops(shops):
    shops_list = []
    for shop in shops:
        shops_list.append(Shop(shop[0], shop[1]))
    return shops_list
Esempio n. 20
0
    def test_discounts_torture(self):
        status = UsersLogic.register(RegisteredUser('YoniYoni', "SsS0897SsS"))
        self.assertEqual(status, "SUCCESS")
        status = UsersLogic.update_details('YoniYoni', 'AFG', 20, 'Male')
        self.assertEqual(status, "SUCCESS")

        status = UsersLogic.register(RegisteredUser('YoniYoni2', "SsS0897SsS"))
        self.assertEqual(status, "SUCCESS")
        status = UsersLogic.update_details('YoniYoni2', 'ZMB', 20, 'Male')
        self.assertEqual(status, "SUCCESS")

        status = UsersLogic.register(RegisteredUser('YoniYoni3', "SsS0897SsS"))
        self.assertEqual(status, "SUCCESS")
        status = UsersLogic.update_details('YoniYoni3', 'ISR', 100, 'Female')
        self.assertEqual(status, "SUCCESS")

        status = ShopLogic.create_shop(Shop('eBay', "Active"), 'YoniYoni')
        self.assertEqual(status, "SUCCESS")
        status = ShopLogic.create_shop(Shop('Amazon', "Active"), 'YoniYoni2')
        self.assertEqual(status, "SUCCESS")
        status = ShopLogic.create_shop(Shop('Carmel', "Active"), 'YoniYoni3')
        self.assertEqual(status, "SUCCESS")

        item1 = Item(1, 'eBay', 'carrot', 'vegas', 'good', 10, 500, 'regular',
                     None, 0, 0, 0)
        item2 = Item(2, 'Amazon', 'apple', 'fruits', 'good', 10, 500,
                     'regular', None, 0, 0, 0)
        item3 = Item(3, 'Carmel', 'Kipa', 'Yudaika', 'good', 10, 500,
                     'regular', None, 0, 0, 0)

        status = ItemsLogic.add_item_to_shop(item1, 'YoniYoni')
        self.assertTrue(status)
        status = ItemsLogic.add_item_to_shop(item2, 'YoniYoni2')
        self.assertTrue(status)
        status = ItemsLogic.add_item_to_shop(item3, 'YoniYoni3')
        self.assertTrue(status)

        disc1 = VisibleDiscount(item1.id, item1.shop_name, 10, '2018-17-06',
                                '2019-21-03')
        disc2 = VisibleDiscount(item2.id, item2.shop_name, 20, '2018-17-06',
                                '2019-22-03')
        disc3 = VisibleDiscount(item3.id, item3.shop_name, 30, '2018-17-06',
                                '2019-23-03')

        status = DiscountLogic.add_visible_discount(disc1, 'YoniYoni')
        self.assertTrue(status)
        status = DiscountLogic.add_visible_discount(disc2, 'YoniYoni2')
        self.assertTrue(status)
        status = DiscountLogic.add_visible_discount(disc3, 'YoniYoni3')
        self.assertTrue(status)

        disc1 = VisibleDiscountCategory(item1.category, item1.shop_name, 10,
                                        '2018-17-06', '2019-21-03')
        disc2 = VisibleDiscountCategory(item2.category, item2.shop_name, 20,
                                        '2018-17-06', '2019-22-03')
        disc3 = VisibleDiscountCategory(item3.category, item3.shop_name, 30,
                                        '2018-17-06', '2019-23-03')

        status = DiscountLogic.add_visible_discount_category(disc1, 'YoniYoni')
        self.assertTrue(status)
        status = DiscountLogic.add_visible_discount_category(
            disc2, 'YoniYoni2')
        self.assertTrue(status)
        status = DiscountLogic.add_visible_discount_category(
            disc3, 'YoniYoni3')
        self.assertTrue(status)

        access_token = hashlib.md5('YoniYoni'.encode()).hexdigest()
        Consumer.loggedInUsers[access_token] = 'YoniYoni'
        Consumer.loggedInUsersShoppingCart[access_token] = []

        status = UserShoppingCartLogic.add_item_shopping_cart(
            access_token, ShoppingCartItem('YoniYoni', 2, 10, None))
        self.assertTrue(status)
        status = UserShoppingCartLogic.add_item_shopping_cart(
            access_token, ShoppingCartItem('YoniYoni', 3, 10, None))
        self.assertTrue(status)

        status = UserShoppingCartLogic.get_cart_cost(access_token)
        self.assertEqual(status, 113)

        status = UserShoppingCartLogic.pay_all(access_token)
        self.assertTrue(StoB(status))

        access_token = hashlib.md5('YoniYoni2'.encode()).hexdigest()
        Consumer.loggedInUsers[access_token] = 'YoniYoni2'
        Consumer.loggedInUsersShoppingCart[access_token] = []

        status = UserShoppingCartLogic.add_item_shopping_cart(
            access_token, ShoppingCartItem('YoniYoni2', 1, 10, None))
        self.assertTrue(status)
        status = UserShoppingCartLogic.add_item_shopping_cart(
            access_token, ShoppingCartItem('YoniYoni2', 3, 10, None))
        self.assertTrue(status)

        status = UserShoppingCartLogic.get_cart_cost(access_token)
        self.assertEqual(status, 130)

        status = UserShoppingCartLogic.pay_all(access_token)
        self.assertTrue(StoB(status))

        access_token = hashlib.md5('YoniYoni3'.encode()).hexdigest()
        Consumer.loggedInUsers[access_token] = 'YoniYoni3'
        Consumer.loggedInUsersShoppingCart[access_token] = []

        status = UserShoppingCartLogic.add_item_shopping_cart(
            access_token, ShoppingCartItem('YoniYoni3', 2, 10, None))
        self.assertTrue(status)
        status = UserShoppingCartLogic.add_item_shopping_cart(
            access_token, ShoppingCartItem('YoniYoni3', 1, 10, None))
        self.assertTrue(status)

        status = UserShoppingCartLogic.get_cart_cost(access_token)
        self.assertEqual(status, 145)

        status = UserShoppingCartLogic.pay_all(access_token)
        self.assertTrue(StoB(status))
Esempio n. 21
0
    def test_torture2(self):
        # Adding Users
        status = UsersLogic.register(
            RegisteredUser('u1ser1u1ser1', 'wxde12exd12'))
        self.assertTrue(status)
        status = UsersLogic.register(RegisteredUser('u2ser2u2ser2',
                                                    '34c124c1'))
        self.assertTrue(status)
        status = UsersLogic.register(
            RegisteredUser('u3ser3u3ser3', '1c241c24c1'))
        self.assertTrue(status)
        status = UsersLogic.register(
            RegisteredUser('u4ser4u4ser4', '3214v132v4132'))
        self.assertTrue(status)
        status = UsersLogic.register(RegisteredUser('u5seru5ser', '12121212'))
        self.assertTrue(status)

        # Adding System Managers
        status = UsersLogic.add_system_manager(
            SystemManager('sys1sys1', 'POWER123'))
        self.assertTrue(status)

        # Creating Shops
        status = ShopLogic.create_shop(Shop('myShop1', 'Active'),
                                       'u1ser1u1ser1')
        self.assertTrue(status)

        status = ShopLogic.create_shop(Shop('myShop2', 'Active'),
                                       'u2ser2u2ser2')
        self.assertTrue(status)

        status = UsersLogic.add_owner('u1ser1u1ser1',
                                      Owner('u3ser3u3ser3', 'myShop1', 0))
        self.assertTrue(status)

        owner = Owners.get_owner('u1ser1u1ser1', 'myShop1')
        status = UsersLogic.add_manager(
            owner.username,
            StoreManager('u4ser4u4ser4', 'myShop1', 1, 1, 1, 1, 1, 1, 1, 1))
        status = UsersLogic.add_manager(
            'u2ser2u2ser2',
            StoreManager('u4ser4u4ser4', 'myShop2', 1, 1, 1, 1, 1, 1, 1, 1))

        manager = StoreManagers.get_store_manager('u4ser4u4ser4', 'myShop1')

        self.assertEqual(manager.permission_reply_messages, 1)

        ItemsLogic.add_item_to_shop(
            Item(None, 'myShop1', 'banana', 'fruits', 'fruit;healthy;yellow',
                 4.90, 300, 'regular', None, 0, 0, 0), 'u4ser4u4ser4')

        ItemsLogic.add_item_to_shop(
            Item(None, 'myShop2', 'doll', 'toys', 'fun', 30, 10, 'regular',
                 None, 0, 0, 0), 'u2ser2u2ser2')

        ItemsLogic.add_item_to_shop(
            Item(None, 'myShop1', 'soda', 'drinks', 'good', 4.90, 20,
                 'regular', None, 0, 0, 0), 'u1ser1u1ser1')

        ItemsLogic.add_item_to_shop(
            Item(None, 'myShop2', 'cucumber', 'vegetables', 'fun', 4.90, 300,
                 'regular', None, 0, 0, 0), 'u4ser4u4ser4')

        ItemsLogic.add_item_to_shop(
            Item(None, 'myShop1', 'vodka', 'drinks', 'bad;for;your;health', 70,
                 2, 'regular', None, 0, 0, 0), 'u3ser3u3ser3')

        items = SearchLogic.search_by_name('banana')
        self.assertEqual(items[0].quantity, 300)
        self.assertEqual(items[0].price, 4.90)
        self.assertEqual(len(items), 1)

        items = SearchLogic.search_by_category('drinks')
        self.assertEqual(items[0].quantity, 20)
        self.assertEqual(items[1].price, 70)
        self.assertEqual(len(items), 2)

        items = SearchLogic.search_by_keywords('fun')
        self.assertEqual(items[0].quantity, 10)
        self.assertEqual(items[1].price, 4.90)
        self.assertEqual(len(items), 2)

        items = SearchLogic.search_items_in_shop('myShop2')
        self.assertEqual(items[0].name, 'doll')
        self.assertEqual(items[1].name, 'cucumber')
        self.assertEqual(len(items), 2)

        MessagingLogic.send_message_from_shop(
            'u4ser4u4ser4',
            Message(None, 'myShop1', 'u5seru5ser',
                    'Nadav is our lord and savior'))
        messages = MessagingLogic.get_all_messages('u5seru5ser')
        self.assertEqual(len(messages), 1)
        self.assertEqual(messages[0].content, 'Nadav is our lord and savior')

        MessagingLogic.send_message(
            Message(None, 'u5seru5ser', 'myShop1', 'Hello Shop'))
        messages = MessagingLogic.get_all_shop_messages(
            'u4ser4u4ser4', 'myShop1')
        self.assertEqual(len(messages), 1)
        self.assertEqual(messages[0].content, 'Hello Shop')

        MessagingLogic.send_message_from_shop(
            'u1ser1u1ser1', Message(None, 'myShop1', 'myShop2', 'Hello Shop2'))
        messages = MessagingLogic.get_all_shop_messages(
            'u2ser2u2ser2', 'myShop2')
        self.assertEqual(len(messages), 1)
        self.assertEqual(messages[0].content, 'Hello Shop2')

        MessagingLogic.send_message(
            Message(None, 'u1ser1u1ser1', 'u3ser3u3ser3', 'Shop2 Sucks!'))
        messages = MessagingLogic.get_all_messages('u3ser3u3ser3')
        self.assertEqual(messages[0].content, 'Shop2 Sucks!')

        UsersLogic.close_shop('u1ser1u1ser1', 'myShop1')
        items = SearchLogic.search_by_name('banana')
        self.assertEqual(len(items), 0)
Esempio n. 22
0
    def test_torture3(self):
        # Adding Users
        status = UsersLogic.register(
            RegisteredUser('u1ser1u1ser1', 'wxde12exd12'))
        self.assertTrue(status)
        status = UsersLogic.register(RegisteredUser('u2ser2u2ser2',
                                                    '34c124c1'))
        self.assertTrue(status)
        status = UsersLogic.register(
            RegisteredUser('u3ser3u3ser3', '1c241c24c1'))
        self.assertTrue(status)
        status = UsersLogic.register(
            RegisteredUser('u4ser4u4ser4', '3214v132v4132'))
        self.assertTrue(status)
        status = UsersLogic.register(RegisteredUser('u5seru5ser', '12121212'))
        self.assertTrue(status)

        # Adding System Managers
        status = UsersLogic.add_system_manager(
            SystemManager('sys1sys1', 'POWER123'))
        self.assertTrue(status)

        # Creating Shops
        status = ShopLogic.create_shop(Shop('myShop1', 'Active'),
                                       'u1ser1u1ser1')
        self.assertTrue(status)

        status = ShopLogic.create_shop(Shop('myShop2', 'Active'),
                                       'u2ser2u2ser2')
        self.assertTrue(status)

        status = UsersLogic.add_owner('u1ser1u1ser1',
                                      Owner('u3ser3u3ser3', 'myShop1', 0))
        self.assertTrue(status)

        owner = Owners.get_owner('u1ser1u1ser1', 'myShop1')
        status = UsersLogic.add_manager(
            owner.username,
            StoreManager('u4ser4u4ser4', 'myShop1', 1, 1, 1, 1, 1, 1, 1, 1))
        status = UsersLogic.add_manager(
            'u2ser2u2ser2',
            StoreManager('u4ser4u4ser4', 'myShop2', 1, 1, 1, 1, 1, 1, 1, 1))

        ItemsLogic.add_item_to_shop(
            Item(None, 'myShop1', 'banana', 'fruits', 'fruit;healthy;yellow',
                 4.90, 300, 'regular', None, 0, 0, 0), 'u4ser4u4ser4')

        ItemsLogic.add_item_to_shop(
            Item(None, 'myShop2', 'doll', 'toys', 'fun', 30, 10, 'regular',
                 None, 0, 0, 0), 'u2ser2u2ser2')

        ItemsLogic.add_item_to_shop(
            Item(None, 'myShop1', 'soda', 'drinks', 'good', 4.90, 20,
                 'regular', None, 0, 0, 0), 'u1ser1u1ser1')

        ItemsLogic.add_item_to_shop(
            Item(None, 'myShop2', 'cucumber', 'vegetables', 'fun', 4.90, 300,
                 'regular', None, 0, 0, 0), 'u4ser4u4ser4')

        ItemsLogic.add_item_to_shop(
            Item(None, 'myShop1', 'vodka', 'drinks', 'bad;for;your;health', 70,
                 2, 'regular', None, 0, 0, 0), 'u3ser3u3ser3')
        username1 = 'u4ser4u4ser4'
        username2 = 'u2ser2u2ser2'
        username3 = 'u1ser1u1ser1'
        username4 = 'u3ser3u3ser3'
        username5 = 'u5seru5ser'

        access_token1 = hashlib.md5(username1.encode()).hexdigest()
        Consumer.loggedInUsers[access_token1] = username1
        Consumer.loggedInUsersShoppingCart[access_token1] = []

        access_token2 = hashlib.md5(username2.encode()).hexdigest()
        Consumer.loggedInUsers[access_token2] = username2
        Consumer.loggedInUsersShoppingCart[access_token2] = []

        access_token3 = hashlib.md5(username3.encode()).hexdigest()
        Consumer.loggedInUsers[access_token3] = username3
        Consumer.loggedInUsersShoppingCart[access_token3] = []

        access_token4 = hashlib.md5(username4.encode()).hexdigest()
        Consumer.loggedInUsers[access_token4] = username4
        Consumer.loggedInUsersShoppingCart[access_token4] = []

        access_token5 = hashlib.md5(username5.encode()).hexdigest()
        Consumer.loggedInUsers[access_token5] = username5
        Consumer.loggedInUsersShoppingCart[access_token5] = []

        UserShoppingCartLogic.add_item_shopping_cart(
            access_token5, ShoppingCartItem('u5seru5ser', 1, 10, None))
        UserShoppingCartLogic.add_item_shopping_cart(
            access_token5, ShoppingCartItem('u5seru5ser', 2, 5, None))
        UserShoppingCartLogic.add_item_shopping_cart(
            access_token5, ShoppingCartItem('u5seru5ser', 3, 15, None))

        items = UserShoppingCartLogic.get_cart_items(access_token5)
        self.assertEqual(len(items), 3)
        self.assertEqual(items[0].code, None)

        UserShoppingCartLogic.remove_item_shopping_cart(access_token5, 1)
        items = UserShoppingCartLogic.get_cart_items(access_token5)
        self.assertEqual(len(items), 2)

        UserShoppingCartLogic.remove_item_shopping_cart(access_token5, 2)
        items = UserShoppingCartLogic.get_cart_items(access_token5)
        self.assertEqual(len(items), 1)

        # Only item id 3 left

        UserShoppingCartLogic.pay_all(access_token5)
        items1 = UsersLogic.get_purchase_history('u5seru5ser')
        items2 = ItemsLogic.get_all_purchased_items('sys1sys1')
        items3 = ShopLogic.get_shop_purchase_history('u4ser4u4ser4', 'myShop1')
        self.assertEqual(items1[0].item_id, items2[0].item_id)
        self.assertEqual(items2[0].quantity, items3[0].quantity)
        self.assertEqual(items1[0].price, items3[0].price)

        self.assertTrue('Nadav Ha Gever')
Esempio n. 23
0
def open_shop(username, shop_name):
    return ShopLogic.create_shop(Shop(shop_name, 'Active'), username)