def test_working(self): debit = factories.DebitFactory(user = self.user) customer = factories.CustomerFactory(debit = debit) customer1 = factories.CustomerFactory(debit = debit) debitlog = factories.DebitLogFactory(customer = customer) url = reverse('main:api:debitlog-update', kwargs = {'debitlog_pk': debitlog.pk}) # ? testing put data = { 'customer_name': customer1.name, 'amount': 200, 'paid': True } response = self.client.put(url, data, format = 'json') self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(response.data['amount'], data['amount']) self.assertEqual(response.data['customer_name'], data['customer_name']) # ? testing patch data = { 'customer_name': customer.name, 'paid': False, } response = self.client.patch(url, data, format = 'json') self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(response.data['customer_name'], data['customer_name']) self.assertEqual(response.data['paid'], data['paid'])
def test_working(self): debit = factories.DebitFactory(user=self.user) customer = factories.CustomerFactory(debit=debit, name="kannan") customer2 = factories.CustomerFactory(debit=debit, name='kabir') factories.DebitLogFactory(customer=customer) factories.DebitLogFactory(customer=customer2) url = reverse('main:api:search-customer', kwargs={'debit_pk': debit.id}) + '?name=kannan' response = self.client.get(url, format='json') self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(len(response.data), 1)
def test_name_search(self): debit = factories.DebitFactory(user=self.user) for i in range(5): customer = factories.CustomerFactory(debit=debit) factories.DebitLogFactory(customer=customer) customer = factories.CustomerFactory(name='kannan', debit=debit) factories.DebitLogFactory(customer=customer) url = reverse('main:customer-log', kwargs={'debit_pk': debit.id }) + '?name=kannan' response = self.client.get(url) self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(response.context['object_list'][0]['customer__name'], 'kannan')
def test_view_queryset(self): debit = factories.DebitFactory(user=self.user) debit2 = factories.DebitFactory() for i in range(10): customer = factories.CustomerFactory(debit=debit) factories.DebitLogFactory(customer=customer) for i in range(3): customer = factories.CustomerFactory(debit=debit2) factories.DebitLogFactory(customer=customer) url = reverse('main:customer-log', kwargs={'debit_pk': debit.id}) response = self.client.get(url) self.assertEqual(response.status_code, 200) self.assertEqual(len(response.context['object_list']), 6) # 6 'cause pagination
def test_to_add_customer_from_others_debit_to_this_debitlog(self): # this is also a test for non-existing customer_name is passed as data same output customer = factories.CustomerFactory() debit2 = factories.DebitFactory(user = self.user) customer2 = factories.CustomerFactory(debit = debit2) debitlog2 = factories.DebitLogFactory(customer = customer2) url = reverse('main:api:debitlog-update', kwargs = {'debitlog_pk': debitlog2.pk}) data = { 'customer_name': customer.name, } response = self.client.patch(url, data, format = 'json') self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) self.assertEqual(response.data['customer_name'], 'There is no customer with this name!')
def test_permission(self): debit = factories.DebitFactory() customer = factories.CustomerFactory(debit=debit) url = reverse('main:paidlog-create', kwargs={'debit_pk': debit.pk}) data = {'amount': 120, 'customer_name': customer.name} response = self.client.post(url, data) self.assertEqual(response.status_code, 403)
def test_deletion(self): debit = factories.DebitFactory(user = self.user) customer = factories.CustomerFactory(debit = debit) debitlog = factories.DebitLogFactory(customer = customer) url = reverse('main:debitlog-delete', kwargs = {'debitlog_pk': debitlog.pk}) response = self.client.post(url) self.assertEqual(response.status_code, 200) # decode 'cause content is a b str self.assertEqual(response.content.decode('utf-8'), 'success')
def test_without_name(self): debit = factories.DebitFactory(user=self.user) customer = factories.CustomerFactory(debit=debit, name='kannan') factories.DebitLogFactory(customer=customer) url = reverse('main:api:search-customer', kwargs={'debit_pk': debit.pk}) + '?name=' response = self.client.get(url, format='json') self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) self.assertEqual(response.data['error'], 'You need to pass name as params!')
def test_sorting(self): debit = factories.DebitFactory(user=self.user) for i in range(5): customer = factories.CustomerFactory(debit=debit) factories.DebitLogFactory(customer=customer) url = reverse('main:customer-log', kwargs={'debit_pk': debit.id }) + '?sort=customer_number' with self.assertLogs('main.views', level="ERROR") as L: response = self.client.get(url) self.assertEqual(response.status_code, status.HTTP_200_OK)
def test_signal(self): debit = factories.DebitFactory(user = self.user) customer = factories.CustomerFactory(debit = debit) debitlog = factories.DebitLogFactory(customer = customer, amount = 100) factories.DebitLogFactory(customer = customer, amount = 100) self.assertEqual(customer.total, 200) url = reverse('main:debitlog-delete', kwargs = {'debitlog_pk': debitlog.pk}) response = self.client.post(url) customer.refresh_from_db() self.assertEqual(response.status_code, 200) self.assertEqual(customer.total, 100)
def test_name_search_with_non_existing_name(self): debit = factories.DebitFactory(user=self.user) for i in range(5): customer = factories.CustomerFactory(debit=debit) factories.DebitLogFactory(customer=customer) url = reverse('main:customer-log', kwargs={'debit_pk': debit.id }) + '?name=oz' response = self.client.get(url) self.assertEqual(response.status_code, status.HTTP_200_OK) messages = [m.message for m in get_messages(response.wsgi_request)] self.assertIn('Customer name not found!', messages)
def test_permission(self): debit = factories.DebitFactory() customer = factories.CustomerFactory(debit=debit) paidlog = factories.PaidLogFactory(customer=customer) url = reverse('main:api:paidlog-detail', kwargs={ 'customer_pk': customer.pk, 'pk': paidlog.pk }) response = self.client.get(url, format='json') self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
def test_working(self): debit = factories.DebitFactory(user=self.user) customer = factories.CustomerFactory(debit=debit) debitlog = factories.DebitLogFactory(customer=customer) data = { 'paid': True, } url = reverse('main:api:debitlog-update', kwargs={'debitlog_pk': debitlog.pk}) response = self.client.patch(url, data=data, format='json') self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(response.data['paid'], True)
def test_working(self): debit = factories.DebitFactory(user=self.user) customer = factories.CustomerFactory(debit=debit) url = reverse('main:paidlog-create', kwargs={'debit_pk': debit.pk}) data = {'amount': 120, 'customer_name': customer.name} response = self.client.post(url, data) self.assertRedirects( response, reverse('main:paidlog-list', kwargs={'customer_pk': customer.pk})) self.assertEqual(len(models.PaidLog.objects.all()), 1) # test message all_messages = [msg for msg in get_messages(response.wsgi_request)] self.assertEqual(all_messages[0].tags, 'success') self.assertEqual( all_messages[0].message, '{} paid {}. Added successfully'.format(customer.name, data['amount']))
def test_create_view_with_others_customers(self): customer = factories.CustomerFactory() url = reverse('main:api:paidlog-list', kwargs={'customer_pk': customer.pk}) response = self.client.post(url, format='json') self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
def create_models(self): debit = factories.DebitFactory(user=self.user) customer = factories.CustomerFactory(debit=debit) paidlog = factories.PaidLogFactory(customer=customer) return [debit, customer, paidlog]