def test_get_should_detect_if_the_user_already_have_talk_subscription( self): v = views.TutorialSubscriptionView() request = RequestFactory().get("/") request.user = User.objects.get(pk=2) resp = v.get(request) self.assertTrue(resp.context_data["confirmed"])
def test_post_with_user_confirmed_for_the_conference(self): tutorials, request = self._prepare_post(user=2) v = views.TutorialSubscriptionView() resp = v.post(request) subscription = Subscription.objects.get(user_id=2, type="tutorial") self.assertEqual("subscription/tutorials_confirmed.html", resp.template_name) self.assertEqual(subscription, resp.context_data["subscription"]) self.assertEqual("confirmed", subscription.status) self.assertFalse(subscription.transaction_set.exists())
def test_post_creates_subscription_and_transaction(self): tutorials, request = self._prepare_post() v = views.TutorialSubscriptionView() v.post(request) subscription = Subscription.objects.get(user_id=3) self.assertEqual("tutorial", subscription.type) self.assertEqual("pending", subscription.status) self.assertEqual(list(tutorials), list(subscription.tutorials.all())) transaction = subscription.transaction_set.all()[0] self.assertEqual(65, transaction.price) self.assertEqual("xpto123", transaction.code) self.assertEqual("pending", transaction.status)
def test_post_renders_template_with_information_about_the_transaction_and_the_subscription( self): tutorials, request = self._prepare_post() v = views.TutorialSubscriptionView() resp = v.post(request) subscription = Subscription.objects.get(user_id=3) transaction = subscription.transaction_set.get(price=65) self.assertIsInstance(resp, response.TemplateResponse) self.assertEqual("subscription/tutorials_success.html", resp.template_name) self.assertEqual(transaction, resp.context_data["transaction"]) self.assertEqual(subscription, resp.context_data["subscription"])
def test_get_should_include_accepted_tutorials_in_context_excluding_subscribed_tutorials( self): v = views.TutorialSubscriptionView() resp = v.get(self.request) tutorials = resp.context_data["tutorials"] expected = [ views.TutorialSlot(tutorials=sched_models.Session.objects.filter( pk__in=[1, 5])), ] self.assertEqual(len(expected), len(tutorials)) for i, slot in enumerate(tutorials): self.assertEqual(list(expected[i].tutorials), list(slot.tutorials)) self.assertFalse(resp.context_data["confirmed"])
def test_get_should_include_subscripted_tutorials_in_context(self): v = views.TutorialSubscriptionView() resp = v.get(self.request) tutorials = resp.context_data["subscribed"] self.assertEqual(list(tutorials), [sched_models.Session.objects.get(pk=6)])
def test_get_renders_template(self): v = views.TutorialSubscriptionView() resp = v.get(self.request) self.assertIsInstance(resp, response.TemplateResponse) self.assertEqual("subscription/tutorials.html", resp.template_name)