From abbdd2772cdd1fcec58cc6284e13305752f7a348 Mon Sep 17 00:00:00 2001 From: Gabriela Webb Date: Mon, 4 Apr 2022 11:45:49 -0700 Subject: [PATCH 01/27] test commit --- swap_meet/vendor.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/swap_meet/vendor.py b/swap_meet/vendor.py index 87302c056..89e37da83 100644 --- a/swap_meet/vendor.py +++ b/swap_meet/vendor.py @@ -1,2 +1,9 @@ class Vendor: - pass \ No newline at end of file + pass + # wave 1 + + # attributes: + # inventory - an empty list + # instance methods: + # add - takes in one item and adds to inventory, returns item added + # remove - takes in one item and removes from inventory, returns item removed From c09666a4da0259282c6bf418244332617bf3dcf6 Mon Sep 17 00:00:00 2001 From: Gabriela Webb Date: Mon, 4 Apr 2022 11:54:02 -0700 Subject: [PATCH 02/27] defined vendor class; passed wave 1 test 1 --- swap_meet/vendor.py | 5 +++-- tests/unit_tests/test_wave_01.py | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/swap_meet/vendor.py b/swap_meet/vendor.py index 89e37da83..838288701 100644 --- a/swap_meet/vendor.py +++ b/swap_meet/vendor.py @@ -1,9 +1,10 @@ class Vendor: - pass # wave 1 - # attributes: # inventory - an empty list # instance methods: # add - takes in one item and adds to inventory, returns item added # remove - takes in one item and removes from inventory, returns item removed + + def __init__(self): + self.inventory = [] diff --git a/tests/unit_tests/test_wave_01.py b/tests/unit_tests/test_wave_01.py index 58478ccf9..186187487 100644 --- a/tests/unit_tests/test_wave_01.py +++ b/tests/unit_tests/test_wave_01.py @@ -2,7 +2,7 @@ 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 From 1aee68022f410371d54cb19f36c67de609d5f1d4 Mon Sep 17 00:00:00 2001 From: Gabriela Webb Date: Mon, 4 Apr 2022 12:08:24 -0700 Subject: [PATCH 03/27] passed wave 2 test 2 --- swap_meet/vendor.py | 5 +++-- tests/unit_tests/test_wave_01.py | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/swap_meet/vendor.py b/swap_meet/vendor.py index 838288701..34765b1c7 100644 --- a/swap_meet/vendor.py +++ b/swap_meet/vendor.py @@ -6,5 +6,6 @@ class Vendor: # add - takes in one item and adds to inventory, returns item added # remove - takes in one item and removes from inventory, returns item removed - def __init__(self): - self.inventory = [] + def __init__(self, inventory=[]): + self.inventory = inventory + diff --git a/tests/unit_tests/test_wave_01.py b/tests/unit_tests/test_wave_01.py index 186187487..1f37c45e0 100644 --- a/tests/unit_tests/test_wave_01.py +++ b/tests/unit_tests/test_wave_01.py @@ -7,7 +7,7 @@ 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) From d1c177b5588a52cf3a8cce0c198c386b7e2e17b9 Mon Sep 17 00:00:00 2001 From: Gabriela Webb Date: Tue, 5 Apr 2022 18:35:31 -0700 Subject: [PATCH 04/27] passed wave 1 test 3 --- swap_meet/vendor.py | 3 +++ tests/unit_tests/test_wave_01.py | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/swap_meet/vendor.py b/swap_meet/vendor.py index 34765b1c7..20c5f1caf 100644 --- a/swap_meet/vendor.py +++ b/swap_meet/vendor.py @@ -9,3 +9,6 @@ class Vendor: def __init__(self, inventory=[]): self.inventory = inventory + def add(self, item): + self.inventory.append(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 1f37c45e0..800cabbc9 100644 --- a/tests/unit_tests/test_wave_01.py +++ b/tests/unit_tests/test_wave_01.py @@ -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" From 5d94f23dbdd41d3756c425766ffef8200bcbd4f5 Mon Sep 17 00:00:00 2001 From: Gabriela Webb Date: Tue, 5 Apr 2022 18:40:02 -0700 Subject: [PATCH 05/27] passed wave 1 test 4 --- swap_meet/vendor.py | 4 ++++ tests/unit_tests/test_wave_01.py | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/swap_meet/vendor.py b/swap_meet/vendor.py index 20c5f1caf..ad369f8f6 100644 --- a/swap_meet/vendor.py +++ b/swap_meet/vendor.py @@ -11,4 +11,8 @@ def __init__(self, inventory=[]): def add(self, item): self.inventory.append(item) + return item + + def remove(self, item): + 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 800cabbc9..202b298ee 100644 --- a/tests/unit_tests/test_wave_01.py +++ b/tests/unit_tests/test_wave_01.py @@ -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( From 413ec35530b20f7a6452fcdc82a1aa99b760bb21 Mon Sep 17 00:00:00 2001 From: Gabriela Webb Date: Tue, 5 Apr 2022 18:49:14 -0700 Subject: [PATCH 06/27] passed wave 1 test 5 --- swap_meet/vendor.py | 6 ++++-- tests/unit_tests/test_wave_01.py | 7 +++++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/swap_meet/vendor.py b/swap_meet/vendor.py index ad369f8f6..5e9eeb204 100644 --- a/swap_meet/vendor.py +++ b/swap_meet/vendor.py @@ -14,5 +14,7 @@ def add(self, item): return item def remove(self, item): - self.inventory.remove(item) - return item \ No newline at end of file + if item in self.inventory: + self.inventory.remove(item) + return item + return False diff --git a/tests/unit_tests/test_wave_01.py b/tests/unit_tests/test_wave_01.py index 202b298ee..6158ef9ba 100644 --- a/tests/unit_tests/test_wave_01.py +++ b/tests/unit_tests/test_wave_01.py @@ -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,10 @@ def test_removing_not_found_is_false(): result = vendor.remove(item) - raise Exception("Complete this test according to comments below.") + # raise Exception("Complete this test according to comments below.") + # ********************************************************************* # ****** Complete Assert Portion of this test ********** # ********************************************************************* + assert result == False + assert vendor.inventory == ["a", "b", "c"] \ No newline at end of file From c4d6573e75285a3fd5b0c86def6379edcc574828 Mon Sep 17 00:00:00 2001 From: Gabriela Webb Date: Tue, 5 Apr 2022 18:55:02 -0700 Subject: [PATCH 07/27] passed wave 2 test 1 --- swap_meet/item.py | 8 +++++++- tests/unit_tests/test_wave_02.py | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/swap_meet/item.py b/swap_meet/item.py index 560d759c2..a4fd3d22f 100644 --- a/swap_meet/item.py +++ b/swap_meet/item.py @@ -1,2 +1,8 @@ class Item: - pass \ No newline at end of file + # wave 2 + # attributes: + # category - an empty string + # instance methods: + # get_by_category - takes in one string item and returns list of inventory items in the same category + def __init__(self, category=""): + self.category = category \ No newline at end of file diff --git a/tests/unit_tests/test_wave_02.py b/tests/unit_tests/test_wave_02.py index 3d7060d7c..2a65b9629 100644 --- a/tests/unit_tests/test_wave_02.py +++ b/tests/unit_tests/test_wave_02.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_items_have_blank_default_category(): item = Item() assert item.category == "" From c91fee9bb32c002bfdabd01f34910fabf1be8ee6 Mon Sep 17 00:00:00 2001 From: Gabriela Webb Date: Tue, 5 Apr 2022 19:09:06 -0700 Subject: [PATCH 08/27] passed wave 2 test 2 --- swap_meet/vendor.py | 11 +++++++++++ tests/unit_tests/test_wave_02.py | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/swap_meet/vendor.py b/swap_meet/vendor.py index 5e9eeb204..dab5d260c 100644 --- a/swap_meet/vendor.py +++ b/swap_meet/vendor.py @@ -6,6 +6,10 @@ class Vendor: # add - takes in one item and adds to inventory, returns item added # remove - takes in one item and removes from inventory, returns item removed + # wave 2 + # add instance method: + # get_by_category - takes in one string item and returns list of inventory items in the same category + def __init__(self, inventory=[]): self.inventory = inventory @@ -18,3 +22,10 @@ def remove(self, item): self.inventory.remove(item) return item return False + + def get_by_category(self, category): + same_category_items = [] + for item in self.inventory: + if item.category == category: + same_category_items.append(item) + return same_category_items \ No newline at end of file diff --git a/tests/unit_tests/test_wave_02.py b/tests/unit_tests/test_wave_02.py index 2a65b9629..0f2d4ef67 100644 --- a/tests/unit_tests/test_wave_02.py +++ b/tests/unit_tests/test_wave_02.py @@ -7,7 +7,7 @@ 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") From 869349cb2d892d15ae9f0edc1658d696fecd8dd8 Mon Sep 17 00:00:00 2001 From: Gabriela Webb Date: Tue, 5 Apr 2022 19:12:47 -0700 Subject: [PATCH 09/27] passed wave 2 test 3 --- tests/unit_tests/test_wave_02.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/tests/unit_tests/test_wave_02.py b/tests/unit_tests/test_wave_02.py index 0f2d4ef67..b84238e78 100644 --- a/tests/unit_tests/test_wave_02.py +++ b/tests/unit_tests/test_wave_02.py @@ -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") @@ -34,7 +34,11 @@ def test_get_no_matching_items_by_category(): items = vendor.get_by_category("electronics") - raise Exception("Complete this test according to comments below.") + # raise Exception("Complete this test according to comments below.") # ********************************************************************* # ****** Complete Assert Portion of this test ********** # ********************************************************************* + assert len(items) == 0 + assert item_a not in items + assert item_b not in items + assert item_c not in items From ae22cc50ae4ed2013281570cd4d3881e29541879 Mon Sep 17 00:00:00 2001 From: Gabriela Webb Date: Tue, 5 Apr 2022 20:19:15 -0700 Subject: [PATCH 10/27] passed wave 3 test 1 --- swap_meet/item.py | 8 +++++--- tests/unit_tests/test_wave_03.py | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/swap_meet/item.py b/swap_meet/item.py index a4fd3d22f..7d9cb5f91 100644 --- a/swap_meet/item.py +++ b/swap_meet/item.py @@ -2,7 +2,9 @@ class Item: # wave 2 # attributes: # category - an empty string - # instance methods: - # get_by_category - takes in one string item and returns list of inventory items in the same category + def __init__(self, category=""): - self.category = category \ No newline at end of file + self.category = category + + def __str__(self): + return "Hello World!" \ No newline at end of file diff --git a/tests/unit_tests/test_wave_03.py b/tests/unit_tests/test_wave_03.py index 0300b638f..1cd00badb 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() From 1a924fd2b77a99a05e71ffd9ffffe7b9ae826a01 Mon Sep 17 00:00:00 2001 From: Gabriela Webb Date: Tue, 5 Apr 2022 20:38:35 -0700 Subject: [PATCH 11/27] passed wave 3 tests 2-6 --- swap_meet/vendor.py | 21 ++++++++++++++++++++- tests/unit_tests/test_wave_03.py | 10 +++++----- 2 files changed, 25 insertions(+), 6 deletions(-) diff --git a/swap_meet/vendor.py b/swap_meet/vendor.py index dab5d260c..a7f8344a6 100644 --- a/swap_meet/vendor.py +++ b/swap_meet/vendor.py @@ -10,6 +10,15 @@ class Vendor: # add instance method: # get_by_category - takes in one string item and returns list of inventory items in the same category + # wave 3 + # add instance method: + # swap_items + # args: Vendor, Item(my_item), Item(their_item) + # removes my_item from vendor's inventory and adds to friend's inventory + # removes their_item from friend's inventory and adds to vendor inventory + # returns True + # returns False if my_item not in Vendor's inventory or their_item not in freind's inventory + def __init__(self, inventory=[]): self.inventory = inventory @@ -28,4 +37,14 @@ def get_by_category(self, category): for item in self.inventory: if item.category == category: same_category_items.append(item) - return same_category_items \ No newline at end of file + return same_category_items + + def swap_items(self, vendor, my_item, their_item): + if my_item not in self.inventory or their_item not in vendor.inventory: + return False + else: + self.inventory.remove(my_item) + vendor.inventory.append(my_item) + vendor.inventory.remove(their_item) + self.inventory.append(their_item) + return True \ No newline at end of file diff --git a/tests/unit_tests/test_wave_03.py b/tests/unit_tests/test_wave_03.py index 1cd00badb..2d573fa52 100644 --- a/tests/unit_tests/test_wave_03.py +++ b/tests/unit_tests/test_wave_03.py @@ -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 5d8f7ef8bb7d58330a95e3fb611a4c7606606d5d Mon Sep 17 00:00:00 2001 From: Gabriela Webb Date: Tue, 5 Apr 2022 20:50:34 -0700 Subject: [PATCH 12/27] passed wave 4 test 1 --- swap_meet/vendor.py | 40 +++++++++++++++++++++----------- tests/unit_tests/test_wave_04.py | 2 +- 2 files changed, 27 insertions(+), 15 deletions(-) diff --git a/swap_meet/vendor.py b/swap_meet/vendor.py index a7f8344a6..8767934ff 100644 --- a/swap_meet/vendor.py +++ b/swap_meet/vendor.py @@ -6,19 +6,6 @@ class Vendor: # add - takes in one item and adds to inventory, returns item added # remove - takes in one item and removes from inventory, returns item removed - # wave 2 - # add instance method: - # get_by_category - takes in one string item and returns list of inventory items in the same category - - # wave 3 - # add instance method: - # swap_items - # args: Vendor, Item(my_item), Item(their_item) - # removes my_item from vendor's inventory and adds to friend's inventory - # removes their_item from friend's inventory and adds to vendor inventory - # returns True - # returns False if my_item not in Vendor's inventory or their_item not in freind's inventory - def __init__(self, inventory=[]): self.inventory = inventory @@ -32,6 +19,10 @@ def remove(self, item): return item return False + # wave 2 + # add instance method: + # get_by_category - takes in one string item and returns list of inventory items in the same category + def get_by_category(self, category): same_category_items = [] for item in self.inventory: @@ -39,6 +30,15 @@ def get_by_category(self, category): same_category_items.append(item) return same_category_items + # wave 3 + # add instance method: + # swap_items + # args: Vendor, Item(my_item), Item(their_item) + # removes my_item from vendor's inventory and adds to friend's inventory + # removes their_item from friend's inventory and adds to vendor inventory + # returns True + # returns False if my_item not in Vendor's inventory or their_item not in freind's inventory + def swap_items(self, vendor, my_item, their_item): if my_item not in self.inventory or their_item not in vendor.inventory: return False @@ -47,4 +47,16 @@ def swap_items(self, vendor, my_item, their_item): vendor.inventory.append(my_item) vendor.inventory.remove(their_item) self.inventory.append(their_item) - return True \ No newline at end of file + return True + + # wave 4 + # add instance method: + # swap_first_item + # arg: another vendor + # removes first item from self inventory and adds friend's 1st item + # removes friend's first item from friend inventory and adds self first item + # returns True + # returns False if itself or friend have empty inventory + + def swap_first_item(self, vendor): + return self.swap_items(vendor, self.inventory[0], vendor.inventory[0]) \ No newline at end of file diff --git a/tests/unit_tests/test_wave_04.py b/tests/unit_tests/test_wave_04.py index 8190a4ebb..295fde70d 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") From bc4fa0a47f7d96146dd190ee500295b137dde36a Mon Sep 17 00:00:00 2001 From: Gabriela Webb Date: Tue, 5 Apr 2022 20:55:31 -0700 Subject: [PATCH 13/27] passed wave 4 tests 2 & 3 --- swap_meet/item.py | 4 ++++ swap_meet/vendor.py | 3 ++- tests/unit_tests/test_wave_04.py | 4 ++-- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/swap_meet/item.py b/swap_meet/item.py index 7d9cb5f91..82f9c0bc0 100644 --- a/swap_meet/item.py +++ b/swap_meet/item.py @@ -3,6 +3,10 @@ class Item: # attributes: # category - an empty string + # wave 3 + # stringify returns "Hello World!"" + + def __init__(self, category=""): self.category = category diff --git a/swap_meet/vendor.py b/swap_meet/vendor.py index 8767934ff..fafb3003d 100644 --- a/swap_meet/vendor.py +++ b/swap_meet/vendor.py @@ -59,4 +59,5 @@ def swap_items(self, vendor, my_item, their_item): # returns False if itself or friend have empty inventory def swap_first_item(self, vendor): - return self.swap_items(vendor, self.inventory[0], vendor.inventory[0]) \ No newline at end of file + if self.inventory and vendor.inventory: + return self.swap_items(vendor, self.inventory[0], vendor.inventory[0]) \ No newline at end of file diff --git a/tests/unit_tests/test_wave_04.py b/tests/unit_tests/test_wave_04.py index 295fde70d..4ef21ff8e 100644 --- a/tests/unit_tests/test_wave_04.py +++ b/tests/unit_tests/test_wave_04.py @@ -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") From b80435300fe8fb20bcfe2011452b6cee679c8f86 Mon Sep 17 00:00:00 2001 From: Gabriela Webb Date: Tue, 5 Apr 2022 23:35:25 -0700 Subject: [PATCH 14/27] passed wave 5 test 1 --- swap_meet/clothing.py | 12 ++++++++++-- tests/unit_tests/test_wave_05.py | 2 +- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/swap_meet/clothing.py b/swap_meet/clothing.py index b8afdeb1e..cf3641956 100644 --- a/swap_meet/clothing.py +++ b/swap_meet/clothing.py @@ -1,2 +1,10 @@ -class Clothing: - pass \ No newline at end of file +# wave 5 +# inherit from item class +from swap_meet.item import Item +class Clothing(Item): + def __init__(self, category="Clothing"): + super().__init__(category) + # self.category = category + + def __str__(self): + return "The finest clothing you could wear." \ No newline at end of file diff --git a/tests/unit_tests/test_wave_05.py b/tests/unit_tests/test_wave_05.py index 7abea06cd..80f066d64 100644 --- a/tests/unit_tests/test_wave_05.py +++ b/tests/unit_tests/test_wave_05.py @@ -3,7 +3,7 @@ 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" From 0744a5891def5783d6cd325d20a197c4499cbbe5 Mon Sep 17 00:00:00 2001 From: Gabriela Webb Date: Tue, 5 Apr 2022 23:37:41 -0700 Subject: [PATCH 15/27] passed wave 5 test 2 --- swap_meet/decor.py | 12 ++++++++++-- tests/unit_tests/test_wave_05.py | 2 +- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/swap_meet/decor.py b/swap_meet/decor.py index eab7a9dbe..610f69c65 100644 --- a/swap_meet/decor.py +++ b/swap_meet/decor.py @@ -1,2 +1,10 @@ -class Decor: - pass \ No newline at end of file +# wave 5 +# inherit from item class +from swap_meet.item import Item +class Decor(Item): + def __init__(self, category="Decor"): + super().__init__(category) + # self.category = category + + def __str__(self): + return "Something to decorate your space." \ No newline at end of file diff --git a/tests/unit_tests/test_wave_05.py b/tests/unit_tests/test_wave_05.py index 80f066d64..597277d2f 100644 --- a/tests/unit_tests/test_wave_05.py +++ b/tests/unit_tests/test_wave_05.py @@ -9,7 +9,7 @@ def test_clothing_has_default_category_and_to_str(): 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" From 38f3add7618d2bbfb5b2b6be35f5cb502a1551ce Mon Sep 17 00:00:00 2001 From: Gabriela Webb Date: Tue, 5 Apr 2022 23:39:34 -0700 Subject: [PATCH 16/27] passed wave 5 test 3 --- swap_meet/electronics.py | 12 ++++++++++-- tests/unit_tests/test_wave_05.py | 2 +- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/swap_meet/electronics.py b/swap_meet/electronics.py index 2f9dff68a..22d3639e8 100644 --- a/swap_meet/electronics.py +++ b/swap_meet/electronics.py @@ -1,2 +1,10 @@ -class Electronics: - pass +# wave 5 +# inherit from item class +from swap_meet.item import Item +class Electronics(Item): + def __init__(self, category="Electronics"): + super().__init__(category) + # self.category = category + + def __str__(self): + return "A gadget full of buttons and secrets." \ No newline at end of file diff --git a/tests/unit_tests/test_wave_05.py b/tests/unit_tests/test_wave_05.py index 597277d2f..414392420 100644 --- a/tests/unit_tests/test_wave_05.py +++ b/tests/unit_tests/test_wave_05.py @@ -15,7 +15,7 @@ def test_decor_has_default_category_and_to_str(): 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" From cbe51094b86814b69b91664a2b18b02899e4f895 Mon Sep 17 00:00:00 2001 From: Gabriela Webb Date: Tue, 5 Apr 2022 23:52:45 -0700 Subject: [PATCH 17/27] passed wave 5 test 4 --- swap_meet/clothing.py | 5 +++-- swap_meet/decor.py | 5 +++-- swap_meet/electronics.py | 5 +++-- swap_meet/item.py | 8 +++++--- tests/unit_tests/test_wave_05.py | 2 +- 5 files changed, 15 insertions(+), 10 deletions(-) diff --git a/swap_meet/clothing.py b/swap_meet/clothing.py index cf3641956..4e69e927e 100644 --- a/swap_meet/clothing.py +++ b/swap_meet/clothing.py @@ -1,9 +1,10 @@ # wave 5 # inherit from item class +# add condition attribute from swap_meet.item import Item class Clothing(Item): - def __init__(self, category="Clothing"): - super().__init__(category) + def __init__(self, category="Clothing", condition=0): + super().__init__(category, condition) # self.category = category def __str__(self): diff --git a/swap_meet/decor.py b/swap_meet/decor.py index 610f69c65..e0f320ecc 100644 --- a/swap_meet/decor.py +++ b/swap_meet/decor.py @@ -1,9 +1,10 @@ # wave 5 # inherit from item class +# add condition attribute from swap_meet.item import Item class Decor(Item): - def __init__(self, category="Decor"): - super().__init__(category) + def __init__(self, category="Decor", condition=0): + super().__init__(category, condition) # self.category = category def __str__(self): diff --git a/swap_meet/electronics.py b/swap_meet/electronics.py index 22d3639e8..a9fc18b8c 100644 --- a/swap_meet/electronics.py +++ b/swap_meet/electronics.py @@ -1,9 +1,10 @@ # wave 5 # inherit from item class +# add condition attribute from swap_meet.item import Item class Electronics(Item): - def __init__(self, category="Electronics"): - super().__init__(category) + def __init__(self, category="Electronics", condition=0): + super().__init__(category, condition) # self.category = category def __str__(self): diff --git a/swap_meet/item.py b/swap_meet/item.py index 82f9c0bc0..0e0dde193 100644 --- a/swap_meet/item.py +++ b/swap_meet/item.py @@ -1,4 +1,3 @@ -class Item: # wave 2 # attributes: # category - an empty string @@ -6,9 +5,12 @@ class Item: # wave 3 # stringify returns "Hello World!"" - - def __init__(self, category=""): + # wave 5 + # add condition attribute +class Item: + def __init__(self, category="", condition=0): self.category = category + self.condition = condition def __str__(self): return "Hello World!" \ No newline at end of file diff --git a/tests/unit_tests/test_wave_05.py b/tests/unit_tests/test_wave_05.py index 414392420..27c449469 100644 --- a/tests/unit_tests/test_wave_05.py +++ b/tests/unit_tests/test_wave_05.py @@ -21,7 +21,7 @@ def test_electronics_has_default_category_and_to_str(): 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), From 6d56ccd227bb5331ee0e1e925360e28fa6968c42 Mon Sep 17 00:00:00 2001 From: Gabriela Webb Date: Tue, 5 Apr 2022 23:59:32 -0700 Subject: [PATCH 18/27] passed wave 5 test 5 --- swap_meet/item.py | 18 +++++++++++++++++- tests/unit_tests/test_wave_05.py | 2 +- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/swap_meet/item.py b/swap_meet/item.py index 0e0dde193..45a644b69 100644 --- a/swap_meet/item.py +++ b/swap_meet/item.py @@ -7,10 +7,26 @@ # wave 5 # add condition attribute + # add instance method condition_description class Item: def __init__(self, category="", condition=0): self.category = category self.condition = condition def __str__(self): - return "Hello World!" \ No newline at end of file + return "Hello World!" + + def condition_description(self): + if self.condition == 0: + description = "Trash" + elif self.condition == 1: + description = "It Works" + elif self.condition == 2: + description = "Decent" + elif self.condition == 3: + description = "Good" + elif self.condition == 4: + description = "Like New" + elif self.condition == 5: + description = "New" + return description \ No newline at end of file diff --git a/tests/unit_tests/test_wave_05.py b/tests/unit_tests/test_wave_05.py index 27c449469..fdeb063a9 100644 --- a/tests/unit_tests/test_wave_05.py +++ b/tests/unit_tests/test_wave_05.py @@ -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 522bb6b9fbc8a9ad98bf0e84ec6e70a32dbf842a Mon Sep 17 00:00:00 2001 From: Gabriela Webb Date: Wed, 6 Apr 2022 15:20:24 -0700 Subject: [PATCH 19/27] passed first set of integration tests --- swap_meet/vendor.py | 15 +++++++++++++-- tests/integration_tests/test_wave_01_02_03.py | 2 +- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/swap_meet/vendor.py b/swap_meet/vendor.py index fafb3003d..44fa7d2b2 100644 --- a/swap_meet/vendor.py +++ b/swap_meet/vendor.py @@ -6,8 +6,10 @@ class Vendor: # add - takes in one item and adds to inventory, returns item added # remove - takes in one item and removes from inventory, returns item removed - def __init__(self, inventory=[]): + def __init__(self, inventory=None): self.inventory = inventory + if self.inventory is None: + self.inventory = [] def add(self, item): self.inventory.append(item) @@ -60,4 +62,13 @@ def swap_items(self, vendor, my_item, their_item): def swap_first_item(self, vendor): if self.inventory and vendor.inventory: - return self.swap_items(vendor, self.inventory[0], vendor.inventory[0]) \ No newline at end of file + return self.swap_items(vendor, self.inventory[0], vendor.inventory[0]) + + # wave 6 + # add instance method: + # get_best_by_category + # swap_best_by_category + # arg: str that represents a category + # gets item with best condition in a certain category + # returns this item (only a single item even if there are duplicates) + # returns None if no matching items in inventory \ No newline at end of file diff --git a/tests/integration_tests/test_wave_01_02_03.py b/tests/integration_tests/test_wave_01_02_03.py index 9912414da..25707d998 100644 --- a/tests/integration_tests/test_wave_01_02_03.py +++ b/tests/integration_tests/test_wave_01_02_03.py @@ -2,7 +2,7 @@ from swap_meet.vendor import Vendor from swap_meet.item import Item -@pytest.mark.skip +# @pytest.mark.skip @pytest.mark.integration_test def test_integration_wave_01_02_03(): # make a vendor From 002abba9e09e5b6eef003780971cd3748a3e9f47 Mon Sep 17 00:00:00 2001 From: Gabriela Webb Date: Wed, 6 Apr 2022 15:36:36 -0700 Subject: [PATCH 20/27] passed wave 6 test 1 --- swap_meet/vendor.py | 10 +++++++++- tests/unit_tests/test_wave_06.py | 2 +- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/swap_meet/vendor.py b/swap_meet/vendor.py index 44fa7d2b2..7dfa952fb 100644 --- a/swap_meet/vendor.py +++ b/swap_meet/vendor.py @@ -71,4 +71,12 @@ def swap_first_item(self, vendor): # arg: str that represents a category # gets item with best condition in a certain category # returns this item (only a single item even if there are duplicates) - # returns None if no matching items in inventory \ No newline at end of file + # returns None if no matching items in inventory + + def get_best_by_category(self, category): + get_same_category = self.get_by_category(category) + best_item = get_same_category[0] + for item in get_same_category: + if item.condition > best_item.condition: + best_item = item + return best_item \ No newline at end of file diff --git a/tests/unit_tests/test_wave_06.py b/tests/unit_tests/test_wave_06.py index 1f7065ab4..b7ce084d2 100644 --- a/tests/unit_tests/test_wave_06.py +++ b/tests/unit_tests/test_wave_06.py @@ -4,7 +4,7 @@ from swap_meet.decor import Decor from swap_meet.electronics import Electronics -@pytest.mark.skip +# @pytest.mark.skip def test_best_by_category(): item_a = Clothing(condition=2.0) item_b = Decor(condition=2.0) From a904e31ba0364cde8e0b7f5f205143b2d928cbdd Mon Sep 17 00:00:00 2001 From: Gabriela Webb Date: Wed, 6 Apr 2022 18:51:09 -0700 Subject: [PATCH 21/27] passed wave 6 tests 2 & 3 --- swap_meet/vendor.py | 11 +++++++---- tests/unit_tests/test_wave_06.py | 4 ++-- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/swap_meet/vendor.py b/swap_meet/vendor.py index 7dfa952fb..f1d396cfc 100644 --- a/swap_meet/vendor.py +++ b/swap_meet/vendor.py @@ -75,8 +75,11 @@ def swap_first_item(self, vendor): def get_best_by_category(self, category): get_same_category = self.get_by_category(category) - best_item = get_same_category[0] - for item in get_same_category: - if item.condition > best_item.condition: - best_item = item + if not get_same_category: + best_item = None + else: + best_item = get_same_category[0] + for item in get_same_category: + if item.condition > best_item.condition: + best_item = item return best_item \ No newline at end of file diff --git a/tests/unit_tests/test_wave_06.py b/tests/unit_tests/test_wave_06.py index b7ce084d2..7ea170bb6 100644 --- a/tests/unit_tests/test_wave_06.py +++ b/tests/unit_tests/test_wave_06.py @@ -20,7 +20,7 @@ def test_best_by_category(): assert best_item.category == "Clothing" assert best_item.condition == pytest.approx(4.0) -@pytest.mark.skip +# @pytest.mark.skip def test_best_by_category_no_matches_is_none(): item_a = Decor(condition=2.0) item_b = Decor(condition=2.0) @@ -33,7 +33,7 @@ def test_best_by_category_no_matches_is_none(): assert best_item is None -@pytest.mark.skip +# @pytest.mark.skip def test_best_by_category_with_duplicates(): # Arrange item_a = Clothing(condition=2.0) From a9f0ba3579a433c206c0a354236a18d063f6c86f Mon Sep 17 00:00:00 2001 From: Gabriela Webb Date: Wed, 6 Apr 2022 21:36:24 -0700 Subject: [PATCH 22/27] passed wave 6 test 4 --- swap_meet/vendor.py | 26 ++++++++++++++++++-------- tests/unit_tests/test_wave_06.py | 13 +++++++++++-- 2 files changed, 29 insertions(+), 10 deletions(-) diff --git a/swap_meet/vendor.py b/swap_meet/vendor.py index f1d396cfc..707e32e53 100644 --- a/swap_meet/vendor.py +++ b/swap_meet/vendor.py @@ -65,13 +65,17 @@ def swap_first_item(self, vendor): return self.swap_items(vendor, self.inventory[0], vendor.inventory[0]) # wave 6 - # add instance method: - # get_best_by_category - # swap_best_by_category - # arg: str that represents a category - # gets item with best condition in a certain category - # returns this item (only a single item even if there are duplicates) - # returns None if no matching items in inventory + # add instance methods: + # get_best_by_category + # arg: str that represents a category + # gets item with best condition in a certain category + # returns this item (only a single item even if there are duplicates) + # returns None if no matching items in inventory + # swap_best_by_category + # args: other - vendor instance, my_priority - category vendor wants, their_priority - category other wants + # best item in my inventory that matches their_prority category is swapped with the best item in other's inventory that matches my priority + # returns True + # if vendor or other have no match, return False def get_best_by_category(self, category): get_same_category = self.get_by_category(category) @@ -82,4 +86,10 @@ def get_best_by_category(self, category): for item in get_same_category: if item.condition > best_item.condition: best_item = item - return best_item \ No newline at end of file + return best_item + + def swap_best_by_category(self, other, my_priority, their_priority): + self_best_item = self.get_best_by_category(their_priority) + their_best_item = other.get_best_by_category(my_priority) + self.swap_items(other, self_best_item, their_best_item) + return True \ No newline at end of file diff --git a/tests/unit_tests/test_wave_06.py b/tests/unit_tests/test_wave_06.py index 7ea170bb6..c6ff042b5 100644 --- a/tests/unit_tests/test_wave_06.py +++ b/tests/unit_tests/test_wave_06.py @@ -50,7 +50,7 @@ def test_best_by_category_with_duplicates(): assert best_item.category == "Clothing" assert best_item.condition == pytest.approx(4.0) -@pytest.mark.skip +# @pytest.mark.skip def test_swap_best_by_category(): # Arrange # me @@ -76,14 +76,23 @@ def test_swap_best_by_category(): their_priority="Decor" ) - raise Exception("Complete this test according to comments below.") + # raise Exception("Complete this test according to comments below.") # ********************************************************************* # ****** Complete Assert Portion of this test ********** # ********************************************************************* # Assertions should check: # - That the results is truthy + assert result == True # - That tai and jesse's inventories are the correct length + assert len(tai.inventory) == 3 + assert len(jesse.inventory) == 3 # - That all the correct items are in tai and jesse's inventories, including the items which were swapped from one vendor to the other + assert item_f in tai.inventory + assert item_a in tai.inventory + assert item_b in tai.inventory + assert item_c in jesse.inventory + assert item_d in jesse.inventory + assert item_e in jesse.inventory @pytest.mark.skip def test_swap_best_by_category_reordered(): From ad47229c6bf1851c5fab7d34e92b6a9650d4d25b Mon Sep 17 00:00:00 2001 From: Gabriela Webb Date: Wed, 6 Apr 2022 21:38:53 -0700 Subject: [PATCH 23/27] passed wave 6 test 5 --- tests/unit_tests/test_wave_06.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/tests/unit_tests/test_wave_06.py b/tests/unit_tests/test_wave_06.py index c6ff042b5..3bca765d7 100644 --- a/tests/unit_tests/test_wave_06.py +++ b/tests/unit_tests/test_wave_06.py @@ -94,7 +94,7 @@ def test_swap_best_by_category(): assert item_d in jesse.inventory assert item_e in jesse.inventory -@pytest.mark.skip +# @pytest.mark.skip def test_swap_best_by_category_reordered(): # Arrange item_a = Decor(condition=2.0) @@ -118,14 +118,23 @@ def test_swap_best_by_category_reordered(): their_priority="Decor" ) - raise Exception("Complete this test according to comments below.") + # raise Exception("Complete this test according to comments below.") # ********************************************************************* # ****** Complete Assert Portion of this test ********** # ********************************************************************* # Assertions should check: # - That result is truthy + assert result == True # - That tai and jesse's inventories are the correct length + assert len(tai.inventory) == 3 + assert len(jesse.inventory) == 3 # - That all the correct items are in tai and jesse's inventories, and that the items that were swapped are not there + assert item_f in tai.inventory + assert item_a in tai.inventory + assert item_b in tai.inventory + assert item_c in jesse.inventory + assert item_d in jesse.inventory + assert item_e in jesse.inventory @pytest.mark.skip def test_swap_best_by_category_no_inventory_is_false(): From c2a3456dc84852ba6046aaeef9c7630e763b1f88 Mon Sep 17 00:00:00 2001 From: Gabriela Webb Date: Wed, 6 Apr 2022 21:43:55 -0700 Subject: [PATCH 24/27] passed wave 6 test 6 --- swap_meet/vendor.py | 12 ++++++++---- tests/unit_tests/test_wave_06.py | 2 +- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/swap_meet/vendor.py b/swap_meet/vendor.py index 707e32e53..e5fc7a761 100644 --- a/swap_meet/vendor.py +++ b/swap_meet/vendor.py @@ -89,7 +89,11 @@ def get_best_by_category(self, category): return best_item def swap_best_by_category(self, other, my_priority, their_priority): - self_best_item = self.get_best_by_category(their_priority) - their_best_item = other.get_best_by_category(my_priority) - self.swap_items(other, self_best_item, their_best_item) - return True \ No newline at end of file + if not self.inventory: + return False + else: + self_best_item = self.get_best_by_category(their_priority) + their_best_item = other.get_best_by_category(my_priority) + self.swap_items(other, self_best_item, their_best_item) + return True + \ No newline at end of file diff --git a/tests/unit_tests/test_wave_06.py b/tests/unit_tests/test_wave_06.py index 3bca765d7..efddff439 100644 --- a/tests/unit_tests/test_wave_06.py +++ b/tests/unit_tests/test_wave_06.py @@ -136,7 +136,7 @@ def test_swap_best_by_category_reordered(): assert item_d in jesse.inventory assert item_e in jesse.inventory -@pytest.mark.skip +# @pytest.mark.skip def test_swap_best_by_category_no_inventory_is_false(): tai = Vendor( inventory=[] From 81da0541affc24d49f6dd062d857f3733bbc7061 Mon Sep 17 00:00:00 2001 From: Gabriela Webb Date: Wed, 6 Apr 2022 21:45:19 -0700 Subject: [PATCH 25/27] passed wave 6 test 7 --- swap_meet/vendor.py | 2 +- tests/unit_tests/test_wave_06.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/swap_meet/vendor.py b/swap_meet/vendor.py index e5fc7a761..835c3144e 100644 --- a/swap_meet/vendor.py +++ b/swap_meet/vendor.py @@ -89,7 +89,7 @@ def get_best_by_category(self, category): return best_item def swap_best_by_category(self, other, my_priority, their_priority): - if not self.inventory: + if not self.inventory or not other.inventory: return False else: self_best_item = self.get_best_by_category(their_priority) diff --git a/tests/unit_tests/test_wave_06.py b/tests/unit_tests/test_wave_06.py index efddff439..7a8e69436 100644 --- a/tests/unit_tests/test_wave_06.py +++ b/tests/unit_tests/test_wave_06.py @@ -162,7 +162,7 @@ def test_swap_best_by_category_no_inventory_is_false(): assert item_b in jesse.inventory assert item_c in jesse.inventory -@pytest.mark.skip +# @pytest.mark.skip def test_swap_best_by_category_no_other_inventory_is_false(): item_a = Clothing(condition=2.0) item_b = Decor(condition=4.0) From 7a7ce73ae91d5a14a1f34faf8cf0260755cd16c2 Mon Sep 17 00:00:00 2001 From: Gabriela Webb Date: Wed, 6 Apr 2022 23:56:03 -0700 Subject: [PATCH 26/27] passed wave 6 tests 8 & 9; passed second set integration tests --- swap_meet/vendor.py | 5 ++-- tests/integration_tests/test_wave_04_05_06.py | 2 +- tests/unit_tests/test_wave_06.py | 27 ++++++++++++++++--- 3 files changed, 27 insertions(+), 7 deletions(-) diff --git a/swap_meet/vendor.py b/swap_meet/vendor.py index 835c3144e..96ec2425d 100644 --- a/swap_meet/vendor.py +++ b/swap_meet/vendor.py @@ -91,9 +91,10 @@ def get_best_by_category(self, category): def swap_best_by_category(self, other, my_priority, their_priority): if not self.inventory or not other.inventory: return False + elif not self.get_by_category(their_priority) or not other.get_by_category(my_priority): + return False else: self_best_item = self.get_best_by_category(their_priority) their_best_item = other.get_best_by_category(my_priority) self.swap_items(other, self_best_item, their_best_item) - return True - \ No newline at end of file + return True \ No newline at end of file diff --git a/tests/integration_tests/test_wave_04_05_06.py b/tests/integration_tests/test_wave_04_05_06.py index 4d0be9909..91b1362b6 100644 --- a/tests/integration_tests/test_wave_04_05_06.py +++ b/tests/integration_tests/test_wave_04_05_06.py @@ -4,7 +4,7 @@ from swap_meet.decor import Decor from swap_meet.electronics import Electronics -@pytest.mark.skip +# @pytest.mark.skip @pytest.mark.integration_test def test_integration_wave_04_05_06(): camila = Vendor() diff --git a/tests/unit_tests/test_wave_06.py b/tests/unit_tests/test_wave_06.py index 7a8e69436..b632b15b2 100644 --- a/tests/unit_tests/test_wave_06.py +++ b/tests/unit_tests/test_wave_06.py @@ -188,7 +188,7 @@ def test_swap_best_by_category_no_other_inventory_is_false(): assert item_b in tai.inventory assert item_c in tai.inventory -@pytest.mark.skip +# @pytest.mark.skip def test_swap_best_by_category_no_match_is_false(): # Arrange item_a = Decor(condition=2.0) @@ -212,16 +212,26 @@ def test_swap_best_by_category_no_match_is_false(): their_priority="Clothing" ) - raise Exception("Complete this test according to comments below.") + # raise Exception("Complete this test according to comments below.") # ********************************************************************* # ****** Complete Assert Portion of this test ********** # ********************************************************************* # Assertions should check: # - That result is falsy + assert not result # - That tai and jesse's inventories are the correct length + assert len(tai.inventory) == 3 + assert len(jesse.inventory) == 3 # - That all the correct items are in tai and jesse's inventories + 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 + -@pytest.mark.skip +# @pytest.mark.skip def test_swap_best_by_category_no_other_match_is_false(): # Arrange item_a = Decor(condition=2.0) @@ -245,11 +255,20 @@ def test_swap_best_by_category_no_other_match_is_false(): their_priority="Decor" ) - raise Exception("Complete this test according to comments below.") + # raise Exception("Complete this test according to comments below.") # ********************************************************************* # ****** Complete Assert Portion of this test ********** # ********************************************************************* # Assertions should check: # - That result is falsy + assert not result # - That tai and jesse's inventories are the correct length + assert len(tai.inventory) == 3 + assert len(jesse.inventory) == 3 # - That all the correct items are in tai and jesse's inventories + 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 \ No newline at end of file From 369ae79cd09c0fa4186da6d4d522c1c16766310a Mon Sep 17 00:00:00 2001 From: Gabriela Webb Date: Fri, 8 Apr 2022 00:03:48 -0700 Subject: [PATCH 27/27] cleaned up comments and formatting --- swap_meet/clothing.py | 5 +--- swap_meet/decor.py | 5 +--- swap_meet/electronics.py | 5 +--- swap_meet/item.py | 11 +------ swap_meet/vendor.py | 63 ++++++++++++---------------------------- 5 files changed, 22 insertions(+), 67 deletions(-) diff --git a/swap_meet/clothing.py b/swap_meet/clothing.py index 4e69e927e..b38c211cd 100644 --- a/swap_meet/clothing.py +++ b/swap_meet/clothing.py @@ -1,11 +1,8 @@ -# wave 5 -# inherit from item class -# add condition attribute from swap_meet.item import Item + class Clothing(Item): def __init__(self, category="Clothing", condition=0): super().__init__(category, condition) - # self.category = category 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 e0f320ecc..c13a8dcc8 100644 --- a/swap_meet/decor.py +++ b/swap_meet/decor.py @@ -1,11 +1,8 @@ -# wave 5 -# inherit from item class -# add condition attribute from swap_meet.item import Item + class Decor(Item): def __init__(self, category="Decor", condition=0): super().__init__(category, condition) - # self.category = category 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 a9fc18b8c..76813db15 100644 --- a/swap_meet/electronics.py +++ b/swap_meet/electronics.py @@ -1,11 +1,8 @@ -# wave 5 -# inherit from item class -# add condition attribute from swap_meet.item import Item + class Electronics(Item): def __init__(self, category="Electronics", condition=0): super().__init__(category, condition) - # self.category = category def __str__(self): return "A gadget full of buttons and secrets." \ No newline at end of file diff --git a/swap_meet/item.py b/swap_meet/item.py index 45a644b69..5f67da4bd 100644 --- a/swap_meet/item.py +++ b/swap_meet/item.py @@ -1,13 +1,3 @@ - # wave 2 - # attributes: - # category - an empty string - - # wave 3 - # stringify returns "Hello World!"" - - # wave 5 - # add condition attribute - # add instance method condition_description class Item: def __init__(self, category="", condition=0): self.category = category @@ -17,6 +7,7 @@ def __str__(self): return "Hello World!" def condition_description(self): + '''returns string description of item condition''' if self.condition == 0: description = "Trash" elif self.condition == 1: diff --git a/swap_meet/vendor.py b/swap_meet/vendor.py index 96ec2425d..c5adbd6f7 100644 --- a/swap_meet/vendor.py +++ b/swap_meet/vendor.py @@ -1,47 +1,31 @@ class Vendor: - # wave 1 - # attributes: - # inventory - an empty list - # instance methods: - # add - takes in one item and adds to inventory, returns item added - # remove - takes in one item and removes from inventory, returns item removed - def __init__(self, inventory=None): self.inventory = inventory if self.inventory is None: self.inventory = [] - + def add(self, item): + '''adds item to inventory''' self.inventory.append(item) return item def remove(self, item): + '''removes item from inventory''' if item in self.inventory: self.inventory.remove(item) return item return False - # wave 2 - # add instance method: - # get_by_category - takes in one string item and returns list of inventory items in the same category - def get_by_category(self, category): + '''returns list of items of a given category from inventory''' same_category_items = [] for item in self.inventory: if item.category == category: same_category_items.append(item) return same_category_items - # wave 3 - # add instance method: - # swap_items - # args: Vendor, Item(my_item), Item(their_item) - # removes my_item from vendor's inventory and adds to friend's inventory - # removes their_item from friend's inventory and adds to vendor inventory - # returns True - # returns False if my_item not in Vendor's inventory or their_item not in freind's inventory - def swap_items(self, vendor, my_item, their_item): + '''swaps items between vendor inventories''' if my_item not in self.inventory or their_item not in vendor.inventory: return False else: @@ -51,33 +35,17 @@ def swap_items(self, vendor, my_item, their_item): self.inventory.append(their_item) return True - # wave 4 - # add instance method: - # swap_first_item - # arg: another vendor - # removes first item from self inventory and adds friend's 1st item - # removes friend's first item from friend inventory and adds self first item - # returns True - # returns False if itself or friend have empty inventory - def swap_first_item(self, vendor): + ''' + swaps items between vendor inventories + by first position in inventory + ''' if self.inventory and vendor.inventory: - return self.swap_items(vendor, self.inventory[0], vendor.inventory[0]) - - # wave 6 - # add instance methods: - # get_best_by_category - # arg: str that represents a category - # gets item with best condition in a certain category - # returns this item (only a single item even if there are duplicates) - # returns None if no matching items in inventory - # swap_best_by_category - # args: other - vendor instance, my_priority - category vendor wants, their_priority - category other wants - # best item in my inventory that matches their_prority category is swapped with the best item in other's inventory that matches my priority - # returns True - # if vendor or other have no match, return False + return self.swap_items(vendor, self.inventory[0], \ + vendor.inventory[0]) def get_best_by_category(self, category): + '''returns best condition item of a given category''' get_same_category = self.get_by_category(category) if not get_same_category: best_item = None @@ -89,9 +57,14 @@ def get_best_by_category(self, category): return best_item def swap_best_by_category(self, other, my_priority, their_priority): + ''' + swaps best condition items of a given category + between vendor inventories + ''' if not self.inventory or not other.inventory: return False - elif not self.get_by_category(their_priority) or not other.get_by_category(my_priority): + elif not self.get_by_category(their_priority) or \ + not other.get_by_category(my_priority): return False else: self_best_item = self.get_best_by_category(their_priority)