def test_get_plan_list(self): PlanFactory.create_batch(settings.API_PAGE_SIZE * 2) url = reverse('plan-list') response = self.client.get(url) full_url = None for field in response.data: full_url = field.get('url', None) if full_url: break if full_url: domain = full_url.split('/')[2] full_url = full_url.split(domain)[0] + domain + url assert response.status_code == status.HTTP_200_OK assert response._headers['link'] == \ ('Link', '<' + full_url + '?page=2>; rel="next", ' + '<' + full_url + '?page=1>; rel="first", ' + '<' + full_url + '?page=2> rel="last"') response = self.client.get(url + '?page=2') assert response.status_code == status.HTTP_200_OK assert response._headers['link'] == \ ('Link', '<' + full_url + '>; rel="prev", ' + '<' + full_url + '?page=1>; rel="first", ' + '<' + full_url + '?page=2> rel="last"')
def test_get_plan_detail(self): plan = PlanFactory.create() url = reverse('plan-detail', kwargs={'pk': plan.pk}) response = self.client.get(url) self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertNotEqual(response.data, [])
def test_patch_plan_non_editable_field(self): plan = PlanFactory.create() url = reverse('plan-detail', kwargs={'pk': plan.pk}) response = self.client.patch(url, json.dumps({"currency": "DollaDolla"}), content_type='application/json') self.assertNotEqual(response.data['currency'], 'DollaDolla') self.assertEqual(response.status_code, status.HTTP_200_OK)
def test_delete_plan(self): plan = PlanFactory.create() plan.enabled = True plan.save() url = reverse('plan-detail', kwargs={'pk': plan.pk}) response = self.client.delete(url) self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(response.data, {"deleted": True})
def test_put_plan(self): plan = PlanFactory.create() url = reverse('plan-detail', kwargs={'pk': plan.pk}) response = self.client.put(url) self.assertEqual(response.status_code, status.HTTP_405_METHOD_NOT_ALLOWED) self.assertEqual(response.data, {u'detail': u'Method "PUT" not allowed.'})
def setUp(self): # Setup simple subscription self.plan = PlanFactory.create(interval=Plan.INTERVALS.MONTH, interval_count=1, generate_after=120, enabled=True, amount=Decimal('200.00'), trial_period_days=0) self.subscription = SubscriptionFactory.create(plan=self.plan, start_date=self.date) self.subscription.activate() self.subscription.save()
def test_patch_plan(self): plan = PlanFactory.create() url = reverse('plan-detail', kwargs={'pk': plan.pk}) response = self.client.patch(url, json.dumps({ "name": "Hydrogen", "generate_after": 86400 }), content_type='application/json') self.assertEqual(response.data['name'], 'Hydrogen') self.assertEqual(response.data['generate_after'], 86400) self.assertEqual(response.status_code, status.HTTP_200_OK)
def test_create_post_subscription_with_invalid_trial_end(self): plan = PlanFactory.create() customer = CustomerFactory.create() plan_url = reverse('plan-detail', kwargs={'pk': plan.pk}) url = reverse('subscription-list', kwargs={'customer_pk': customer.pk}) response = self.client.post(url, json.dumps({ "plan": plan_url, "trial_end": '2014-11-07', "start_date": '2014-11-19' }), content_type='application/json') assert response.status_code == status.HTTP_400_BAD_REQUEST
def test_create_subscription(self): plan = PlanFactory.create() customer = CustomerFactory.create() plan_url = reverse('plan-detail', kwargs={'pk': plan.pk}) url = reverse('subscription-list', kwargs={'customer_pk': customer.pk}) response = self.client.post(url, json.dumps({ "plan": plan_url, "trial_end": '2014-12-07', "start_date": '2014-11-19' }), content_type='application/json') assert response.status_code == status.HTTP_201_CREATED subscription = Subscription.objects.get(id=response.data['id']) assert response.data == spec_subscription(subscription)