[IMP] Speedup test account_assert_test.xml in account
authorSamus CTO <cto@openerp.com>
Thu, 13 Nov 2014 15:23:08 +0000 (16:23 +0100)
committerSamus CTO <cto@openerp.com>
Thu, 13 Nov 2014 16:00:42 +0000 (17:00 +0100)
addons/account/account.py
addons/account/account_assert_test.xml

index a12b5bd..c1aca3e 100644 (file)
@@ -1157,6 +1157,19 @@ class account_move(osv.osv):
     _description = "Account Entry"
     _order = 'id desc'
 
+    def account_assert_balanced(self, cr, uid, context=None):
+        cr.execute("""\
+            SELECT      move_id
+            FROM        account_move_line
+            WHERE       state = 'valid'
+            GROUP BY    move_id
+            HAVING      abs(sum(debit) - sum(credit)) > 0.00001
+            """)
+        assert len(cr.fetchall()) == 0, \
+            "For all Journal Items, the state is valid implies that the sum " \
+            "of credits equals the sum of debits"
+        return True
+
     def account_move_prepare(self, cr, uid, journal_id, date=False, ref='', company_id=False, context=None):
         '''
         Prepares and returns a dictionary of values, ready to be passed to create() based on the parameters received.
index 8802551..32e8afb 100644 (file)
@@ -1,8 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <openerp>
     <data>
-        <assert model="account.move" search="[]" string="For all Journal Items, the state is valid implies that the sum of credits equals the sum of debits">
-            <test expr="not len(line_id) or line_id[0].state != 'valid' or (sum([l.debit - l.credit for l in line_id]) &lt;= 0.00001)"/>
-        </assert>
+        <function name="account_assert_balanced" model="account.move"/>
     </data>
 </openerp>