Example #1
0
def test_buying_of_nonexistant_product(capfd):
    machine = VendingMachine()
    machine.insert_coin(2)
    machine.buy_product("coke")

    out, err = capfd.readouterr()
    assert "'coke' is not available" in out
Example #2
0
def test_buying_of_last_product_then_buying_again(capfd):
    product_count = 1
    machine = VendingMachine()
    machine.insert_coin(2)
    machine.insert_coin(2)
    machine.add_product_to_list("coke", product_count, 1.5)

    machine.buy_product("coke")
    out, err = capfd.readouterr()
    assert "'coke' is not available" not in out

    machine.buy_product("coke")
    out, err = capfd.readouterr()
    assert "'coke' is not available" in out
Example #3
0
def test_buy_product_and_get_remainder():
    # snickers price = 1.2
    machine = VendingMachine()
    machine.insert_coin(1)
    machine.insert_coin(0.05)
    machine.insert_coin(0.5)

    money, product = machine.buy_product("snickers")
    assert machine.truncate(sum(money)) == 0.35
    assert product == "snickers"
Example #4
0
def test_buy_nonexisting_product(capfd):
    machine = VendingMachine()
    machine.insert_coin(1)
    machine.insert_coin(0.05)
    machine.insert_coin(0.5)

    money, product = machine.buy_product("machine itself")
    assert 1.55 == sum(money)
    out, err = capfd.readouterr()
    assert product is None
    assert "'machine itself' is not available" in out
Example #5
0
def test_product_count_change_after_buying():
    machine = VendingMachine()
    machine.insert_coin(2.0)
    machine.buy_product("snickers")

    assert machine.products.get("snickers")[-1] == 9