Пример #1
0
def buy_product(request):
    vm = VendingMachine()
    try:
        vm.buy_product()
        return JsonResponse({'msg': vm.message, 'product': "product"})
    except RuntimeError as e:
        return JsonResponse({'msg': e.message, 'product': None})
Пример #2
0
def test_get_balance_returns_sum_of_coins_minus_purchases():
    machine = VendingMachine()
    machine.insert_coin(coins.Toonie())
    machine.insert_coin(coins.Toonie())
    machine.buy_product(products.Candy)

    assert machine.get_balance() == 85
Пример #3
0
def test_buy_product_returns_instance_when_valid():
    machine = VendingMachine()
    machine.insert_coin(coins.Toonie())
    machine.insert_coin(coins.Toonie())
    result = machine.buy_product(products.Drink)

    assert isinstance(result, products.Drink)
Пример #4
0
def test_buy_drink_with_insufficient_funds():
    machine = VendingMachine()
    with pytest.raises(InsufficientFunds):
        machine.buy_product(products.Drink)
Пример #5
0
def test_buy_product_accepts_candy():
    machine = VendingMachine()
    machine.insert_coin(coins.Toonie())
    machine.insert_coin(coins.Toonie())
    machine.buy_product(products.Candy)
Пример #6
0
def test_buy_product_accepts_drink():
    machine = VendingMachine()
    machine.insert_coin(coins.Toonie())
    machine.insert_coin(coins.Loonie())
    machine.buy_product(products.Drink)
Пример #7
0
def test_buy_product_accepts_chips_with_sufficient_balance():
    machine = VendingMachine()
    machine.insert_coin(coins.Toonie())
    machine.insert_coin(coins.Quarter())
    machine.buy_product(products.Chips)
Пример #8
0
def test_buy_product_rejects_strings():
    machine = VendingMachine()

    with pytest.raises(ValueError):
        machine.buy_product(str)