コード例 #1
0
 def test_add_six_others(self):
     burger = Burger()
     with pytest.raises(InvalidQuantityException):
         burger.add_item(other1, 6)
     assert len(burger.components) == 0
     assert len(burger) == 0
     assert burger.price == 0
コード例 #2
0
 def test_add_five_other(self):
     burger = Burger()
     burger.add_item(other1, 5)
     assert burger._num_others == 5
     assert len(burger) == 5
     assert len(burger.components) == 1
     assert burger.price == 60
コード例 #3
0
 def test_add_four_buns(self):
     burger = Burger()
     burger.add_item(bun1, 4)
     assert burger._num_buns == 4
     assert len(burger) == 4
     assert len(burger.components) == 1
     assert burger.price == 44
コード例 #4
0
 def test_add_one_bun_success(self):
     burger = Burger()
     burger.add_item(bun1, 1)
     assert burger._num_buns == 1
     assert len(burger) == 1
     assert len(burger.components) == 1
     assert burger.price == 11
コード例 #5
0
 def test_add_five_buns(self):
     burger = Burger()
     with pytest.raises(InvalidQuantityException):
         burger.add_item(bun1, 5)
     assert len(burger.components) == 0
     assert len(burger) == 0
     assert burger.price == 0
コード例 #6
0
 def test_add_one_other_success(self):
     burger = Burger()
     burger.add_item(other1, 1)
     assert burger._num_others == 1
     assert len(burger) == 1
     assert len(burger.components) == 1
     assert burger.price == 12
コード例 #7
0
 def test_add_different_buns(self):
     burger = Burger()
     burger.add_item(bun1, 1)
     burger.add_item(bun2, 3)
     assert burger._num_buns == 4
     assert len(burger) == 4
     assert len(burger.components) == 2
     assert burger.price == 74
コード例 #8
0
 def test_add_different_others(self):
     burger = Burger()
     burger.add_item(other1, 2)
     burger.add_item(other2, 3)
     assert burger._num_others == 5
     assert len(burger) == 5
     assert len(burger.components) == 2
     assert burger.price == 90
コード例 #9
0
 def test_checkout_all(self, restaurant_fixture):
     order = Order()
     #adding a burger
     burger = Burger()
     bun = restaurant_fixture.menu.get_item("Bun")
     patty = restaurant_fixture.menu.get_item("Patty")
     cheese = restaurant_fixture.menu.get_item("Cheese")
     burger.add_item(bun, 2)
     burger.add_item(patty, 1)
     burger.add_item(cheese, 1)
     order.add_main(burger)
     #adding sides and drinks
     coke = restaurant_fixture.menu.get_item("Canned Coke")
     nugget = restaurant_fixture.menu.get_item("Small Chicken Nugget")
     order.add_others(coke, 1)
     order.add_others(nugget, 1)
     #placing the order and checking out
     restaurant_fixture.place_order(order)
     restaurant_fixture.checkout(1)
     assert restaurant_fixture.inventory.items[0].quantity == 98
     assert restaurant_fixture.inventory.items[1].quantity == 99
     assert restaurant_fixture.inventory.items[2].quantity == 99
     assert restaurant_fixture.inventory.items[3].quantity == 99
     assert restaurant_fixture.inventory.items[4].quantity == 94
     assert len(restaurant_fixture.orders) == 1
コード例 #10
0
 def test_display_burger(self, restaurant_fixture, capsys):
     burger = Burger()
     bun = restaurant_fixture.menu.get_item("Bun")
     patty = restaurant_fixture.menu.get_item("Patty")
     cheese = restaurant_fixture.menu.get_item("Cheese")
     burger.add_item(bun, 2)
     burger.add_item(patty, 1)
     burger.add_item(cheese, 1)
     burger.show_content(restaurant_fixture.menu)
     expected_output = ("Name\t\tQuantity\tPrice\n"
                        "Bun\t\t2\t\t$10 * 2\n"
                        "Patty\t\t1\t\t$10 * 1\n"
                        "Cheese\t\t1\t\t$10 * 1\n"
                        "Total: $40\n")
     assert capsys.readouterr().out == expected_output
コード例 #11
0
def test_burger():
    b = Burger()
    b.add_item(patty1, 1)
    b.add_item(patty2, 1)
    b.add_item(bun1, 2)
    b.add_item(bun2, 1)
    b.add_item(other1, 1)

    return b
コード例 #12
0
 def test_add_too_many_different_patties(self):
     burger = Burger()
     burger.add_item(bun1, 2)
     burger.add_item(patty1, 2)
     with pytest.raises(InvalidQuantityException):
         burger.add_item(patty2, 5)
     assert burger.num_patties == 2
     assert len(burger) == 4
     assert burger.price == 42
コード例 #13
0
 def test_update_invalid_others(self):
     burger = Burger()
     burger.add_item(other1, 1)
     with pytest.raises(ValueError):
         burger.update_qty(other2, 1)
     assert burger.num_others == 1
     assert len(burger) == 1
コード例 #14
0
 def test_update_other(self):
     burger = Burger()
     burger.add_item(other1, 1)
     burger.update_qty(other1, 2)
     assert burger.num_others == 2
     assert burger.price == 24
     assert len(burger) == 2
コード例 #15
0
 def test_update_patty(self):
     burger = Burger()
     burger.add_item(patty1, 1)
     burger.update_qty(patty1, 2)
     assert burger.num_patties == 2
     assert burger.price == 20
     assert len(burger) == 2
コード例 #16
0
 def test_add_different_patties(self):
     burger = Burger()
     burger.add_item(bun1, 3)
     burger.add_item(patty1, 3)
     assert burger.num_patties == 3
     assert len(burger) == 6
     assert burger.price == 63
コード例 #17
0
 def test_update_bun(self):
     burger = Burger()
     burger.add_item(bun1, 1)
     burger.update_qty(bun1, 2)
     assert burger.num_buns == 2
     assert burger.price == 22
     assert len(burger) == 2
コード例 #18
0
 def test_add_one_patty(self):
     burger = Burger()
     burger.add_item(bun1, 2)
     burger.add_item(patty1, 1)
     assert burger._num_patties == 1
     assert len(burger) == 3
     assert len(burger.components) == 2
     assert burger.price == 32
コード例 #19
0
 def test_add_too_many_patties_in_one_go(self):
     burger = Burger()
     burger.add_item(bun1, 2)
     with pytest.raises(InvalidQuantityException):
         burger.add_item(patty1, 7)
     assert burger.num_patties == 0
     assert len(burger) == 2
     assert burger.price == 22
コード例 #20
0
 def test_update_other_out_of_stock(self):
     burger = Burger()
     burger.add_item(other1, 1)
     with pytest.raises(InvalidQuantityException):
         burger.update_qty(other1, 101)
     assert burger.num_others == 1
     assert len(burger) == 1
     assert burger.price == 12
コード例 #21
0
 def test_update_one_of_two_patties(self):
     burger = Burger()
     burger.add_item(patty1, 1)
     burger.add_item(patty2, 1)
     burger.update_qty(patty2, 2)
     assert burger.num_patties == 3
     assert burger.price == 50
     assert len(burger) == 3
コード例 #22
0
 def test_update_one_of_two_other(self):
     burger = Burger()
     burger.add_item(other1, 1)
     burger.add_item(other2, 1)
     burger.update_qty(other2, 2)
     assert burger.num_others == 3
     assert burger.price == 56
     assert len(burger) == 3
コード例 #23
0
 def test_update_one_of_two_bun(self):
     burger = Burger()
     burger.add_item(bun1, 1)
     burger.add_item(bun2, 1)
     burger.update_qty(bun2, 2)
     assert burger.num_buns == 3
     assert burger.price == 53
     assert len(burger) == 3
コード例 #24
0
 def test_add_zero_patty(self):
     burger = Burger()
     burger.add_item(bun1, 2)
     with pytest.raises(InvalidQuantityException):
         burger.add_item(patty2, 0)
     assert burger.num_patties == 0
     assert len(burger) == 2
     assert burger.price == 22
コード例 #25
0
 def test_update_invalid_patties(self):
     burger = Burger()
     burger.add_item(patty1, 1)
     with pytest.raises(ValueError):
         burger.update_qty(patty2, 1)
     assert burger.num_patties == 1
     assert len(burger) == 1
     assert burger.price == 10
コード例 #26
0
 def test_update_bun_zero(self):
     burger = Burger()
     burger.add_item(bun1, 1)
     with pytest.raises(InvalidQuantityException):
         burger.update_qty(bun1, 0)
     assert burger.num_buns == 1
     assert burger.price == 11
     assert len(burger) == 1
コード例 #27
0
 def test_update_patty_zero(self):
     burger = Burger()
     burger.add_item(patty1, 1)
     with pytest.raises(InvalidQuantityException):
         burger.update_qty(patty1, 0)
     assert burger.num_patties == 1
     assert burger.price == 10
     assert len(burger) == 1
コード例 #28
0
 def test_update_invalid_bun(self):
     burger = Burger()
     burger.add_item(bun1, 1)
     with pytest.raises(ValueError):
         burger.update_qty(bun2, 1)
     assert burger.num_buns == 1
     assert len(burger) == 1
     assert burger.price == 11
コード例 #29
0
 def test_update_one_of_two_other_exceeds_limit(self):
     burger = Burger()
     burger.add_item(other1, 1)
     burger.add_item(other2, 1)
     with pytest.raises(InvalidQuantityException):
         burger.update_qty(other2, 5)
     assert burger.num_others == 2
     assert burger.price == 34
     assert len(burger) == 2
コード例 #30
0
 def test_add_five_different_buns(self):
     burger = Burger()
     burger.add_item(bun1, 2)
     assert burger._num_buns == 2
     assert len(burger) == 2
     assert len(burger.components) == 1
     assert burger.price == 22
     with pytest.raises(InvalidQuantityException):
         burger.add_item(bun2, 3)