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

Reply via email to