From 890f827eb978482d99df9e1dedb08960a3847c6b Mon Sep 17 00:00:00 2001 From: Chris McAnally Date: Fri, 23 Apr 2021 16:19:03 -0700 Subject: [PATCH 1/9] checking dictionary version --- app.py | 22 ++++++++-------- grocery_store/order.py | 34 +++++++++++++------------ grocery_store/product.py | 13 +++++----- tests/test_order.py | 54 ++++++++++++++++++++-------------------- 4 files changed, 63 insertions(+), 60 deletions(-) diff --git a/app.py b/app.py index 272ac66..8460286 100644 --- a/app.py +++ b/app.py @@ -1,17 +1,17 @@ -from grocery_store.product import Product -from grocery_store.order import Order +from grocery_store.product import create_product +from grocery_store.order import create_order, calculate_total, add_product -kamala_order = Order([], "Kamala") +kamala_order = create_order([], "Kamala") -product_1 = Product("Apples", 3.47) -product_2 = Product("Oranges", 4.89) -product_3 = Product("Macbook", 1379.99) +product_1 = create_product("Apples", 3.47) +product_2 = create_product("Oranges", 4.89) +product_3 = create_product("Macbook", 1379.99) -kamala_order.add_product(product_1) -kamala_order.add_product(product_2) -kamala_order.add_product(product_3) +add_product(kamala_order, product_1) +add_product(kamala_order, product_2) +add_product(kamala_order, product_3) -print(f"The order total for {kamala_order.customer_name} is " + - f"{kamala_order.calculate_total()}") +print(f"The order total for {kamala_order['customer_name']} is " + + f"{calculate_total(kamala_order)}") diff --git a/grocery_store/order.py b/grocery_store/order.py index 7466b1c..a9d9e04 100644 --- a/grocery_store/order.py +++ b/grocery_store/order.py @@ -1,19 +1,21 @@ -from grocery_store.product import Product - -class Order: - def __init__(self, products, customer_name): - self.products = products - self.customer_name = customer_name - - def add_product(self, product): - self.products.append(product) - - def calculate_total(self): - total = 0 - for i in range(1, len(self.products)): - total += self.products[i].price - - return total +from grocery_store.product import create_product + + +def create_order(products, customer_name): + return { + "customer_name": customer_name, + "products": products, + } + +def add_product(order, product): + order["products"].append(product) + +def calculate_total(order): + total = 0 + for i in range(1, len(order["products"])): + total += order["products"][i]["price"] + + return total diff --git a/grocery_store/product.py b/grocery_store/product.py index ea14098..a009149 100644 --- a/grocery_store/product.py +++ b/grocery_store/product.py @@ -1,10 +1,11 @@ -class Product: - def __init__(self, name, price): - self.name = name - self.price = name +def create_product(name, price): + return { + "name": name, + "price": price, + } - def __str__(self): - return f"{self.name} - ${self.price}" +def print_product(product): + return f"{product['name']} - ${product['price']}" diff --git a/tests/test_order.py b/tests/test_order.py index 86b73db..884509c 100644 --- a/tests/test_order.py +++ b/tests/test_order.py @@ -1,73 +1,73 @@ import pytest -from grocery_store.order import Order -from grocery_store.product import Product +from grocery_store.order import create_order, calculate_total, add_product +from grocery_store.product import create_product def test_order_creation(): # Arrange - product_one = Product("Trombone", 478.95) - product_two = Product("Guitar", 327.99) - product_three = Product("Triangle", 2) + product_one = create_product("Trombone", 478.95) + product_two = create_product("Guitar", 327.99) + product_three = create_product("Triangle", 2) products = [product_one, product_two, product_three] # Act - sample_order = Order(products, "Shona Frederick") + sample_order = create_order(products, "Shona Frederick") # Assert - assert len(sample_order.products) == 3 - assert sample_order.customer_name == "Shona Frederick" + assert len(sample_order["products"]) == 3 + assert sample_order["customer_name"] == "Shona Frederick" for product in products: - assert product in sample_order.products + assert product in sample_order["products"] def test_order_creation_with_no_products(): # Arrange products = [] # Act - sample_order = Order(products, "Shona Frederick") + sample_order = create_order(products, "Shona Frederick") # Assert - assert len(sample_order.products) == 0 - assert sample_order.customer_name == "Shona Frederick" + assert len(sample_order["products"]) == 0 + assert sample_order["customer_name"] == "Shona Frederick" def test_add_product(): # Arrange - product_one = Product("Trombone", 478.95) - product_two = Product("Guitar", 327.99) - product_three = Product("Triangle", 2) + product_one = create_product("Trombone", 478.95) + product_two = create_product("Guitar", 327.99) + product_three = create_product("Triangle", 2) products = [product_one, product_two, product_three] - sample_order = Order(products, "Shona Frederick") + sample_order = create_order(products, "Shona Frederick") - new_product = Product("Bass", 115) + new_product = create_product("Bass", 115) # Act - sample_order.add_product(new_product) + add_product(sample_order, new_product) # Assert - assert len(sample_order.products) == 4 - assert new_product in sample_order.products + assert len(sample_order["products"]) == 4 + assert new_product in sample_order["products"] def test_calculate_total_with_no_products(): # Arrange - order = Order([], "Shona Frederick") + order = create_order([], "Shona Frederick") # Act - total = order.calculate_total() + total = calculate_total(order) # Assert assert total == 0 def test_calculate_total_with_multiple_products(): # Arrange - product_one = Product("Trombone", 478.95) - product_two = Product("Guitar", 327.99) - product_three = Product("Triangle", 2) + product_one = create_product("Trombone", 478.95) + product_two = create_product("Guitar", 327.99) + product_three = create_product("Triangle", 2) products = [product_one, product_two, product_three] - order = Order(products, "Shona Frederick") + order = create_order(products, "Shona Frederick") # Act - total = order.calculate_total() + total = calculate_total(order) # Assert assert total == pytest.approx(478.95 + 327.99 + 2) \ No newline at end of file From 877770db48dde470fd73d6b9824675d71b2373f1 Mon Sep 17 00:00:00 2001 From: Trenisha Goslee Date: Tue, 27 Apr 2021 16:37:57 -0400 Subject: [PATCH 2/9] adding error --- grocery_store/product.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/grocery_store/product.py b/grocery_store/product.py index a009149..1b59c26 100644 --- a/grocery_store/product.py +++ b/grocery_store/product.py @@ -2,7 +2,7 @@ def create_product(name, price): return { "name": name, - "price": price, + "price": 'Oranges', } def print_product(product): From 2b938bc50d5e13a266a2e1929297bdf2fe85df3b Mon Sep 17 00:00:00 2001 From: Trenisha Goslee Date: Tue, 27 Apr 2021 17:30:29 -0400 Subject: [PATCH 3/9] updated to needed files --- .pylintrc | 0 grocery_store/__init__.pyc | Bin 0 -> 156 bytes grocery_store/order.py | 1 - requirements.txt | 8 ++++++++ 4 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 .pylintrc create mode 100644 grocery_store/__init__.pyc create mode 100644 requirements.txt diff --git a/.pylintrc b/.pylintrc new file mode 100644 index 0000000..e69de29 diff --git a/grocery_store/__init__.pyc b/grocery_store/__init__.pyc new file mode 100644 index 0000000000000000000000000000000000000000..66645b9cb4f612d6f51748145bd5fe4cc24477f1 GIT binary patch literal 156 zcmZSn%*z$v*O8FS00oRd+5w1*S%5?e14FO|NW@PANHCxg#jZdx{m|mnqGJ7$qSU<1 z;*3PS^!(zS)KvY%ltlf4%94!yJl&Mkq|)^C%)E5{^rHOa)S}Ax;*$KLRQ>q)%)HE! a_;@{_Iu4*oHo5sJr8%i~Ap1&ym;nG)ha}7Z literal 0 HcmV?d00001 diff --git a/grocery_store/order.py b/grocery_store/order.py index a9d9e04..3bdf239 100644 --- a/grocery_store/order.py +++ b/grocery_store/order.py @@ -1,4 +1,3 @@ -from grocery_store.product import create_product def create_order(products, customer_name): diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..cac37ea --- /dev/null +++ b/requirements.txt @@ -0,0 +1,8 @@ +attrs==20.3.0 +iniconfig==1.1.1 +packaging==20.9 +pluggy==0.13.1 +py==1.10.0 +pyparsing==2.4.7 +pytest==6.2.3 +toml==0.10.2 From 640cb430a5f4c2cee611e05ab3fd84dadfd64d11 Mon Sep 17 00:00:00 2001 From: Trenisha Goslee Date: Wed, 28 Apr 2021 13:23:07 -0400 Subject: [PATCH 4/9] remove unneeded files --- .pylintrc | 0 grocery_store/__init__.pyc | Bin 156 -> 0 bytes grocery_store/order.py | 6 +++++- 3 files changed, 5 insertions(+), 1 deletion(-) delete mode 100644 .pylintrc delete mode 100644 grocery_store/__init__.pyc diff --git a/.pylintrc b/.pylintrc deleted file mode 100644 index e69de29..0000000 diff --git a/grocery_store/__init__.pyc b/grocery_store/__init__.pyc deleted file mode 100644 index 66645b9cb4f612d6f51748145bd5fe4cc24477f1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 156 zcmZSn%*z$v*O8FS00oRd+5w1*S%5?e14FO|NW@PANHCxg#jZdx{m|mnqGJ7$qSU<1 z;*3PS^!(zS)KvY%ltlf4%94!yJl&Mkq|)^C%)E5{^rHOa)S}Ax;*$KLRQ>q)%)HE! a_;@{_Iu4*oHo5sJr8%i~Ap1&ym;nG)ha}7Z diff --git a/grocery_store/order.py b/grocery_store/order.py index 8456c9e..b2aa0c3 100644 --- a/grocery_store/order.py +++ b/grocery_store/order.py @@ -16,10 +16,14 @@ def calculate_total(order): total += order["products"][i]["price"] return total +<<<<<<< HEAD - \ No newline at end of file + +======= + +>>>>>>> remove unneeded files From 0b16bb8c7c69f8ef96030519574f91b3be9b78df Mon Sep 17 00:00:00 2001 From: Trenisha Goslee Date: Wed, 28 Apr 2021 13:43:51 -0400 Subject: [PATCH 5/9] fixes --- grocery_store/order.py | 13 +------------ grocery_store/product.py | 2 +- 2 files changed, 2 insertions(+), 13 deletions(-) diff --git a/grocery_store/order.py b/grocery_store/order.py index b2aa0c3..516990f 100644 --- a/grocery_store/order.py +++ b/grocery_store/order.py @@ -14,16 +14,5 @@ def calculate_total(order): total = 0 for i in range(1, len(order["products"])): total += order["products"][i]["price"] - - return total -<<<<<<< HEAD - - - - - - -======= - ->>>>>>> remove unneeded files + return total \ No newline at end of file diff --git a/grocery_store/product.py b/grocery_store/product.py index 1b59c26..57828dd 100644 --- a/grocery_store/product.py +++ b/grocery_store/product.py @@ -2,7 +2,7 @@ def create_product(name, price): return { "name": name, - "price": 'Oranges', + "price": name, } def print_product(product): From 6ba7d85397926a78528142f2c0e0ee44f1bfa39f Mon Sep 17 00:00:00 2001 From: Trenisha Goslee <60710670+tgoslee@users.noreply.github.com> Date: Wed, 28 Apr 2021 14:21:02 -0400 Subject: [PATCH 6/9] Update order.py --- grocery_store/order.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/grocery_store/order.py b/grocery_store/order.py index 516990f..10ef9fe 100644 --- a/grocery_store/order.py +++ b/grocery_store/order.py @@ -15,4 +15,4 @@ def calculate_total(order): for i in range(1, len(order["products"])): total += order["products"][i]["price"] - return total \ No newline at end of file + return total From 05f100a78b2c708e5766126e880498f57865750e Mon Sep 17 00:00:00 2001 From: Ansel Rognlie <36503186+anselrognlie@users.noreply.github.com> Date: Sun, 25 Sep 2022 12:09:41 -0700 Subject: [PATCH 7/9] Bump pytest version for python 3.10 compatibility --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index cac37ea..234c6c9 100644 --- a/requirements.txt +++ b/requirements.txt @@ -4,5 +4,5 @@ packaging==20.9 pluggy==0.13.1 py==1.10.0 pyparsing==2.4.7 -pytest==6.2.3 +pytest==7.1.1 toml==0.10.2 From dd9f2b52f314c1e1187abba0445b736b3b4cca12 Mon Sep 17 00:00:00 2001 From: Ansel Rognlie <36503186+anselrognlie@users.noreply.github.com> Date: Wed, 8 Mar 2023 14:40:55 -0800 Subject: [PATCH 8/9] Update package versions for 3.11 compatibility Asana: https://app.asana.com/0/0/1204140502871689/f --- requirements.txt | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/requirements.txt b/requirements.txt index 234c6c9..29182a7 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,8 +1,9 @@ attrs==20.3.0 iniconfig==1.1.1 packaging==20.9 -pluggy==0.13.1 -py==1.10.0 +pluggy==1.0.0 +py==1.11.0 pyparsing==2.4.7 -pytest==7.1.1 +pytest==7.2.2 toml==0.10.2 +tomli==2.0.1 From f6e72ee9e7b0d4404ac28138365293a54b5feaad Mon Sep 17 00:00:00 2001 From: Ansel Rognlie Date: Tue, 9 Sep 2025 11:09:19 -0700 Subject: [PATCH 9/9] update pytest version to avoid deprecation warnings --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 29182a7..6e8b5ce 100644 --- a/requirements.txt +++ b/requirements.txt @@ -4,6 +4,6 @@ packaging==20.9 pluggy==1.0.0 py==1.11.0 pyparsing==2.4.7 -pytest==7.2.2 +pytest==7.4.2 toml==0.10.2 tomli==2.0.1