示例#1
0
    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
示例#5
0
    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)
示例#12
0
 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)
示例#13
0
 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']))
示例#15
0
 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)
示例#16
0
 def create_models(self):
     debit = factories.DebitFactory(user=self.user)
     customer = factories.CustomerFactory(debit=debit)
     paidlog = factories.PaidLogFactory(customer=customer)
     return [debit, customer, paidlog]