Exemple #1
0
    def test_get_orders(self):
        self.system = GourmetBurgerSystem()

        self.system.create_new_order()
        self.system.create_new_order()

        assert self.system.orders == self.system._order_manager.orders
Exemple #2
0
 def setup_method(self):
     self.system = GourmetBurgerSystem()
     assert self.system != None
     assert self.system.drinks != None
     assert self.system.sides != None
     assert self.system.ingredients != None
     assert self.system.buns != None
Exemple #3
0
    def test_lookups(self):

        self.system = GourmetBurgerSystem()

        items = (*self.system.sides, *self.system.drinks,
                 *self.system.ingredients, *self.system.buns)

        for item in items:
            assert item == self.system.get_object_by_name(item.name)
Exemple #4
0
    def test_stock_levels_set(self):

        # Check stock levels setting

        self.system = GourmetBurgerSystem()

        dictionary = {'Nuggets': '3'}

        self.system.update_stock_levels(dictionary)

        assert self.system.stock_levels['Nuggets'] == [3, 'pcs']

        dictionary['Nuggets'] = 4

        assert self.system.stock_levels['Nuggets'] == [3, 'pcs']

        # test attempted insertion of a new key
        dictionary = {'new_key': 0}

        self.system.update_stock_levels(dictionary)

        print(self.system.stock_levels)

        assert 'new_key' not in self.system.stock_levels

        # test invalid alphabet character
        dictionary = {'Nuggets': 'a'}

        with pytest.raises(StockSetterError) as e:
            self.system.update_stock_levels(dictionary)
        assert e.value.errors['Nuggets'] == 'Please enter an integer.'
        assert self.system.stock_levels['Nuggets'] != ['a', 'pcs']
        assert self.system.stock_levels['Nuggets'] == [3, 'pcs']

        # test negative stock level
        dictionary = {'Nuggets': '-1'}

        with pytest.raises(StockSetterError) as e:
            self.system.update_stock_levels(dictionary)
        assert e.value.errors[
            'Nuggets'] == 'Please enter a stock level greater than 0.'
        assert self.system.stock_levels['Nuggets'] != ['-1', 'pcs']
        assert self.system.stock_levels['Nuggets'] == [3, 'pcs']

        # test valid and invalid input
        dictionary = {
            'Nuggets': '-1',
            'Fries': 5,
        }

        with pytest.raises(StockSetterError) as e:
            self.system.update_stock_levels(dictionary)
        assert e.value.errors[
            'Nuggets'] == 'Please enter a stock level greater than 0.'
        assert self.system.stock_levels['Nuggets'] != ['-1', 'pcs']
        assert self.system.stock_levels['Fries'] == [5, 'grams']
Exemple #5
0
    def test_out_of_stock(self):
        empty_system = GourmetBurgerSystem()
        bun_string_list = ['Sesame bun']
        buns = [
            empty_system.get_object_by_name(bun) for bun in bun_string_list
        ]

        with pytest.raises(OutOfStockError) as e:
            GourmetBurgerSystem.check_item_list(buns)
        assert "Sesame bun" in e.value.msg
Exemple #6
0
    def test_out_of_stock(self, standard_burger):
        empty_system = GourmetBurgerSystem()

        drinks = empty_system.drinks

        id = empty_system.create_new_order()
        order = empty_system.get_order_by_id(id)
        order.set_drinks(drinks)
        order.set_burgers([standard_burger])

        with pytest.raises(OutOfStockError) as e:
            GourmetBurgerSystem.checkout(order)
        assert e.value.msg == [item.name for item in empty_system.drinks]
Exemple #7
0
def system():
    system = GourmetBurgerSystem()
    for (key, (value, units)) in system._stock_levels.items():
        system._stock_levels[key] = [10000, units]
    return system
Exemple #8
0
from gourmet_burger_system import GourmetBurgerSystem

system = GourmetBurgerSystem()

updated_stock_levels = {}

for key in system.stock_levels:
    updated_stock_levels[key] = 100000

system.update_stock_levels(updated_stock_levels)
system.save()