I need your help guys,pls!
i have a deadline to meet and i need to submit this code,but it passes the visible test,but not the hidden one.
heres the test
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)
and heres my own
class ShoppingCart(object):
def __init__(self,total=0,items = {} ):
self.total = total
self.items = items
def add_item(self,item_name="",quantity =0,price = 0):
self.total += price*quantity
self.items = {item_name:quantity}
def remove_item(self, item_name="", quantity =0, price=0):
self.total -= price*quantity
if self.items[item_name] <= quantity:
del self.items
else:
self.items[item_name] -= quantity
def checkout(self,cash_paid):
balance = 0
if cash_paid < self.total:
return "Cash Paid Not Enough"
else:
balance = cash_paid -self.total
return balance
class Shop(ShoppingCart):
def __init__(self,quantity=100):
self.quantity = quantity
def remove_item(self):
self.quantity -= 1
i have a deadline to meet and i need to submit this code,but it passes the visible test,but not the hidden one.
heres the test
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)
and heres my own
class ShoppingCart(object):
def __init__(self,total=0,items = {} ):
self.total = total
self.items = items
def add_item(self,item_name="",quantity =0,price = 0):
self.total += price*quantity
self.items = {item_name:quantity}
def remove_item(self, item_name="", quantity =0, price=0):
self.total -= price*quantity
if self.items[item_name] <= quantity:
del self.items
else:
self.items[item_name] -= quantity
def checkout(self,cash_paid):
balance = 0
if cash_paid < self.total:
return "Cash Paid Not Enough"
else:
balance = cash_paid -self.total
return balance
class Shop(ShoppingCart):
def __init__(self,quantity=100):
self.quantity = quantity
def remove_item(self):
self.quantity -= 1