def setUp(self): super(BidViewTest, self).setUp() self.add_url_kwargs(product_slug='pragmatic-programmer') self.product_detail_url = reverse('jobim:product_detail', **self.url_kwargs) self.bid_url = reverse('jobim:product_bid', **self.url_kwargs) self.product = add_product()
def test_has_an_available_manager(self): from jobim.models import Product product = add_product() self.assertTrue(product in Product.available.all()) product.status = 'DRFT' product.save() self.assertFalse(product in Product.available.all())
def test_sold_manager(self): from jobim.models import Product product = add_product() self.assertFalse(product in Product.sold.all()) product.status = "SOLD" product.save() self.assertTrue(product in Product.sold.all())
def test_action_to_accept_bids(self): from jobim.admin import BidAdmin from jobim.models import Bid product = add_product() bid = Bid(product=product, amount=30) bid.save() self.assertFalse(bid.accepted) queryset = Bid.objects.all() bid_admin = BidAdmin(Bid, None) bid_admin.accept_bid(None, queryset) bid = Bid.objects.get(pk=bid.pk) self.assertTrue(bid.accepted)
def test_detail_view(self): self.add_url_kwargs(product_slug="pragmatic-programmer") product_detail_url = reverse("jobim:product_detail", **self.url_kwargs) response = self.client.get(product_detail_url) self.assertEqual(404, response.status_code) product = add_product() response = self.client.get(product_detail_url) self.assertEqual(200, response.status_code) self.assertTemplateUsed(response, "jobim/product_detail.html") product.status = "SOLD" product.save() response = self.client.get(product_detail_url) self.assertEqual(404, response.status_code)
def test_status_workflow(self): from jobim.models import Bid product = add_product() self.assertEquals("Waiting bid", product.bid_status()) bid = Bid(product=product, amount=100, email="*****@*****.**", accepted=False) bid.save() self.assertEquals("Waiting bid", product.bid_status()) bid.accepted = True bid.save() self.assertEquals("Current bid: U$ 100", product.bid_status()) product.status = "SOLD" product.save() self.assertEquals("Sold", product.bid_status())
def test_list_view(self): products_url = reverse("jobim:product_list", **self.url_kwargs) response = self.client.get(products_url) self.assertEqual(200, response.status_code) self.assertTemplateUsed(response, "jobim/product_list.html") self.assertEqual(0, len(response.context["products"])) product = add_product() response = self.client.get(products_url) self.assertEqual(200, response.status_code) self.assertEqual(1, len(response.context["products"])) self.assertTrue(product in response.context["products"]) product.status = "SOLD" product.save() response = self.client.get(products_url) self.assertEqual(200, response.status_code) self.assertEqual(0, len(response.context["products"])) self.assertFalse(product in response.context["products"])
def test_follows_status_workflow(self): from jobim.models import Bid product = add_product() self.assertEquals('Waiting bid', product.bid_status()) bid = Bid(product=product, amount=100, email='*****@*****.**', accepted=False) bid.save() self.assertEquals('Waiting bid', product.bid_status()) bid.accepted = True bid.save() self.assertEquals('Current bid: U$ 100', product.bid_status()) product.status = 'SOLD' product.save() self.assertEquals('Sold', product.bid_status())
def test_follows_status_workflow(self): from jobim.models import Bid product = add_product() self.assertEquals('Waiting bid', product.bid_status()) bid = Bid( product=product, amount=100, email='*****@*****.**', accepted=False) bid.save() self.assertEquals('Waiting bid', product.bid_status()) bid.accepted = True bid.save() self.assertEquals('Current bid: U$ 100', product.bid_status()) product.status = 'SOLD' product.save() self.assertEquals('Sold', product.bid_status())
def test_uses_right_template(self): product = add_product() response = self.client.get(self.product_detail_url) self.assertTemplateUsed(response, "jobim/product_detail.html")
def test_shows_even_sold_products(self): product = add_product("SOLD") response = self.client.get(self.products_url) self.assertEqual(1, len(response.context["products"])) self.assertTrue(product in response.context["products"])
def test_show_product_details(self): product = add_product() response = self.client.get(self.product_detail_url) self.assertEqual(200, response.status_code)
def test_show_details_of_sold_product_without_bid_form(self): product = add_product(status="SOLD") response = self.client.get(self.product_detail_url) self.assertEqual(200, response.status_code) self.assertFalse(response.context["bid_form"])
def test_shows_available_products(self): product = add_product() response = self.client.get(self.products_url) self.assertEqual(1, len(response.context["products"])) self.assertTrue(product in response.context["products"])
def test_do_not_show_draft_products(self): product = add_product("DRFT") response = self.client.get(self.products_url) self.assertEqual(0, len(response.context["products"])) self.assertFalse(product in response.context["products"])
def test_has_unicode(self): product = add_product() photo = Photo(product=product) photo.save() self.assertEqual('The Pragmatic Programmer #1', str(photo))