diff options
Diffstat (limited to 'test/orm/merge.py')
-rw-r--r-- | test/orm/merge.py | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/test/orm/merge.py b/test/orm/merge.py index 3d35397fb..e8502d891 100644 --- a/test/orm/merge.py +++ b/test/orm/merge.py @@ -1,7 +1,7 @@ import testenv; testenv.configure_for_tests() from testlib import sa, testing from testlib.sa.util import OrderedSet -from testlib.sa.orm import mapper, relation, create_session +from testlib.sa.orm import mapper, relation, create_session, PropComparator, synonym, comparable_property from testlib.testing import eq_, ne_ from orm import _base, _fixtures @@ -670,6 +670,33 @@ class MergeTest(_fixtures.FixtureTest): except sa.exc.InvalidRequestError, e: assert "dont_load=True option does not support" in str(e) + @testing.resolve_artifact_names + def test_synonym_comparable(self): + class User(object): + + class Comparator(PropComparator): + pass + + def _getValue(self): + return self._value + + def _setValue(self, value): + setattr(self, '_value', value) + + value = property(_getValue, _setValue) + + mapper(User, users, properties={ + 'uid':synonym('id'), + 'foobar':comparable_property(User.Comparator,User.value), + }) + + sess = create_session() + u = User() + u.name = 'ed' + sess.save(u) + sess.flush() + sess.expunge(u) + sess.merge(u) if __name__ == "__main__": testenv.main() |