[POS-commit] r6316 - stoqlib/trunk/stoqlib/domain/test
Johan Dahlin
jdahlin at async.com.br
Wed Apr 4 16:34:58 BRT 2007
Author: jdahlin
Date: Wed Apr 4 16:34:58 2007
New Revision: 6316
Modified:
stoqlib/trunk/stoqlib/domain/test/test_payment_method.py
Log:
Improve tests for #3270
Modified: stoqlib/trunk/stoqlib/domain/test/test_payment_method.py
==============================================================================
--- stoqlib/trunk/stoqlib/domain/test/test_payment_method.py (original)
+++ stoqlib/trunk/stoqlib/domain/test/test_payment_method.py Wed Apr 4 16:34:58 2007
@@ -37,37 +37,27 @@
PaymentAdaptToOutPayment)
from stoqlib.domain.test.domaintest import DomainTest
from stoqlib.domain.till import Till
+from stoqlib.exceptions import TillError
from stoqlib.lib.defaults import quantize
-class _TestPaymentMethodBase:
- def testCreateInPayment(self):
+class _TestPaymentMethod:
+ def createInPayment(self):
sale = self.create_sale()
group = sale.addFacet(IPaymentGroup,
connection=self.trans)
method = self.method_type.selectOne(connection=self.trans)
- payment = method.create_inpayment(group, Decimal(100))
- self.failUnless(isinstance(payment, PaymentAdaptToInPayment))
- payment = payment.get_adapted()
- self.failUnless(isinstance(payment, Payment))
- self.assertEqual(payment.value, Decimal(100))
+ return method.create_inpayment(group, Decimal(100))
- def testCreateOutPayment(self):
+ def createOutPayment(self):
purchase = self.create_purchase_order()
group = purchase.addFacet(IPaymentGroup,
connection=self.trans)
method = self.method_type.selectOne(connection=self.trans)
- payment = method.create_outpayment(group, Decimal(100))
- self.failUnless(isinstance(payment, PaymentAdaptToOutPayment))
- payment = payment.get_adapted()
- self.failUnless(isinstance(payment, Payment))
- self.assertEqual(payment.value, Decimal(100))
-
- def testCreateInPayments(self):
- if self.method_type in (MoneyPM, GiftCertificatePM):
- return
+ return method.create_outpayment(group, Decimal(100))
+ def createInPayments(self):
sale = self.create_sale()
group = sale.addFacet(IPaymentGroup,
connection=self.trans)
@@ -76,8 +66,41 @@
method = self.method_type.selectOne(connection=self.trans)
payments = method.create_inpayments(group, Decimal(100),
[d, d, d])
- payments = [p.get_adapted() for p in payments]
+ return [p.get_adapted() for p in payments]
+
+ def createOutPayments(self):
+ purchase = self.create_purchase_order()
+ group = purchase.addFacet(IPaymentGroup,
+ connection=self.trans)
+
+ d = datetime.datetime.today()
+ method = self.method_type.selectOne(connection=self.trans)
+ payments = method.create_outpayments(group, Decimal(100),
+ [d, d, d])
+ return [p.get_adapted() for p in payments]
+
+
+class _TestPaymentMethodsBase(_TestPaymentMethod):
+ def testCreateInPayment(self):
+ payment = self.createInPayment()
+ self.failUnless(isinstance(payment, PaymentAdaptToInPayment))
+ payment = payment.get_adapted()
+ self.failUnless(isinstance(payment, Payment))
+ self.assertEqual(payment.value, Decimal(100))
+
+ def testCreateOutPayment(self):
+ payment = self.createOutPayment()
+ self.failUnless(isinstance(payment, PaymentAdaptToOutPayment))
+ payment = payment.get_adapted()
+ self.failUnless(isinstance(payment, Payment))
+ self.assertEqual(payment.value, Decimal(100))
+
+ def testCreateInPayments(self):
+ if self.method_type in (MoneyPM, GiftCertificatePM):
+ return
+
+ payments = self.createInPayments()
athird = quantize(Decimal(100) / Decimal(3))
rest = quantize(Decimal(100) - (athird * 2))
self.assertEqual(len(payments), 3)
@@ -89,16 +112,7 @@
if self.method_type in (MoneyPM, GiftCertificatePM):
return
- purchase = self.create_purchase_order()
- group = purchase.addFacet(IPaymentGroup,
- connection=self.trans)
-
- d = datetime.datetime.today()
- method = self.method_type.selectOne(connection=self.trans)
- payments = method.create_outpayments(group, Decimal(100),
- [d, d, d])
- payments = [p.get_adapted() for p in payments]
-
+ payments = self.createOutPayments()
athird = quantize(Decimal(100) / Decimal(3))
rest = quantize(Decimal(100) - (athird * 2))
self.assertEqual(len(payments), 3)
@@ -126,45 +140,53 @@
-class TestAPaymentMethod(DomainTest, _TestPaymentMethodBase):
- method_type = MoneyPM
- enum = PaymentMethodType.MONEY
+class TestAPaymentMethod(DomainTest, _TestPaymentMethod):
+ method_type = CheckPM
+ enum = PaymentMethodType.CHECK
def _createUnclosedTill(self):
till = Till(station=get_current_station(self.trans),
connection=self.trans)
till.open_till()
-
- # Update the opening date to yesterday
yesterday = (datetime.datetime.today() - datetime.timedelta(1)).date()
till.opening_date = yesterday
def testCreateOutPaymentUnClosedTill(self):
self._createUnclosedTill()
- self.testCreateOutPayment()
+ payment = self.createOutPayment()
+ self.failUnless(isinstance(payment, PaymentAdaptToOutPayment))
def testCreateOutPaymentsUnClosedTill(self):
# Test for bug 3270
self._createUnclosedTill()
- self.testCreateOutPayments()
+ payment = self.createOutPayment()
+ self.failUnless(isinstance(payment, PaymentAdaptToOutPayment))
+
+ def testCreateInPaymentUnClosedTill(self):
+ self._createUnclosedTill()
+ self.assertRaises(TillError, self.createInPayment)
+
+ def testCreateInPaymentsUnClosedTill(self):
+ self._createUnclosedTill()
+ self.assertRaises(TillError, self.createInPayments)
-class TestMoneyPM(DomainTest, _TestPaymentMethodBase):
+class TestMoneyPM(DomainTest, _TestPaymentMethodsBase):
method_type = MoneyPM
enum = PaymentMethodType.MONEY
-class TestCheckPM(DomainTest, _TestPaymentMethodBase):
+class TestCheckPM(DomainTest, _TestPaymentMethodsBase):
method_type = CheckPM
enum = PaymentMethodType.CHECK
-class TestBillPM(DomainTest, _TestPaymentMethodBase):
+class TestBillPM(DomainTest, _TestPaymentMethodsBase):
method_type = BillPM
enum = PaymentMethodType.BILL
-class TestFinancePM(DomainTest, _TestPaymentMethodBase):
+class TestFinancePM(DomainTest, _TestPaymentMethodsBase):
method_type = FinancePM
enum = PaymentMethodType.FINANCIAL
-class TestGiftCertificatePM(DomainTest, _TestPaymentMethodBase):
+class TestGiftCertificatePM(DomainTest, _TestPaymentMethodsBase):
method_type = GiftCertificatePM
enum = PaymentMethodType.GIFT_CERTIFICATE
More information about the POS-commit
mailing list