Optimize tests a bit.

This commit is contained in:
Víðir Valberg Guðmundsson 2019-03-29 12:15:15 +01:00
parent 32b4cdfbee
commit 26c2e492c3

View file

@ -1,9 +1,6 @@
from django.contrib.auth.models import User
from django.core.exceptions import ValidationError
from django.test import TestCase from django.test import TestCase
from django.urls import reverse from django.urls import reverse
from django.utils import timezone from django.utils import timezone
from psycopg2.extras import DateTimeTZRange from psycopg2.extras import DateTimeTZRange
from shop.forms import OrderProductRelationForm from shop.forms import OrderProductRelationForm
@ -111,42 +108,44 @@ class TestOrderProductRelationForm(TestCase):
class TestProductDetailView(TestCase): class TestProductDetailView(TestCase):
def setUp(self): def setUp(self):
self.user = UserFactory() self.user = UserFactory()
self.product = ProductFactory()
def test_product_is_available(self): def test_product_is_available(self):
product = ProductFactory()
self.client.force_login(self.user) self.client.force_login(self.user)
response = self.client.get( response = self.client.get(
reverse("shop:product_detail", kwargs={"slug": product.slug}) reverse("shop:product_detail", kwargs={"slug": self.product.slug})
) )
self.assertIn("Add to order", str(response.content)) self.assertIn("Add to order", str(response.content))
self.assertEqual(response.status_code, 200) self.assertEqual(response.status_code, 200)
def test_product_is_available_with_stock_left(self): def test_product_is_available_with_stock_left(self):
product = ProductFactory(stock_amount=2) self.product.stock_amount = 2
self.product.save()
opr1 = OrderProductRelationFactory(product=product, quantity=1) opr1 = OrderProductRelationFactory(product=self.product, quantity=1)
opr1.order.open = None opr1.order.open = None
opr1.order.save() opr1.order.save()
self.client.force_login(self.user) self.client.force_login(self.user)
response = self.client.get( response = self.client.get(
reverse("shop:product_detail", kwargs={"slug": product.slug}) reverse("shop:product_detail", kwargs={"slug": self.product.slug})
) )
self.assertIn("<bold>1</bold> available", str(response.content)) self.assertIn("<bold>1</bold> available", str(response.content))
self.assertEqual(response.status_code, 200) self.assertEqual(response.status_code, 200)
def test_product_is_sold_out(self): def test_product_is_sold_out(self):
product = ProductFactory(stock_amount=1) self.product.stock_amount = 1
self.product.save()
opr1 = OrderProductRelationFactory(product=product, quantity=1) opr1 = OrderProductRelationFactory(product=self.product, quantity=1)
opr1.order.open = None opr1.order.open = None
opr1.order.save() opr1.order.save()
self.client.force_login(self.user) self.client.force_login(self.user)
response = self.client.get( response = self.client.get(
reverse("shop:product_detail", kwargs={"slug": product.slug}) reverse("shop:product_detail", kwargs={"slug": self.product.slug})
) )
self.assertIn("Sold out.", str(response.content)) self.assertIn("Sold out.", str(response.content))