コード例 #1
0
    def test_validation_filters(self):
        """
        Test the admin validation filters.

        This filters receipts by the validation status.
        """
        validated_receipt = fixtures.ReceiptFactory()
        failed_validation_receipt = fixtures.ReceiptFactory()
        not_validated_receipt = fixtures.ReceiptFactory()

        fixtures.ReceiptValidationFactory(receipt=validated_receipt)
        fixtures.ReceiptValidationFactory(
            result=models.ReceiptValidation.RESULT_REJECTED,
            receipt=failed_validation_receipt,
        )

        client = Client()
        client.force_login(User.objects.first())

        response = client.get('/admin/afip/receipt/?status=validated')
        self.assertContains(
            response,
            '<input class="action-select" name="_selected_action" value="{}" '
            'type="checkbox">'.format(validated_receipt.pk),
            html=True,
        )
        self.assertNotContains(
            response,
            '<input class="action-select" name="_selected_action" value="{}" '
            'type="checkbox">'.format(not_validated_receipt.pk),
            html=True,
        )
        self.assertNotContains(
            response,
            '<input class="action-select" name="_selected_action" value="{}" '
            'type="checkbox">'.format(failed_validation_receipt.pk),
            html=True,
        )

        response = client.get('/admin/afip/receipt/?status=not_validated')
        self.assertNotContains(
            response,
            '<input class="action-select" name="_selected_action" value="{}" '
            'type="checkbox">'.format(validated_receipt.pk),
            html=True,
        )
        self.assertContains(
            response,
            '<input class="action-select" name="_selected_action" value="{}" '
            'type="checkbox">'.format(not_validated_receipt.pk),
            html=True,
        )
        self.assertContains(
            response,
            '<input class="action-select" name="_selected_action" value="{}" '
            'type="checkbox">'.format(failed_validation_receipt.pk),
            html=True,
        )
コード例 #2
0
ファイル: test_models.py プロジェクト: placiana/django-afip
    def test_failed_validation(self):
        # These should never really exist,but oh well:
        receipt = fixtures.ReceiptFactory()
        fixtures.ReceiptValidationFactory(
            receipt=receipt,
            result=models.ReceiptValidation.RESULT_REJECTED,
        )
        self.assertEqual(receipt.is_validated, False)

        receipt = fixtures.ReceiptFactory(receipt_number=1)
        fixtures.ReceiptValidationFactory(
            receipt=receipt,
            result=models.ReceiptValidation.RESULT_REJECTED,
        )
        self.assertEqual(receipt.is_validated, False)
コード例 #3
0
    def test_validate_empty(self):
        fixtures.ReceiptFactory()

        errs = models.Receipt.objects.none().validate()

        self.assertEqual(errs, [])
        self.assertEqual(models.ReceiptValidation.objects.count(), 0)
コード例 #4
0
    def test_download_name(self):
        fixtures.ReceiptFactory(pk=9, receipt_number=32)

        view = views.ReceiptPDFView()
        view.kwargs = {'pk': 9}

        self.assertEqual(view.get_download_name(), '0001-00000032.pdf')
コード例 #5
0
ファイル: test_models.py プロジェクト: placiana/django-afip
 def setUp(self):
     super().setUp()
     self.receipt = fixtures.ReceiptFactory(
         document_type__code=80,
         point_of_sales=models.PointOfSales.objects.first(),
     )
     fixtures.VatFactory(vat_type__code=5, receipt=self.receipt)
     fixtures.TaxFactory(tax_type__code=3, receipt=self.receipt)
コード例 #6
0
 def _bad_receipt(self):
     receipt = fixtures.ReceiptFactory(
         point_of_sales=models.PointOfSales.objects.first(),
         document_type__code=80,
     )
     fixtures.VatFactory(vat_type__code=5, receipt=receipt)
     fixtures.TaxFactory(tax_type__code=3, receipt=receipt)
     return receipt
コード例 #7
0
ファイル: test_models.py プロジェクト: placiana/django-afip
    def test_validate(self):
        receipt = fixtures.ReceiptFactory()
        ticket = MagicMock()
        self.called = False

        def fake_validate(qs, ticket=None):
            self.assertQuerysetEqual(qs, [receipt.pk], lambda r: r.pk)
            self.called = True

        with patch(
                'django_afip.models.ReceiptQuerySet.validate',
                fake_validate,
        ):
            receipt.validate(ticket)

        self.assertTrue(self.called)
コード例 #8
0
    def test_validation_good_without_tax(self):
        """Test validating valid receipts."""
        receipt = fixtures.ReceiptFactory(
            point_of_sales=models.PointOfSales.objects.first(),
            total_amount=121,
        )
        fixtures.VatFactory(vat_type__code=5, receipt=receipt)

        errs = models.Receipt.objects.all().validate()

        self.assertEqual(len(errs), 0)
        self.assertEqual(
            receipt.validation.result,
            models.ReceiptValidation.RESULT_APPROVED,
        )
        self.assertEqual(models.ReceiptValidation.objects.count(), 1)
コード例 #9
0
ファイル: test_models.py プロジェクト: placiana/django-afip
    def test_validate(self):
        receipt = fixtures.ReceiptFactory()
        queryset = models.Receipt.objects.filter(pk=receipt.pk)
        ticket = MagicMock()

        with patch(
                'django_afip.models.ReceiptQuerySet._assign_numbers',
                spec=True,
        ) as mocked_assign_numbers, patch(
                'django_afip.models.ReceiptQuerySet._validate',
                spec=True,
        ) as mocked__validate:
            queryset.validate(ticket)

        self.assertEqual(mocked_assign_numbers.call_count, 1)

        self.assertEqual(mocked__validate.call_count, 1)
        self.assertEqual(mocked__validate.call_args, call(ticket))
コード例 #10
0
    def test_validation_with_observations(self):
        receipt = fixtures.ReceiptFactory(
            document_number=20291144404,
            document_type__code=80,
            point_of_sales=models.PointOfSales.objects.first(),
            receipt_type__code=1,
        )
        fixtures.VatFactory(vat_type__code=5, receipt=receipt)
        fixtures.TaxFactory(tax_type__code=3, receipt=receipt)

        errs = models.Receipt.objects.all().validate()

        self.assertEqual(len(errs), 0)
        self.assertEqual(
            receipt.validation.result,
            models.ReceiptValidation.RESULT_APPROVED,
        )
        self.assertEqual(models.ReceiptValidation.objects.count(), 1)
        self.assertEqual(models.Observation.objects.count(), 1)
        self.assertEqual(receipt.validation.observations.count(), 1)
コード例 #11
0
ファイル: test_models.py プロジェクト: placiana/django-afip
    def test_proper_filtering(self):
        receipt = fixtures.ReceiptFactory()
        fixtures.TaxFactory(receipt=receipt)
        fixtures.TaxFactory()

        self.assertEqual(receipt.total_tax, 9)
コード例 #12
0
ファイル: test_models.py プロジェクト: placiana/django-afip
    def test_multiple_taxes(self):
        receipt = fixtures.ReceiptFactory()
        fixtures.TaxFactory(receipt=receipt)
        fixtures.TaxFactory(receipt=receipt)

        self.assertEqual(receipt.total_tax, 18)
コード例 #13
0
ファイル: test_models.py プロジェクト: placiana/django-afip
    def test_no_tax(self):
        receipt = fixtures.ReceiptFactory()

        self.assertEqual(receipt.total_tax, 0)
コード例 #14
0
ファイル: test_models.py プロジェクト: placiana/django-afip
    def test_multiple_vats(self):
        receipt = fixtures.ReceiptFactory()
        fixtures.VatFactory(receipt=receipt)
        fixtures.VatFactory(receipt=receipt)

        self.assertEqual(receipt.total_vat, 42)
コード例 #15
0
ファイル: test_models.py プロジェクト: placiana/django-afip
 def test_validated(self):
     receipt = fixtures.ReceiptFactory(receipt_number=1)
     fixtures.ReceiptValidationFactory(receipt=receipt)
     self.assertEqual(receipt.is_validated, True)
コード例 #16
0
ファイル: test_models.py プロジェクト: placiana/django-afip
 def test_not_validated(self):
     receipt = fixtures.ReceiptFactory()
     self.assertEqual(receipt.is_validated, False)