Example #1
0
def test_check_can_pay_not():
    VatSettingsFactory()
    sales_ledger = SalesLedgerFactory()
    payment = sales_ledger.create_payment()
    payment.set_paid()
    with pytest.raises(PayError):
        payment.check_can_pay
Example #2
0
 def setUp(self):
     VatSettingsFactory()
     Notify.objects.create_notify('*****@*****.**')
     default_scenario_login()
     init_app_pay()
     self.web = get_user_web()
     self.assertTrue(self.client.login(
         username=self.web.username,
         password=TEST_PASSWORD,
     ))
     # create a payment
     stock = ProductType.objects.create_product_type('stock', 'Stock')
     stationery = ProductCategory.objects.create_product_category(
         'stationery', 'Stationery', stock
     )
     pencil = Product.objects.create_product(
         'pencil', 'Pencil', '', Decimal('1.32'), stationery
     )
     sales_ledger = SalesLedgerFactory(
         product=pencil,
         quantity=Decimal('2'),
     )
     self.payment = sales_ledger.create_payment()
     self.payment.save()
     self.payment.url = reverse('pay.list')
     self.payment.url_failure = reverse('pay.list')
     self.payment.save()
Example #3
0
def test_check_can_pay_too_late():
    VatSettingsFactory()
    sales_ledger = SalesLedgerFactory()
    payment = sales_ledger.create_payment()
    payment.created = timezone.now() + relativedelta(hours=-1, minutes=-3)
    payment.save()
    with pytest.raises(PayError):
        payment.check_can_pay
Example #4
0
def test_total():
    VatSettingsFactory()
    sales_ledger = SalesLedgerFactory(
        product=ProductFactory(price=Decimal('2.50')),
        quantity=Decimal('2'),
    )
    payment = sales_ledger.create_payment()
    assert Decimal('6.00') == payment.total
Example #5
0
def test_check_can_pay_too_early():
    """This should never happen... but test anyway."""
    VatSettingsFactory()
    sales_ledger = SalesLedgerFactory()
    payment = sales_ledger.create_payment()
    payment.created = timezone.now() + relativedelta(hours=+1, minutes=+2)
    payment.save()
    with pytest.raises(PayError):
        payment.check_can_pay
Example #6
0
def test_check_can_pay():
    VatSettingsFactory()
    sales_ledger = SalesLedgerFactory()
    payment = sales_ledger.create_payment()
    try:
        payment.check_can_pay
        pass
    except PayError:
        assert False, 'payment is due - so can be paid'
Example #7
0
def test_set_payment_failed():
    VatSettingsFactory()
    sales_ledger = SalesLedgerFactory(title='Carol')
    assert not sales_ledger.is_paid
    payment = sales_ledger.create_payment()
    assert not payment.is_paid
    payment.set_payment_failed()
    # refresh
    payment = Payment.objects.get(pk=payment.pk)
    assert not payment.is_paid
    sales_ledger = SalesLedger.objects.get(title='Carol')
    assert not sales_ledger.is_paid
    assert PaymentState.FAIL == payment.state.slug
Example #8
0
def test_set_paid():
    VatSettingsFactory()
    sales_ledger = SalesLedgerFactory(title='Carol')
    assert not sales_ledger.is_paid
    payment = sales_ledger.create_payment()
    assert not payment.is_paid
    payment.set_paid()
    # refresh
    payment = Payment.objects.get(pk=payment.pk)
    assert payment.is_paid
    # refresh
    sales_ledger = SalesLedger.objects.get(title='Carol')
    assert sales_ledger.is_paid
Example #9
0
def test_mail_template_context():
    VatSettingsFactory()
    product = ProductFactory(name='Colour Pencils', price=Decimal('10.00'))
    sales_ledger = SalesLedgerFactory(
        email='*****@*****.**',
        title='Mr Patrick Kimber',
        product=product,
    )
    payment = sales_ledger.create_payment()
    assert {
        '*****@*****.**': dict(
            description='Colour Pencils (£10.00 + £2.00 vat)',
            name='Mr Patrick Kimber',
            total='£12.00',
        ),
    } == payment.mail_template_context()
Example #10
0
def test_make_payment():
    VatSettingsFactory()
    sales_ledger = SalesLedgerFactory()
    sales_ledger.create_payment()
Example #11
0
def test_unique_together():
    VatSettingsFactory()
    sales_ledger = SalesLedgerFactory()
    sales_ledger.create_payment()
    with pytest.raises(IntegrityError):
        sales_ledger.create_payment()
Example #12
0
def test_payment_line_str():
    VatSettingsFactory()
    sales_ledger = SalesLedgerFactory()
    payment = sales_ledger.create_payment()
    payment_line = payment.paymentline_set.first()
    str(payment_line)