Beispiel #1
0
    def test_system_remove(self):  # 5.2
        # check sys manager really exist
        self.assertTrue(
            Bridge.is_system_manager(
                'Ultimate_OmriOmri',
                'ef797c8118f02dfb649607dd5d3f8c7623048c9c063d532cc95c5ed7a898a64f'
            ))

        # add a normal user
        self.assertTrue(Bridge.register_user('normalUser', 'password'))

        # delete the normal user
        self.assertTrue(
            Bridge.delete_user(by='Ultimate_OmriOmri', who='normalUser'))
        self.assertEqual(Bridge.login('normalUser', 'password'),
                         'FAILED: Username is incorrect')

        # add owner of store
        Bridge.register_user('ownerUser', 'password')
        Bridge.open_shop('ownerUser', 'myShop')

        # delete owner and its shop
        self.assertTrue(
            Bridge.delete_user(by='Ultimate_OmriOmri', who='ownerUser'))
        self.assertEqual(Bridge.login('normalUser', 'password'),
                         'FAILED: Username is incorrect')

        shop = Bridge.search_shop('myShop')
        self.assertEqual(shop.status, "Permanently_closed")
Beispiel #2
0
    def test_buy(self):  # 1.7
        # setup shop
        Bridge.register_user('ownerUser', 'password')
        Bridge.login('ownerUser', 'password')
        Bridge.open_shop('ownerUser', 'my_shop')
        Bridge.register_user('clientUser', 'password')
        Bridge.search_shop('my_shop')

        # add items to shop
        Bridge.add_item_to_shop(shop_name='my_shop',
                                item_name='item_name1',
                                item_category='item_category',
                                keywords='keywords',
                                price=10,
                                quantity=10,
                                username='******',
                                kind='regular',
                                url=None,
                                item_rating=0,
                                sum_of_ranking=0,
                                num_of_reviews=0)
        Bridge.add_item_to_shop(shop_name='my_shop',
                                item_name='item_name2',
                                item_category='item_category',
                                keywords='keywords',
                                price=10,
                                quantity=20,
                                username='******',
                                kind='regular',
                                url=None,
                                item_rating=0,
                                sum_of_ranking=0,
                                num_of_reviews=0)
        Bridge.add_item_to_shop(shop_name='my_shop',
                                item_name='item_name3',
                                item_category='item_category',
                                keywords='keywords',
                                price=10,
                                quantity=30,
                                username='******',
                                kind='regular',
                                url=None,
                                item_rating=0,
                                sum_of_ranking=0,
                                num_of_reviews=0)
        Bridge.add_item_to_shop(shop_name='my_shop',
                                item_name='item_name4',
                                item_category='item_category',
                                keywords='keywords',
                                price=10,
                                quantity=40,
                                username='******',
                                kind='regular',
                                url=None,
                                item_rating=0,
                                sum_of_ranking=0,
                                num_of_reviews=0)
        Bridge.add_item_to_shop(shop_name='my_shop',
                                item_name='item_name5',
                                item_category='item_category',
                                keywords='keywords',
                                price=10,
                                quantity=50,
                                username='******',
                                kind='regular',
                                url=None,
                                item_rating=0,
                                sum_of_ranking=0,
                                num_of_reviews=0)

        # add items to cart
        username = '******'
        access_token = hashlib.md5(username.encode()).hexdigest()
        Consumer.loggedInUsers[access_token] = username
        Consumer.loggedInUsersShoppingCart[access_token] = []
        Bridge.buy_item(access_token, 'clientUser', 'my_shop', 1, 10)
        Bridge.buy_item(access_token, 'clientUser', 'my_shop', 2, 10)
        Bridge.buy_item(access_token, 'clientUser', 'my_shop', 3, 10)
        Bridge.buy_item(access_token, 'clientUser', 'my_shop', 4, 10)
        Bridge.buy_item(access_token, 'clientUser', 'my_shop', 5, 10)

        # check total cost is calculated right
        self.assertEqual(Bridge.get_cart_cost(access_token), 500)

        # buy!
        self.assertTrue(Bridge.pay_cart(access_token))

        # check quantity in store changed
        self.assertEqual(Bridge.quantity_in_store(1), 0)
        self.assertEqual(Bridge.quantity_in_store(2), 10)
        self.assertEqual(Bridge.quantity_in_store(3), 20)
        self.assertEqual(Bridge.quantity_in_store(4), 30)
        self.assertEqual(Bridge.quantity_in_store(5), 40)
        # alternative scenario - item quantity is not enough
        self.assertFalse(
            Bridge.buy_item(access_token, 'clientUser', 'my_shop', 1, 10))

        # alternative scenario - added items, but another user already bought them
        username2 = 'clientUser2'
        access_token2 = hashlib.md5(username2.encode()).hexdigest()
        Consumer.loggedInUsers[access_token2] = username2
        Consumer.loggedInUsersShoppingCart[access_token2] = []
        Bridge.register_user('clientUser2', 'password')
        Bridge.buy_item(access_token, 'clientUser', 'my_shop', 2, 10)
        Bridge.buy_item(access_token2, 'clientUser2', 'my_shop', 2, 10)

        self.assertTrue(isinstance(Bridge.pay_cart(access_token2), list))
        self.assertTrue(isinstance(Bridge.pay_cart(access_token), str))