Ignore:
Timestamp:
12 Mar 2015, 05:23:47 (10 years ago)
Author:
uli
Message:

Let cc payments basically run.

Location:
main/waeup.ikoba/branches/uli-payments/src/waeup/ikoba/payments/tests
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • main/waeup.ikoba/branches/uli-payments/src/waeup/ikoba/payments/tests/test_demo_provider.py

    r12734 r12740  
     1import unittest
    12from zope.component import queryUtility
    23from zope.component.hooks import setSite
     
    1112from waeup.ikoba.payments.payment import Payer, Payee, Payment
    1213from waeup.ikoba.payments.demo_provider import (
    13     DemoCreditcardPaymentService,
     14    DemoCreditcardPaymentService, RE_CC_NUMBER, RE_CSC,
    1415    )
    1516from waeup.ikoba.payments.tests.test_payment import FakePayer, FakePayable
    1617
    1718
    18 class DemoCreditcarPaymentServiceTests(FunctionalTestCase):
     19class TestDemoProviderHelpers(unittest.TestCase):
     20
     21    def test_re_cc_number(self):
     22        # we recognize valid numbers
     23        assert RE_CC_NUMBER.match('a') is None
     24        assert RE_CC_NUMBER.match('12345678') is None
     25        assert RE_CC_NUMBER.match('1234a5678') is None
     26        assert RE_CC_NUMBER.match('132456789') is not None
     27        assert RE_CC_NUMBER.match('123456789012345') is not None
     28
     29    def test_re_csc(self):
     30        # we recognize security numbers
     31        assert RE_CSC.match('12') is None
     32        assert RE_CSC.match('123') is not None
     33        assert RE_CSC.match('1234') is not None
     34        assert RE_CSC.match('12345') is None
     35        assert RE_CSC.match('12A2') is None
     36
     37
     38class DemoCreditcardPaymentServiceTests(FunctionalTestCase):
    1939
    2040    layer = FunctionalLayer
    2141
    2242    def setUp(self):
    23         super(DemoCreditcarPaymentServiceTests, self).setUp()
     43        super(DemoCreditcardPaymentServiceTests, self).setUp()
    2444        self.app = Company()
    2545        self.getRootFolder()['app'] = self.app
  • main/waeup.ikoba/branches/uli-payments/src/waeup/ikoba/payments/tests/test_payment.py

    r12734 r12740  
     1# -*- coding: utf-8 -*-
    12## $Id$
    23##
     
    2930    IPayment, STATE_UNPAID, STATE_PAID, STATE_FAILED,
    3031    IPaymentGatewayService, IPaymentItem, IPaymentGatewayServicesLister,
    31     IPayableFinder, IPayable, IPayer,
     32    IPayableFinder, IPayerFinder, IPayable, IPayer,
    3233    )
    3334from waeup.ikoba.app import Company
    3435from waeup.ikoba.payments.payment import (
    3536    Payment, get_payment_providers, PaymentItem, format_payment_item_values,
    36     get_payment, find_payable_from_payable_id,
     37    get_payment, find_payable_from_payable_id, find_payer_from_payer_id,
     38    format_amount,
    3739    )
    3840from waeup.ikoba.testing import (FunctionalLayer, FunctionalTestCase)
     
    120122             ],
    121123            'USD')
     124
     125    def test_format_amount(self):
     126        # we can make amounts readable
     127        D = decimal.Decimal
     128        self.assertEqual(format_amount(D("0"), 'USD'), u"US$ 0.00")
     129        self.assertEqual(format_amount(D("0.1"), 'EUR'), u"€ 0.10")
     130        self.assertEqual(format_amount(D("-1.2"), 'NGN'), u"₦ -1.20")
     131        self.assertEqual(format_amount(D("1234.5"), 'YEN'), u"YEN 1,234.50")
    122132
    123133
     
    177187        self.assertTrue(result3 is None)
    178188
     189    def test_find_payer_from_payer_id(self):
     190        # we can find payables.
     191        obj1 = object()
     192        obj2 = object()
     193
     194        class FakeFinder(object):
     195            valid = {'id1': obj1, 'id3': obj2}
     196
     197            def get_payer_by_id(self, the_id):
     198                return self.valid.get(the_id)
     199
     200        finder1 = FakeFinder()
     201        finder1.valid = {'id1': obj1}
     202        finder2 = FakeFinder()
     203        finder2.valid = {'id2': obj2}
     204        gsm = getGlobalSiteManager()
     205        try:
     206            gsm.registerUtility(finder1, provided=IPayerFinder, name='f1')
     207            gsm.registerUtility(finder2, provided=IPayerFinder, name='f2')
     208            result1 = find_payer_from_payer_id('id1')
     209            result2 = find_payer_from_payer_id('id2')
     210            result3 = find_payer_from_payer_id('id3')
     211        finally:
     212            gsm.unregisterUtility(finder1, IPayerFinder)
     213            gsm.unregisterUtility(finder2, IPayerFinder)
     214        self.assertTrue(result1 is obj1)
     215        self.assertTrue(result2 is obj2)
     216        self.assertTrue(result3 is None)
     217
    179218
    180219class PaymentTests(FunctionalTestCase):
Note: See TracChangeset for help on using the changeset viewer.