def test_is_available_without_start_and_without_end(self, now, expected):
        article = create_article(
            available_from=None,
            available_until=None)

        with freeze_time(now):
            self.assertEqual(article.is_available, expected)
    def test_is_available_with_start_and_end(self, now, expected):
        article = create_article(
            available_from=datetime(2014, 9, 15, 18, 0, 0),
            available_until=datetime(2014, 9, 23, 18, 0, 0))

        with freeze_time(now):
            self.assertEqual(article.is_available, expected)
Пример #3
0
    def test_order_article(self):
        article_before = create_article(party=self.party, quantity=5)
        self.db.session.add(article_before)
        self.db.session.commit()

        self.assertEqual(article_before.quantity, 5)

        url = '/shop/order_single/{}'.format(str(article_before.id))
        form_data = {
            'first_names': 'Hiro',
            'last_name': 'Protagonist',
            'date_of_birth': '01.01.1970',
            'country': 'State of Mind',
            'zip_code': '31337',
            'city': 'Atrocity',
            'street': 'L33t Street 101',
            'quantity': 1,  # TODO: Test with `3` if limitation is removed.
        }
        with self.client(user=self.orderer) as client:
            response = client.post(url, data=form_data)

        self.assertEqual(response.status_code, 302)
        self.assertEqual(response.headers.get('Location'), 'http://example.com/shop/order_placed')

        article_afterwards = Article.query.get(article_before.id)
        self.assertEqual(article_afterwards.quantity, 4)

        order = Order.query.filter_by(placed_by=self.orderer).one()
        self.assertEqual(order.order_number, 'AEC-01-B00005')
        self.assertEqual(len(order.items), 1)
        self.assertEqual(order.items[0].article.id, article_before.id)
        self.assertEqual(order.items[0].price, article_before.price)
        self.assertEqual(order.items[0].tax_rate, article_before.tax_rate)
        self.assertEqual(order.items[0].quantity, 1)
Пример #4
0
 def build_article(self, serial_number, description, price, tax_rate):
     return create_article(
         party=self.party,
         serial_number=serial_number,
         description=description,
         price=price,
         tax_rate=tax_rate,
         quantity=10)
    def create_order_with_items(self, price_quantity_pairs):
        user = create_user(42)
        order = create_order(placed_by=user)

        for price, quantity in price_quantity_pairs:
            article = create_article(price=price, quantity=quantity)
            order.add_item(article, quantity)

        return order
Пример #6
0
 def create_article(self, quantity):
     article = create_article(party=self.party, quantity=quantity)
     self.db.session.add(article)
     return article
Пример #7
0
 def create_item(self, quantity):
     article = create_article()
     return CartItem(article, quantity)