From 465d54b6a387ef162598e4ec34be1f11de181779 Mon Sep 17 00:00:00 2001 From: Ariam Yonas Date: Tue, 4 Oct 2022 23:15:17 -0700 Subject: [PATCH 1/6] acompleted wave one, added vendor class --- swap_meet/vendor.py | 15 ++++++++++++++- tests/unit_tests/test_wave_01.py | 14 ++++++++------ 2 files changed, 22 insertions(+), 7 deletions(-) diff --git a/swap_meet/vendor.py b/swap_meet/vendor.py index 87302c056..3228e4e77 100644 --- a/swap_meet/vendor.py +++ b/swap_meet/vendor.py @@ -1,2 +1,15 @@ class Vendor: - pass \ No newline at end of file + def __init__(self,inventory = None): + if inventory is None: + inventory = [] + self.inventory = inventory + + def add(self,item): + self.inventory.append(item) + return item + + def remove(self,item): + if item not in self.inventory: + return False + self.inventory.remove(item) + return item \ No newline at end of file diff --git a/tests/unit_tests/test_wave_01.py b/tests/unit_tests/test_wave_01.py index 58478ccf9..c21c79013 100644 --- a/tests/unit_tests/test_wave_01.py +++ b/tests/unit_tests/test_wave_01.py @@ -2,12 +2,12 @@ import pytest from swap_meet.vendor import Vendor -@pytest.mark.skip +# @pytest.mark.skip def test_vendor_has_inventory(): vendor = Vendor() assert len(vendor.inventory) == 0 -@pytest.mark.skip +# @pytest.mark.skip def test_vendor_takes_optional_inventory(): inventory = ["a", "b", "c"] vendor = Vendor(inventory=inventory) @@ -16,7 +16,7 @@ def test_vendor_takes_optional_inventory(): assert "b" in vendor.inventory assert "c" in vendor.inventory -@pytest.mark.skip +# @pytest.mark.skip def test_adding_to_inventory(): vendor = Vendor() item = "new item" @@ -27,7 +27,7 @@ def test_adding_to_inventory(): assert item in vendor.inventory assert result == item -@pytest.mark.skip +# @pytest.mark.skip def test_removing_from_inventory_returns_item(): item = "item to remove" vendor = Vendor( @@ -40,7 +40,7 @@ def test_removing_from_inventory_returns_item(): assert item not in vendor.inventory assert result == item -@pytest.mark.skip +# @pytest.mark.skip def test_removing_not_found_is_false(): item = "item to remove" vendor = Vendor( @@ -49,7 +49,9 @@ def test_removing_not_found_is_false(): result = vendor.remove(item) - raise Exception("Complete this test according to comments below.") + assert result == False + + #raise Exception("Complete this test according to comments below.") # ********************************************************************* # ****** Complete Assert Portion of this test ********** # ********************************************************************* From 8ffdc57023450cf69cf4a5daef865d2e0a8826f1 Mon Sep 17 00:00:00 2001 From: Ariam Yonas Date: Tue, 4 Oct 2022 23:55:02 -0700 Subject: [PATCH 2/6] added wave two, create the Item class and the get_by_category method --- swap_meet/item.py | 22 +++++++++++++++++++++- swap_meet/vendor.py | 9 ++++++++- tests/unit_tests/test_wave_02.py | 9 +++++---- 3 files changed, 34 insertions(+), 6 deletions(-) diff --git a/swap_meet/item.py b/swap_meet/item.py index 560d759c2..2edf67f58 100644 --- a/swap_meet/item.py +++ b/swap_meet/item.py @@ -1,2 +1,22 @@ class Item: - pass \ No newline at end of file + def __init__(self,category = None, condition = 0): + if not category: + category = "" + self.category = category + self.condition = condition + + def __str__(self): + return "Hello World!" + + def condition_rank(self): + if self.condition == 1.0: + return "Poor" + elif self.contion == 2.0: + return "Acceptable" + elif self.contion == 3.0: + return "Good" + elif self.contion == 4.0: + return "Very Good" + elif self.contion == 5.0: + return "Brand New" + \ No newline at end of file diff --git a/swap_meet/vendor.py b/swap_meet/vendor.py index 3228e4e77..8c72ae853 100644 --- a/swap_meet/vendor.py +++ b/swap_meet/vendor.py @@ -12,4 +12,11 @@ def remove(self,item): if item not in self.inventory: return False self.inventory.remove(item) - return item \ No newline at end of file + return item + + def get_by_category(self,category): + category_list = [] + for item in self.inventory: + if item.category == category: + category_list.append(item) + return category_list diff --git a/tests/unit_tests/test_wave_02.py b/tests/unit_tests/test_wave_02.py index 3d7060d7c..ec1997a7b 100644 --- a/tests/unit_tests/test_wave_02.py +++ b/tests/unit_tests/test_wave_02.py @@ -2,12 +2,12 @@ from swap_meet.vendor import Vendor from swap_meet.item import Item -@pytest.mark.skip +# @pytest.mark.skip def test_items_have_blank_default_category(): item = Item() assert item.category == "" -@pytest.mark.skip +# @pytest.mark.skip def test_get_items_by_category(): item_a = Item(category="clothing") item_b = Item(category="electronics") @@ -23,7 +23,7 @@ def test_get_items_by_category(): assert item_c in items assert item_b not in items -@pytest.mark.skip +# @pytest.mark.skip def test_get_no_matching_items_by_category(): item_a = Item(category="clothing") item_b = Item(category="clothing") @@ -33,8 +33,9 @@ def test_get_no_matching_items_by_category(): ) items = vendor.get_by_category("electronics") + assert len(items) == 0 - raise Exception("Complete this test according to comments below.") + # raise Exception("Complete this test according to comments below.") # ********************************************************************* # ****** Complete Assert Portion of this test ********** # ********************************************************************* From f070bf4f5a032ee6d1354301deeaaf52340d1c28 Mon Sep 17 00:00:00 2001 From: Ariam Yonas Date: Thu, 6 Oct 2022 21:28:47 -0700 Subject: [PATCH 3/6] completed wave 3, fixed function swap_items to return true --- swap_meet/item.py | 8 ++++---- swap_meet/vendor.py | 19 +++++++++++++++---- tests/unit_tests/test_wave_03.py | 12 ++++++------ 3 files changed, 25 insertions(+), 14 deletions(-) diff --git a/swap_meet/item.py b/swap_meet/item.py index 2edf67f58..2f61e3566 100644 --- a/swap_meet/item.py +++ b/swap_meet/item.py @@ -11,12 +11,12 @@ def __str__(self): def condition_rank(self): if self.condition == 1.0: return "Poor" - elif self.contion == 2.0: + elif self.condition == 2.0: return "Acceptable" - elif self.contion == 3.0: + elif self.condition == 3.0: return "Good" - elif self.contion == 4.0: + elif self.condition == 4.0: return "Very Good" - elif self.contion == 5.0: + elif self.condition == 5.0: return "Brand New" \ No newline at end of file diff --git a/swap_meet/vendor.py b/swap_meet/vendor.py index 8c72ae853..e381963c2 100644 --- a/swap_meet/vendor.py +++ b/swap_meet/vendor.py @@ -1,8 +1,9 @@ -class Vendor: +class Vendor: def __init__(self,inventory = None): - if inventory is None: - inventory = [] - self.inventory = inventory + if not inventory: + self.inventory = [] + else: + self.inventory = inventory def add(self,item): self.inventory.append(item) @@ -20,3 +21,13 @@ def get_by_category(self,category): if item.category == category: category_list.append(item) return category_list + + def swap_items(self, friend, my_item, their_item): + if my_item in self.inventory and their_item in friend.inventory: + friend.inventory.append(my_item) + self.inventory.append(their_item) + friend.inventory.remove(their_item) + self.inventory.remove(my_item) + return True + return False + diff --git a/tests/unit_tests/test_wave_03.py b/tests/unit_tests/test_wave_03.py index 0300b638f..2d573fa52 100644 --- a/tests/unit_tests/test_wave_03.py +++ b/tests/unit_tests/test_wave_03.py @@ -2,7 +2,7 @@ from swap_meet.vendor import Vendor from swap_meet.item import Item -@pytest.mark.skip +# @pytest.mark.skip def test_item_overrides_to_string(): item = Item() @@ -10,7 +10,7 @@ def test_item_overrides_to_string(): assert stringified_item == "Hello World!" -@pytest.mark.skip +# @pytest.mark.skip def test_swap_items_returns_true(): item_a = Item(category="clothing") item_b = Item(category="clothing") @@ -38,7 +38,7 @@ def test_swap_items_returns_true(): assert item_b in jolie.inventory assert result -@pytest.mark.skip +# @pytest.mark.skip def test_swap_items_when_my_item_is_missing_returns_false(): item_a = Item(category="clothing") item_b = Item(category="clothing") @@ -65,7 +65,7 @@ def test_swap_items_when_my_item_is_missing_returns_false(): assert item_e in jolie.inventory assert not result -@pytest.mark.skip +# @pytest.mark.skip def test_swap_items_when_their_item_is_missing_returns_false(): item_a = Item(category="clothing") item_b = Item(category="clothing") @@ -92,7 +92,7 @@ def test_swap_items_when_their_item_is_missing_returns_false(): assert item_e in jolie.inventory assert not result -@pytest.mark.skip +# @pytest.mark.skip def test_swap_items_from_my_empty_returns_false(): fatimah = Vendor( inventory=[] @@ -112,7 +112,7 @@ def test_swap_items_from_my_empty_returns_false(): assert len(jolie.inventory) == 2 assert not result -@pytest.mark.skip +# @pytest.mark.skip def test_swap_items_from_their_empty_returns_false(): item_a = Item(category="clothing") item_b = Item(category="clothing") From e108b2b4083b1b89c8644eb829e5de0d106e9855 Mon Sep 17 00:00:00 2001 From: Ariam Yonas Date: Thu, 6 Oct 2022 22:18:43 -0700 Subject: [PATCH 4/6] added swap_first_item instance/wave 4 --- swap_meet/vendor.py | 12 ++++++++++++ tests/unit_tests/test_wave_05.py | 10 +++++----- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/swap_meet/vendor.py b/swap_meet/vendor.py index e381963c2..557b4881f 100644 --- a/swap_meet/vendor.py +++ b/swap_meet/vendor.py @@ -31,3 +31,15 @@ def swap_items(self, friend, my_item, their_item): return True return False + def swap_first_item(self, friend): + if not self.inventory or not friend.inventory: + return False + + self_item = self.inventory[0] + friend_item = friend.inventory[0] + + return self.swap_items(friend, self_item, friend_item) + + + + diff --git a/tests/unit_tests/test_wave_05.py b/tests/unit_tests/test_wave_05.py index 7abea06cd..fdeb063a9 100644 --- a/tests/unit_tests/test_wave_05.py +++ b/tests/unit_tests/test_wave_05.py @@ -3,25 +3,25 @@ from swap_meet.decor import Decor from swap_meet.electronics import Electronics -@pytest.mark.skip +# @pytest.mark.skip def test_clothing_has_default_category_and_to_str(): cloth = Clothing() assert cloth.category == "Clothing" assert str(cloth) == "The finest clothing you could wear." -@pytest.mark.skip +# @pytest.mark.skip def test_decor_has_default_category_and_to_str(): decor = Decor() assert decor.category == "Decor" assert str(decor) == "Something to decorate your space." -@pytest.mark.skip +# @pytest.mark.skip def test_electronics_has_default_category_and_to_str(): electronics = Electronics() assert electronics.category == "Electronics" assert str(electronics) == "A gadget full of buttons and secrets." -@pytest.mark.skip +# @pytest.mark.skip def test_items_have_condition_as_float(): items = [ Clothing(condition=3.5), @@ -31,7 +31,7 @@ def test_items_have_condition_as_float(): for item in items: assert item.condition == pytest.approx(3.5) -@pytest.mark.skip +# @pytest.mark.skip def test_items_have_condition_descriptions_that_are_the_same_regardless_of_type(): items = [ Clothing(condition=5), From 38c5ead83884f9812658c5adc1ebabc37a1f37f3 Mon Sep 17 00:00:00 2001 From: Ariam Yonas Date: Thu, 6 Oct 2022 22:21:12 -0700 Subject: [PATCH 5/6] minor corrections in wave 4 --- swap_meet/vendor.py | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/swap_meet/vendor.py b/swap_meet/vendor.py index 557b4881f..665ff93f0 100644 --- a/swap_meet/vendor.py +++ b/swap_meet/vendor.py @@ -34,12 +34,6 @@ def swap_items(self, friend, my_item, their_item): def swap_first_item(self, friend): if not self.inventory or not friend.inventory: return False - - self_item = self.inventory[0] - friend_item = friend.inventory[0] - - return self.swap_items(friend, self_item, friend_item) - - + return self.swap_items(friend, self.inventory[0], friend.inventory[0]) From 4fa852f53d58cb7f6545254664b5e4c9c10342e1 Mon Sep 17 00:00:00 2001 From: Ariam Yonas Date: Fri, 7 Oct 2022 09:44:38 -0700 Subject: [PATCH 6/6] wave 5, still in progress --- swap_meet/clothing.py | 11 ++++++++++- swap_meet/decor.py | 10 ++++++++-- swap_meet/electronics.py | 10 ++++++++-- tests/unit_tests/test_wave_04.py | 6 +++--- 4 files changed, 29 insertions(+), 8 deletions(-) diff --git a/swap_meet/clothing.py b/swap_meet/clothing.py index b8afdeb1e..050064874 100644 --- a/swap_meet/clothing.py +++ b/swap_meet/clothing.py @@ -1,2 +1,11 @@ +#from unicodedata import category +from swap_meet.item import Item + class Clothing: - pass \ No newline at end of file + def __init__(self, condition = 0): + super().__init__(category="Clothing", condition = condition) + + + def __str__(self): + return "The finest clothing you could wear." + \ No newline at end of file diff --git a/swap_meet/decor.py b/swap_meet/decor.py index eab7a9dbe..72c533af9 100644 --- a/swap_meet/decor.py +++ b/swap_meet/decor.py @@ -1,2 +1,8 @@ -class Decor: - pass \ No newline at end of file +from swap_meet.item import Item + +class Decor(Item): + def __init__(self,condition = 0): + super().__init__(condition=condition, category="Decor") + + def __str__(self): + return "Something to decorate your space." \ No newline at end of file diff --git a/swap_meet/electronics.py b/swap_meet/electronics.py index 2f9dff68a..f2c4040a1 100644 --- a/swap_meet/electronics.py +++ b/swap_meet/electronics.py @@ -1,2 +1,8 @@ -class Electronics: - pass +#from multiprocessing import Condition +from swap_meet.item import Item +class Electronics(Item): + def __init__(self, condition = 0): + super().__init__(category="Electronics", condition = condition) + + def __str__(self): + return " A gadget full of buttons and secrets." diff --git a/tests/unit_tests/test_wave_04.py b/tests/unit_tests/test_wave_04.py index 8190a4ebb..4ef21ff8e 100644 --- a/tests/unit_tests/test_wave_04.py +++ b/tests/unit_tests/test_wave_04.py @@ -2,7 +2,7 @@ from swap_meet.vendor import Vendor from swap_meet.item import Item -@pytest.mark.skip +# @pytest.mark.skip def test_swap_first_item_returns_true(): item_a = Item(category="clothing") item_b = Item(category="clothing") @@ -30,7 +30,7 @@ def test_swap_first_item_returns_true(): assert item_a in jolie.inventory assert result -@pytest.mark.skip +# @pytest.mark.skip def test_swap_first_item_from_my_empty_returns_false(): fatimah = Vendor( inventory=[] @@ -48,7 +48,7 @@ def test_swap_first_item_from_my_empty_returns_false(): assert len(jolie.inventory) == 2 assert not result -@pytest.mark.skip +# @pytest.mark.skip def test_swap_first_item_from_their_empty_returns_false(): item_a = Item(category="clothing") item_b = Item(category="clothing")