예제 #1
0
def test_swap_best_by_category():
    item_a = Decor(condition=2.0)
    item_b = Electronics(condition=4.0)
    item_c = Decor(condition=4.0)
    tai = Vendor(
        inventory=[item_a, item_b, item_c]
    )

    item_d = Clothing(condition=2.0)
    item_e = Decor(condition=4.0)
    item_f = Clothing(condition=4.0)
    jesse = Vendor(
        inventory=[item_d, item_e, item_f]
    )

    result = tai.swap_best_by_category(
        other=jesse,
        my_priority="Clothing",
        their_priority="Decor"
    )

    assert result is True
    assert len(tai.inventory) is 3
    assert len(jesse.inventory) is 3
    assert item_c not in tai.inventory
    assert item_f in tai.inventory
    assert item_f not in jesse.inventory
    assert item_c in jesse.inventory
예제 #2
0
def test_swap_first_item_returns_true():
    item_a = Item(category="clothing")
    item_b = Item(category="clothing")
    item_c = Item(category="clothing")
    fatimah = Vendor(
        inventory=[item_a, item_b, item_c]
    )

    item_d = Item(category="electronics")
    item_e = Item(category="decor")
    jolie = Vendor(
        inventory=[item_d, item_e]
    )

    result = fatimah.swap_first_item(jolie)

    assert len(fatimah.inventory) is 3
    assert item_a not in fatimah.inventory
    assert item_b in fatimah.inventory
    assert item_c in fatimah.inventory
    assert item_d in fatimah.inventory
    assert len(jolie.inventory) is 2
    assert item_d not in jolie.inventory
    assert item_e in jolie.inventory
    assert item_a in jolie.inventory
    assert result is True
예제 #3
0
def test_swap_by_newest():
    item_a = Decor(age="Vintage")
    item_b = Electronics(age="New")
    item_c = Decor(age="New")
    tai = Vendor(
        inventory=[item_a, item_b, item_c]
    )

    item_d = Clothing(age="Vintage")
    item_e = Decor(age="New")
    item_f = Clothing(age="New")
    jesse = Vendor(
        inventory=[item_d, item_e, item_f]
    )

    result = tai.swap_by_newest(
        other=jesse,
        my_priority="Clothing",
        their_priority="Decor"
    )

    assert result is True
    assert len(tai.inventory) == 3
    assert len(jesse.inventory) == 3
    assert item_c not in tai.inventory
    assert item_f in tai.inventory
    assert item_f not in jesse.inventory
    assert item_c in jesse.inventory
예제 #4
0
def test_swap_by_newest_return_true():
    item_a = Electronics(condition=3.5, age=7.0)
    item_b = Item(condition=3.5, age=5.0)
    item_c = Decor(condition=3.5, age=2.0)

    jesse = Vendor(
        inventory=[item_a, item_b, item_c]
        )
        
    item_d = Item(condition=3.5, age=7.0)
    item_e = Decor(condition=3.5, age=3.0)
    item_f = Clothing(condition=3.5, age=9.0)

    mai = Vendor(
        inventory=[item_d, item_e, item_f]
    )

    result = jesse.swap_by_newest(mai)

    assert result is True
    assert len(mai.inventory) is 3
    assert len(jesse.inventory) is 3
    assert item_c not in jesse.inventory
    assert item_a in jesse.inventory
    assert item_e not in mai.inventory
    assert item_f in mai.inventory
예제 #5
0
def test_swap_best_by_category_reordered():
    item_a = Decor(condition=2.0)
    item_b = Electronics(condition=4.0)
    item_c = Decor(condition=4.0)
    tai = Vendor(inventory=[item_c, item_b, item_a])

    item_d = Clothing(condition=2.0)
    item_e = Decor(condition=4.0)
    item_f = Clothing(condition=4.0)
    jesse = Vendor(inventory=[item_f, item_e, item_d])

    result = tai.swap_best_by_category(other=jesse,
                                       my_priority="Clothing",
                                       their_priority="Decor")

    assert result
    assert len(tai.inventory) == 3
    assert len(jesse.inventory) == 3
    assert item_a in tai.inventory
    assert item_b in tai.inventory
    assert item_c not in tai.inventory
    assert item_f in tai.inventory
    assert item_d in jesse.inventory
    assert item_e in jesse.inventory
    assert item_f not in jesse.inventory
    assert item_c in jesse.inventory
예제 #6
0
def test_swap_newest_by_category_no_other_match_is_false():
    item_a = Decor()
    item_b = Electronics()
    item_c = Decor()
    tai = Vendor(
        inventory=[item_c, item_b, item_a]
    )

    item_d = Clothing()
    item_e = Decor()
    item_f = Clothing()
    jesse = Vendor(
        inventory=[item_f, item_e, item_d]
    )

    result = tai.swap_newest_by_category(
        other=jesse,
        my_priority="Electronics",
        their_priority="Decor"
    )

    assert not result
    assert len(tai.inventory) == 3
    assert len(jesse.inventory) == 3
    assert item_a in tai.inventory
    assert item_b in tai.inventory
    assert item_c in tai.inventory
    assert item_d in jesse.inventory
    assert item_e in jesse.inventory
    assert item_f in jesse.inventory
예제 #7
0
def test_swap_newest_by_category():
    item_a = Decor(age=41)
    item_b = Electronics(age=32)
    item_c = Decor(age=28)
    tanae = Vendor(
        inventory=[item_a, item_b, item_c]
    )

    item_d = Clothing(age=48)
    item_e = Decor(age=17)
    item_f = Clothing(age=23)
    jenda = Vendor(
        inventory=[item_d, item_e, item_f]
    )

    result = tanae.swap_newest_by_category(
        other=jenda,
        my_priority="Clothing",
        their_priority="Decor"
    )

    assert result is True
    assert len(tanae.inventory) is 3
    assert len(jenda.inventory) is 3
    assert item_c not in tanae.inventory
    assert item_f in tanae.inventory
    assert item_f not in jenda.inventory
    assert item_c in jenda.inventory
def test_swap_items_returns_true():
    # arrange
    item_a = Item(category="clothing")
    item_b = Item(category="clothing")
    item_c = Item(category="clothing")
    fatimah = Vendor(inventory=[item_a, item_b, item_c])

    item_d = Item(category="electronics")
    item_e = Item(category="decor")
    jolie = Vendor(inventory=[item_d, item_e])
    # fatima.swap_items(jolie, ...,...)
    # act
    result = fatimah.swap_items(jolie, item_b, item_d)

    # assert
    assert len(fatimah.inventory) is 3
    assert item_b not in fatimah.inventory
    assert item_a in fatimah.inventory
    assert item_c in fatimah.inventory
    assert item_d in fatimah.inventory
    assert len(jolie.inventory) is 2
    assert item_d not in jolie.inventory
    assert item_e in jolie.inventory
    assert item_b in jolie.inventory
    assert result is True
예제 #9
0
def test_swap_newest_by_category():
    item_a = Decor(age=2)
    item_b = Electronics(age=1)
    item_c = Decor(age=1)
    tai = Vendor(
        inventory=[item_a, item_b, item_c]
    )

    item_d = Clothing(age=2)
    item_e = Decor(age=3)
    item_f = Clothing(age=1)
    jesse = Vendor(
        inventory=[item_d, item_e, item_f]
    )

    result = tai.swap_newest_by_category(
        other=jesse,
        my_priority="Clothing",
        their_priority="Decor"
    )

    assert result
    assert len(tai.inventory) == 3
    assert len(jesse.inventory) == 3
    assert item_a in tai.inventory
    assert item_b in tai.inventory
    assert item_c not in tai.inventory
    assert item_f in tai.inventory
    assert item_d in jesse.inventory
    assert item_e in jesse.inventory
    assert item_f not in jesse.inventory
    assert item_c in jesse.inventory
예제 #10
0
def test_swap_by_newest_returns_false_with_empty_inventory():
    johannes = Vendor()

    live = Vendor()

    result = johannes.swap_by_newest(other=live)

    assert result is False
예제 #11
0
def test_get_newest_item():
    item_a = Item(age=3)
    item_b = Item(age=1)
    item_c = Item(age=2)
    fatimah = Vendor(inventory=[item_a, item_b, item_c])
    newest_item = fatimah.get_newest_item()

    assert newest_item.age == pytest.approx(1.0)
예제 #12
0
def test_removing_not_found_is_false():
    item = "item to remove"
    vendor = Vendor(inventory=["a", "b", "c"])

    result = vendor.remove(item)

    assert len(vendor.inventory) == 3
    assert not result
예제 #13
0
def test_get_min_age_return_none():
    jenny = Vendor(
        inventory=[]
    )

    result = jenny.get_min_age()

    assert result == None
예제 #14
0
def test_get_newest_returns_newest_item():
    item_a = Decor(age=2)
    item_b = Electronics(age=7)
    item_c = Clothing(age=0.5)
    johannes = Vendor(inventory=[item_a, item_b, item_c])

    result = johannes.get_newest()

    assert result is item_c
def test_removing_not_found_is_false():
    # arrange
    item = "item to remove"
    vendor = Vendor(inventory=["a", "b", "c"])
    # act
    result = vendor.remove(item)
    # assert
    assert len(vendor.inventory) is 3
    assert result is False
예제 #16
0
def test_best_by_category_no_matches_is_none():
    item_a = Decor(condition=2.0)
    item_b = Decor(condition=2.0)
    item_c = Decor(condition=4.0)
    tai = Vendor(inventory=[item_a, item_b, item_c])

    best_item = tai.get_best_by_category("Electronics")

    assert best_item is None
def test_newest_item_with_duplicates():
    item_a = Decor(year=1999)
    item_b = Electronics(year=1970)
    item_c = Clothing(year=1999)
    madison = Vendor(inventory=[item_a, item_b, item_c])
    newest_item = madison.get_newest_item()

    assert newest_item.age == 22
    assert newest_item.year == 1999
예제 #18
0
def test_newest_by_category_no_matches_is_none():
    item_a = Decor(age=2.0)
    item_b = Decor(age=2.0)
    item_c = Decor(age=4.0)
    tai = Vendor(inventory=[item_a, item_b, item_c])

    newest_item = tai.get_newest_by_category("Electronics")

    assert newest_item is None
예제 #19
0
def test_swap_by_newest_with_duplicates():
    item_a = Clothing(age=2)
    item_d = Clothing(age=2)
    tai = Vendor(inventory=[item_a])
    ta = Vendor(inventory=[item_d])
    is_swap = tai.swap_by_newest(ta)

    assert item_a in ta.inventory
    assert is_swap is not False
def test_get_no_matching_items_by_category():
    item_a = Item(category="clothing")
    item_b = Item(category="clothing")
    item_c = Item(category="clothing")
    vendor = Vendor(inventory=[item_a, item_b, item_c])

    items = vendor.get_by_category("electronics")

    assert len(items) is 0
예제 #21
0
def test_get_min_age():
    item_a = Clothing(age = 1)
    item_b = Clothing(age = 4)
    item_c = Decor(age = 2)
    item_d = Decor(age = 3.5)
    tai = Vendor(inventory = [item_a,item_b,item_c, item_d])
    newest_item = tai.get_min_age()
    
    assert newest_item.age == 1
예제 #22
0
def test_removing_from_inventory_returns_item():
    item = "item to remove"
    vendor = Vendor(inventory=["a", "b", "c", item])

    result = vendor.remove(item)

    assert len(vendor.inventory) == 3
    assert item not in vendor.inventory
    assert result == item
예제 #23
0
def test_adding_to_inventory():
    vendor = Vendor()
    item = "new item"

    result = vendor.add(item)

    assert len(vendor.inventory) == 1
    assert item in vendor.inventory
    assert result == item
def test_best_by_edge_with_duplicates():
    item_a = Clothing(edge=2.0)
    item_b = Clothing(edge=2.0)
    item_c = Clothing(edge=4.0)
    mary = Vendor(inventory=[item_a, item_b, item_c])

    newest_item = mary.get_best_by_edge("Clothing")

    assert newest_item.category == "Clothing"
    assert newest_item.edge == pytest.approx(2.0)
def test_removing_from_inventory_returns_item():
    # arrange
    item = "item to remove"
    vendor = Vendor(inventory=["a", "b", "c", item])
    # act
    result = vendor.remove(item)
    # assert
    assert len(vendor.inventory) is 3
    assert item not in vendor.inventory
    assert result is item
예제 #26
0
def test_newest_by_category_with_duplicates():
    item_a = Clothing(age=2.0)
    item_b = Clothing(age=2.0)
    item_c = Clothing(age=4.0)
    tai = Vendor(inventory=[item_a, item_b, item_c])

    newest_item = tai.get_newest_by_category("Clothing")

    assert newest_item.category == "Clothing"
    assert newest_item.age == pytest.approx(2.0)
예제 #27
0
def test_get_newest_with_duplicates():
    item_a = Clothing(age=10)
    item_b = Clothing(age=6)
    item_c = Clothing(age=6)
    tai = Vendor(inventory=[item_a, item_b, item_c])

    newest_item = tai.get_newest()

    assert newest_item.age == 6
    assert newest_item == item_b
def test_adding_to_inventory():
    #arrange
    vendor = Vendor()
    item = "new item"
    #act
    result = vendor.add(item)
    #assert
    assert len(vendor.inventory) is 1
    assert item in vendor.inventory
    assert result is item
예제 #29
0
def test_best_by_category_with_duplicates():
    item_a = Clothing(condition=2.0)
    item_b = Clothing(condition=4.0)
    item_c = Clothing(condition=4.0)
    tai = Vendor(inventory=[item_a, item_b, item_c])

    best_item = tai.get_best_by_category("Clothing")

    assert best_item.category == "Clothing"
    assert best_item.condition == pytest.approx(4.0)
예제 #30
0
def test_find_newest_item():
    item_a = Clothing(condition=4, age=datetime.datetime(2021, 2, 1))
    item_b = Decor(condition=4, age=datetime.datetime(2021, 3, 1))
    item_c = Clothing(condition=4, age=datetime.datetime(2021, 4, 1))
    item_d = Decor(condition=4, age=datetime.datetime(2021, 5, 1))
    item_e = Clothing(condition=4, age=datetime.datetime(2021, 6, 1))
    tai = Vendor(inventory=[item_a, item_b, item_c, item_d, item_e])

    newest_item = tai.find_newest_item()

    assert newest_item == item_e