def test_get_subscription_list_reference_filter(self): customer = CustomerFactory.create() subscriptions = SubscriptionFactory.create_batch(3, customer=customer) url = reverse('subscription-list', kwargs={'customer_pk': customer.pk}) references = [subscription.reference for subscription in subscriptions] reference = '?reference=' + references[0] response = self.client.get(url + reference) assert len(response.data) == 1 assert response.status_code == status.HTTP_200_OK reference = '?reference=' + ','.join(references) response = self.client.get(url + reference) assert len(response.data) == 3 assert response.status_code == status.HTTP_200_OK reference = '?reference=' + ','.join(references[:-1]) + ',invalid' response = self.client.get(url + reference) assert len(response.data) == 2 assert response.status_code == status.HTTP_200_OK for subscription_data in response.data: subscription = Subscription.objects.get(id=subscription_data['id']) assert subscription_data == spec_subscription(subscription)
def test_get_subscription_list(self): customer = CustomerFactory.create() SubscriptionFactory.create_batch(settings.API_PAGE_SIZE * 2, customer=customer) url = reverse('subscription-list', kwargs={'customer_pk': customer.pk}) 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['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['link'] == \ ('<' + full_url + '>; rel="prev", ' + '<' + full_url + '?page=1>; rel="first", ' + '<' + full_url + '?page=2> rel="last"') for subscription_data in response.data: subscription = Subscription.objects.get(id=subscription_data['id']) assert subscription_data == spec_subscription(subscription)
def test_get_subscription_list(self): customer = CustomerFactory.create() SubscriptionFactory.create_batch(40, customer=customer) url = reverse('subscription-list', kwargs={'customer_pk': customer.pk}) 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"') for subscription_data in response.data: subscription = Subscription.objects.get(id=subscription_data['id']) assert subscription_data == spec_subscription(subscription)
def test_get_subscription_detail(self): subscription = SubscriptionFactory.create() url = reverse('subscription-detail', kwargs={'subscription_pk': subscription.pk, 'customer_pk': subscription.customer.pk}) response = self.client.get(url) assert response.status_code == status.HTTP_200_OK, response.data assert response.data == spec_subscription(subscription, detail=True)
def test_get_subscription_detail(self): subscription = SubscriptionFactory.create() url = reverse('subscription-detail', kwargs={'subscription_pk': subscription.pk, 'customer_pk': subscription.customer.pk}) response = self.client.get(url) assert response.status_code == status.HTTP_200_OK assert response.data == spec_subscription(subscription, detail=True)
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)