[POS-commit] r5330 - in stoqlib/trunk: stoqlib/database
Johan Dahlin
jdahlin at async.com.br
Fri Nov 10 13:03:30 BRST 2006
Author: jdahlin
Date: Fri Nov 10 13:03:29 2006
New Revision: 5330
Modified:
stoqlib/trunk/stoqlib/database/synchronization.py
stoqlib/trunk/tests/sync/test_sync.py
Log:
Synchronization test facets. Fix a bug that makes sure to synchronize all the facet tables. Part of #2912
Modified: stoqlib/trunk/stoqlib/database/synchronization.py
==============================================================================
--- stoqlib/trunk/stoqlib/database/synchronization.py (original)
+++ stoqlib/trunk/stoqlib/database/synchronization.py Fri Nov 10 13:03:29 2006
@@ -465,10 +465,8 @@
trans.query(cmd)
def _bump_id_sequences(self, station, policy):
- table_names = []
- for table_name, table_policy in policy.tables:
- table = get_table_type_by_name(table_name)
- table_names.append(table.sqlmeta.table + '_id_seq')
+ table_names = [t.sqlmeta.table + '_id_seq' for t in get_tables(policy)]
+
branch = station.branch
# The main branch is assumed to be 1, so out must be at least 2
if branch.id < 2:
Modified: stoqlib/trunk/tests/sync/test_sync.py
==============================================================================
--- stoqlib/trunk/tests/sync/test_sync.py (original)
+++ stoqlib/trunk/tests/sync/test_sync.py Fri Nov 10 13:03:29 2006
@@ -23,7 +23,9 @@
##
from stoqlib.database.runtime import get_connection, new_transaction
+from stoqlib.domain.interfaces import IIndividual
from stoqlib.domain.person import Person
+
from tests.sync.base import SyncTest
class TestUpdate(SyncTest):
@@ -63,3 +65,37 @@
self.switch_to_shop()
self.failUnless(Person.selectOneBy(name="Person 2",
connection=get_connection()))
+
+ def testFacet(self):
+ # Create a person in the shop which is "sleeping"
+ # Create a person in the office which is "working"
+
+ # Shop
+ self.switch_to_shop()
+ trans = new_transaction()
+ person = Person(name="Person 3", connection=trans)
+ person.addFacet(IIndividual, occupation="Sleeping",
+ connection=trans)
+ trans.commit()
+
+ # Office
+ self.switch_to_office()
+ trans = new_transaction()
+ person = Person(name="Person 4", connection=trans)
+ person.addFacet(IIndividual, occupation="Working",
+ connection=trans)
+ trans.commit()
+
+ self.update("shop-computer")
+ conn = get_connection()
+ self.failUnless(Person.selectOneBy(name="Person 3", connection=conn))
+ self.failUnless(Person.iselectOneBy(IIndividual, occupation="Sleeping",
+ connection=conn))
+
+ # Shop
+ conn = get_connection()
+ self.switch_to_shop()
+ self.failUnless(Person.selectOneBy(name="Person 4",
+ connection=conn))
+ self.failUnless(Person.iselectOneBy(IIndividual, occupation="Working",
+ connection=conn))
More information about the POS-commit
mailing list