On 10/03/17 10:50, Eloka Chima via Tutor wrote: Please post in plain text. Your email is unreadable...
And please don't reply to the digest, and if you must, then at least delete the irrelevant bits. We've all seen these messages already and some people pay by the byte. > Thank you so much. Your guidance have been helpful, the bugs have been gotten > rid of after I reviewed the code. But 3 out of 6 of the test is correct, the > other 3 is incorrect. Take a look at it and tell me where I went wrong. >>> Below is my new code: > class ShoppingCart(object): def __init__(self): self.total = 0 > self.items = {} def add_item(self, item_name, quantity, price): for > item_name in self.items: if not item_name in self.items: > self.items["item_name"] = quantity self.total += price return > self.total return self.items def remove_item(self, item_name, quantity, > price): for item_name in self.items: if item_name in self.items: > del self.items["item_name"] self.total -= price else: if > quantity > self.items[quantity]: self.items = 0 return self.items > def checkout(self, cash_paid): if cash_paid < self.total : > self.total -= cash_paid return "Cash paid not enough"class > Shop(ShoppingCart): def __init__(self): self.quantity = 100 def > remove_item(self): self.quantity -=1 return self.quantity >>> This is the test for the program: > import unittest > class ShoppingCartTestCases(unittest.TestCase): def setUp(self): > self.cart = ShoppingCart() self.shop = Shop() def > test_cart_property_initialization(self): self.assertEqual(self.cart.total, > 0, msg='Initial value of total not correct') > self.assertIsInstance(self.cart.items, dict, msg='Items is not a dictionary') > def test_add_item(self): self.cart.add_item('Mango', 3, 10) > self.assertEqual(self.cart.total, 30, msg='Cart total not correct after > adding items') self.assertEqual(self.cart.items['Mango'], 3, msg='Quantity > of items not correct after adding item') def test_remove_item(self): > self.cart.add_item('Mango', 3, 10) self.cart.remove_item('Mango', 2, 10) > self.assertEqual(self.cart.total, 10, msg='Cart total not correct after > removing item') self.assertEqual(self.cart.items['Mango'], 1, > msg='Quantity of items not correct after removing item') def > test_checkout_returns_correct_balance(self): self.cart.add_item('Mango', 3 , 10) self.cart.add_item('Orange', 16, 10) self.assertEqual(self.cart.checkout(265), 75, msg='Balance of checkout not correct') self.assertEqual(self.cart.checkout(25), 'Cash paid not enough', msg='Balance of checkout not correct') def test_shop_is_instance_of_shopping_cart(self): self.assertTrue(isinstance(self.shop, ShoppingCart), msg='Shop is not a subclass of ShoppingCart') > def test_shop_remove_item_method(self): for i in range(15): > self.shop.remove_item() > self.assertEqual(self.shop.quantity, 85) > >>> I get this test result after running it: > 1 . test_add_itemFailure in line 20, in test_add_item > self.assertEqual(self.cart.total, 30, msg='Cart total not correct after > adding items') AssertionError: Cart total not correct after adding items2 . > test_checkout_returns_correct_balanceFailure in line 34, in > test_checkout_returns_correct_balance > self.assertEqual(self.cart.checkout(265), 75, msg='Balance of checkout not > correct') AssertionError: Balance of checkout not correct3 . > test_remove_itemFailure in line 27, in test_remove_item > self.assertEqual(self.cart.total, 10, msg='Cart total not correct after > removing item') AssertionError: Cart total not correct after removing item. -- Alan G Author of the Learn to Program web site http://www.alan-g.me.uk/ http://www.amazon.com/author/alan_gauld Follow my photo-blog on Flickr at: http://www.flickr.com/photos/alangauldphotos _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor