コード例 #1
0
def main():
    print("====> first cart")
    cart = ShoppingCart()
    cart.add_item()
    cart.remove_item()
    cart.add_item()
    cart.add_item()
    cart.add_item()
    cart.remove_item()
    cart.checkout()
    cart.pay()

    # Go shopping again
    print("====> second cart")
    cart = ShoppingCart()
    cart.add_item()
    cart.add_item()
    cart.checkout()
    cart.empty_cart()
    cart.add_item()
    cart.checkout()
    cart.pay()

    # Try to add another item
    print('====> Expect an error here.')
    cart.add_item()
    def test_shopping_cart_handle_offers_ten_percent_discount(self):
        catalog = FakeCatalog()
        toothbrush = Product("toothbrush", ProductUnit.EACH)
        apples = Product("apples", ProductUnit.KILO)
        catalog.add_product(toothbrush, 0.99)
        catalog.add_product(apples, 1.99)

        # teller special offers 10% discount on toothbrush
        teller = Teller(catalog)
        teller.add_special_offer(SpecialOfferType.TEN_PERCENT_DISCOUNT,
                                 toothbrush, 10.0)
        #offers = teller.offers
        #discount = Discount(product, "2 for " + str(offer.argument), discount_n)

        # add apples to shopping cart
        cart = ShoppingCart()
        cart.add_item_quantity(apples, 2.5)
        #cart.add_item_quantity(toothbrush, 2)

        receipt = teller.checks_out_articles_from(cart)

        # add apples to shopping cart : check no discounts and 1 item
        self.assertEqual([], receipt.discounts)
        self.assertEqual(len(cart.items), len(receipt.items))
        receipt_item = receipt.items[0]
        self.assertEqual(apples, receipt_item.product)
        self.assertEqual(catalog.unit_price(apples), receipt_item.price)
        self.assertEqual(cart.product_quantities[apples],
                         receipt_item.quantity)
        self.assertAlmostEqual(
            cart.product_quantities[apples] * catalog.unit_price(apples),
            receipt.total_price(), 0.01)
    def test_shopping_cart_add_item(self):
        cart = ShoppingCart()
        apples = Product("apples", ProductUnit.KILO)

        self.assertEqual(0, len(cart._items))
        cart.add_item(apples)
        self.assertEqual(1, len(cart._items))
コード例 #4
0
    def setUp(self):
        """ Método que se ejecuta antes de cada prueba """
        self.pan = Item('pan', 12)
        self.jugo = Item('jugo', 5)

        self.shopping_cart = ShoppingCart()
        self.shopping_cart.add_item(self.pan)
コード例 #5
0
	def setUp(self):
		#print("Método setUp antes de la prueba")
		self.pan = Item("Pan",7.0)
		self.jugo = Item("Jugo",5.0)

		self.shopping_cart = ShoppingCart()
		self.shopping_cart.add_item(self.pan)
コード例 #6
0
def test_ten_percent_discount():
    catalog = FakeCatalog()
    toothbrush = Product("toothbrush", ProductUnit.EACH)
    catalog.add_product(toothbrush, 0.99)

    apples = Product("apples", ProductUnit.KILO)
    catalog.add_product(apples, 1.99)

    teller = Teller(catalog)
    teller.add_special_offer(SpecialOfferType.TEN_PERCENT_DISCOUNT, toothbrush,
                             10.0)

    cart = ShoppingCart()
    cart.add_item_quantity(apples, 2.5)

    receipt = teller.checks_out_articles_from(cart)

    assert 4.975 == pytest.approx(receipt.total_price(), 0.01)
    assert [] == receipt.discounts
    assert 1 == len(receipt.items)
    receipt_item = receipt.items[0]
    assert apples == receipt_item.product
    assert 1.99 == receipt_item.price
    assert 2.5 * 1.99 == pytest.approx(receipt_item.total_price, 0.01)
    assert 2.5 == receipt_item.quantity
コード例 #7
0
def test_no_bulk_discount():
    cart = ShoppingCart()

    product = 'Chair'
    cart.scan(product)
    cart.scan(product)

    assert cart.total_price() == 200
    def test_shopping_cart_add_item_quantity(self):
        cart = ShoppingCart()
        apples = Product("apples", ProductUnit.KILO)

        cart.add_item_quantity(apples, 2.5)
        self.assertEqual(2.5, cart.product_quantities[apples])

        cart.add_item_quantity(apples, 1.2)
        self.assertEqual(3.7, cart.product_quantities[apples])
コード例 #9
0
    def test_validate_input_2(self):
        cart_items = list([
            CartItem(Item(True, True), 10.00),
            CartItem(Item(False, True), 47.50),
        ])
        shopping_cart = ShoppingCart(cart_items)

        assert shopping_cart.calculate_sales_tax() == "7.65"
        assert shopping_cart.calculate_total() == "65.15"
コード例 #10
0
def test_buy_1_get_1_free_cushion():
    cart = ShoppingCart()

    product = 'Cushion'

    cart.scan(product)
    cart.scan(product)

    assert cart.total_price() == 25
コード例 #11
0
    def test_validate_input_1(self):
        cart_items = list([
            CartItem(Item(True, False), 12.49),
            CartItem(Item(False, False), 14.99),
            CartItem(Item(True, False), 0.85),
        ])
        shopping_cart = ShoppingCart(cart_items)

        assert shopping_cart.calculate_sales_tax() == "1.50"
        assert shopping_cart.calculate_total() == "29.83"
コード例 #12
0
    def get(self, request):

        # request.session.clear()

        cart_exists = request.session.get('shoppingCart', None)
        if not cart_exists:
            shoppingCart = ShoppingCart()
            request.session['shoppingCart'] = shoppingCart.to_dictionary()

        return JsonResponse(request.session['shoppingCart'])
コード例 #13
0
    def test_validate_input_3(self):
        cart_items = list([
            CartItem(Item(False, True), 27.99),
            CartItem(Item(False, False), 18.99),
            CartItem(Item(True, False), 9.75),
            CartItem(Item(True, True), 11.25)
        ])
        shopping_cart = ShoppingCart(cart_items)

        assert shopping_cart.calculate_sales_tax() == "6.70"
        assert shopping_cart.calculate_total() == "74.68"
コード例 #14
0
def test_add_multiple_products_to_cart():
    cart = ShoppingCart()

    product1 = 'Chair'
    product2 = 'Sofa'
    product3 = 'Cushion'

    cart.scan(product1)
    cart.scan(product2)
    cart.scan(product3)

    assert cart.total_price() == 625
コード例 #15
0
ファイル: main.py プロジェクト: Xulww/design-patterns
def main():
    shopping_cart = ShoppingCart()
    item_1 = Item("Banana", 2.5)
    item_2 = Item("Juice", 1.7)

    shopping_cart.add_item(item_1)
    shopping_cart.add_item(item_2)

    # shopping_cart.pay(PaypalPayment("*****@*****.**", "123456"))
    shopping_cart.pay(
        CreditCardPayment("Ivan Ivanov", "1234 1234 1234 1234", "10/21",
                          "123"))
コード例 #16
0
def main():
    cart = ShoppingCart()
    cart.add_item()
    cart.remove_item()
    cart.add_item()
    cart.add_item()
    cart.add_item()
    cart.remove_item()
    cart.checkout()
    cart.paid_for()
    cart.add_item()
    cart.checkout()
    cart.paid_for()
コード例 #17
0
    def post(self, request):
        cart = json.loads(request.body)

        cart['unsavedChanges'] = False
        cart['checkoutStatus']['review'] = False

        if cart['totalItems'] == 0:
            shoppingCart = ShoppingCart()
            request.session['shoppingCart'] = shoppingCart.to_dictionary()
            return JsonResponse(
                {'shoppingCart': request.session['shoppingCart']})
        else:
            request.session['shoppingCart'] = cart

        return JsonResponse({'status': True})
    def test_shopping_handle_offers_no_offers(self):
        catalog = FakeCatalog()
        toothbrush = Product("toothbrush", ProductUnit.EACH)
        receipt_toothbrush = ReceiptItem(toothbrush, 2, 1.5, 3)

        receipt = Receipt()
        receipt.items = [receipt_toothbrush]

        receipt_offers = {}

        cart = ShoppingCart()
        cart._items = [toothbrush]
        cart._product_quantities = {toothbrush: 2}

        cart.handle_offers(receipt, receipt_offers, catalog)
        self.assertEqual([], receipt.discounts)
コード例 #19
0
 def setUp(self):
     """Setting up the ShoppingCart Class"""
     self.my_cart = ShoppingCart()
     self.my_cart2 = Shop()
コード例 #20
0
 def setUp(self):
     self.bread = Item('Bread', 3.5)
     self.beer = Item('Beer', 1.75)
     self.shopping_cart = ShoppingCart()
     self.shopping_cart.add_item({'item':self.bread, 'quantity': 2})
コード例 #21
0
ファイル: factory.py プロジェクト: GusW/python_main
 def create_cart(cls):
     return ShoppingCart(
         publishing_house_catalog=cls.get_publishing_house_catalog())
コード例 #22
0
from product import Product
from shopping_cart import ShoppingCart
from payment_strategies import BlikStrategy, CreditCardStrategy

if __name__ == '__main__':
    product1 = Product('Banana', 4.99)
    product2 = Product('Apple', 2.99)
    cart = ShoppingCart()
    cart.add_product(product1)
    cart.add_product(product2)
    cart.pay(BlikStrategy('*****@*****.**', '123456'))
    cart.pay(
        CreditCardStrategy('4111 1111 4555 1142', 'Jon Snow', '456', '09/27'))
コード例 #23
0
 def setUp(self):
     """
     Setting up the instance and assigning attributes for testing
     """
     self.my_cart = ShoppingCart()
     self.my_cart_2 = Shop()
コード例 #24
0
import sys
from customer import Customer
from shopping_cart import ShoppingCart

args = sys.argv
if len(args) != 2:
    raise Exception("Invalid argument.")
username = args[1]
try:
    customer = Customer.get_customer_by_username(username)
    if not customer:
        raise Exception("Customer is not found.")
    shopping_cart = ShoppingCart(customer.get_id())
    shopping_cart.print_orders()
except Exception as e:
    print(e)
コード例 #25
0
 def __init__(self, discounts: Discounts) -> None:
     self.shopping_cart = ShoppingCart(discounts)
コード例 #26
0
 def new(self, car_id: ShoppingCart()):
     pass
コード例 #27
0
from shopping_cart import ShoppingCart

shopping_cart = ShoppingCart()

shopping_cart.add_item("rainbow sandals", 45.99)
shopping_cart.add_item("agyle socks", 10.50)
shopping_cart.add_item("jeans", 50.00, 3)
shopping_cart.add_item("plants", 20.00, 2)


print(shopping_cart.get_total())


print(shopping_cart.median_item_price()) # 50.00  <<< how is that the answer to the median question? should be $45.99 when have the 1st 3 items in cart
print(shopping_cart.mean_item_price())

discount_shopping_cart = ShoppingCart(20)
print(shopping_cart.apply_discount())

print(shopping_cart.item_names())

print(shopping_cart.void_last_item())
コード例 #28
0
 def setUp(self):
     self.cart = ShoppingCart()
     self.product1 = 'Wine'  # 500
     self.product2 = 'BBQ Grill'  # 100
     self.product3 = 'Beer'  # 25
コード例 #29
0
 def setUp(self):
     self.carrot = Item('Carrot', 900)
     self.strawberry = Item('Strawberry', 500)
     self.apple = Item('Apple', 700)
     self.shopping_cart = ShoppingCart()
     self.shopping_cart.add_item(self.strawberry)
コード例 #30
0
 def setUp(self):
     self.pan = Item("Pan", 7.0)
     self.jugo = Item("Jugo", 5.0)
     self.shopping_cart = ShoppingCart()
     self.shopping_cart.add_item(self.pan)