def test_cart(self):
        shopping_site = IShoppingSite(self.portal)
        self.assertIsNone(shopping_site.cart())

        session = shopping_site.getSessionData(create=True)
        session.set('collective.cart.core', 'CART')
        self.assertEqual(shopping_site.cart(), 'CART')
Exemplo n.º 2
0
    def add_to_cart(self, **kwargs):
        """Add Article to cart"""
        shopping_site = IShoppingSite(self.context)
        cart = shopping_site.cart()
        if cart is None:
            session = self.getSessionData(create=True)
            session.set("collective.cart.core", {})
        else:
            session = self.getSessionData(create=False)

        articles = IShoppingSite(self.context).cart_articles()
        if not articles:
            articles = SessionArticles()

        uuid = IUUID(self.context)

        if uuid in articles:
            items = articles[uuid]
            self._update_existing_cart_article(items, **kwargs)

        else:
            items = {
                "id": uuid,
                "title": self.context.Title(),
                "description": self.context.Description(),
                "url": self.context.absolute_url(),
            }
            items.update(kwargs)

        articles[uuid] = items
        shopping_site.update_cart("articles", articles)
    def test_remove_from_cart(self):
        adapter = IShoppingSite(self.portal)
        self.assertIsNone(adapter.cart())
        self.assertIsNone(adapter.remove_from_cart('name'))
        self.assertIsNone(adapter.cart())

        session = adapter.getSessionData(create=True)
        session.set('collective.cart.core', {})
        self.assertEqual(adapter.cart(), {})
        self.assertIsNone(adapter.remove_from_cart('name'))
        self.assertEqual(adapter.cart(), {})

        session.set('collective.cart.core', {'name': 'Name'})
        self.assertEqual(adapter.cart(), {'name': 'Name'})
        self.assertEqual(adapter.remove_from_cart('name'), 'Name')
        self.assertEqual(adapter.cart(), {})