def test_framework_item_after_sell_date_min_quality():
    shop = BookShop([Item('Фреймворк Django', sell_in=-1, quality=0)])

    shop.update_quality()

    expect(shop.items).to_equal(
        [Item('Фреймворк Django', sell_in=-2, quality=0)])
def test_framework_item_before_sell_date():
    shop = BookShop([Item('Фреймворк Django', sell_in=50, quality=50)])

    shop.update_quality()

    expect(shop.items).to_equal(
        [Item('Фреймворк Django', sell_in=49, quality=48)])
def test_framework_item_on_sell_date():
    shop = BookShop([Item('Фреймворк Django', sell_in=0, quality=10)])

    shop.update_quality()

    expect(shop.items).to_equal(
        [Item('Фреймворк Django', sell_in=-1, quality=6)])
def test_lutz_before_sell_date():
    shop = BookShop(
        [Item('Марк Лутц, Изучаем Python, 3й том', sell_in=50, quality=80)])

    shop.update_quality()

    expect(shop.items).to_equal(
        [Item('Марк Лутц, Изучаем Python, 3й том', sell_in=50, quality=80)])
def test_normal_item_of_zero_quality():
    shop = BookShop([
        Item('2345uyjhgfd', sell_in=10, quality=0),
        Item('2345uyjhgfd', sell_in=0, quality=0),
        Item('2345uyjhgfd', sell_in=-1, quality=0),
    ])

    shop.update_quality()

    expect(shop.items).to_equal([
        Item('2345uyjhgfd', sell_in=9, quality=0),
        Item('2345uyjhgfd', sell_in=-1, quality=0),
        Item('2345uyjhgfd', sell_in=-2, quality=0),
    ])
def test_normal_item_before_sell_data():
    shop = BookShop([Item('sdfgasg', sell_in=50, quality=50)])

    shop.update_quality()

    expect(shop.items).to_equal([Item('sdfgasg', sell_in=49, quality=49)])
def test_normal_item_after_sell_date():
    shop = BookShop([Item('r,568m', sell_in=-1, quality=10)])

    shop.update_quality()

    expect(shop.items).to_equal([Item('r,568m', sell_in=-2, quality=8)])
def test_normal_on_sell_date():
    shop = BookShop([Item('am6y5e', sell_in=0, quality=10)])

    shop.update_quality()

    expect(shop.items).to_equal([Item('am6y5e', sell_in=-1, quality=8)])
def test_knuth_item_after_sell_date_and_max_quality():
    shop = BookShop([Item('Д. Кнут, Искусство программирования', sell_in=-1, quality=50)])

    shop.update_quality()

    expect(shop.items).to_equal([Item('Д. Кнут, Искусство программирования', sell_in=-2, quality=50)])
def test_knuth_item_before_sell_date():
    shop = BookShop([Item('Д. Кнут, Искусство программирования', sell_in=50, quality=48)])

    shop.update_quality()

    expect(shop.items).to_equal([Item('Д. Кнут, Искусство программирования', sell_in=49, quality=49)])
def test_knuth_item_on_sell_date():
    shop = BookShop([Item('Д. Кнут, Искусство программирования', sell_in=0, quality=8)])

    shop.update_quality()

    expect(shop.items).to_equal([Item('Д. Кнут, Искусство программирования', sell_in=-1, quality=10)])