diff options
author | Julien Castets <jcastets@ocs.online.net> | 2015-03-16 11:45:06 +0100 |
---|---|---|
committer | Julien Castets <jcastets@ocs.online.net> | 2015-03-16 16:23:14 +0100 |
commit | edfe2deffb7a3ab637e5ee7ab3379911483380fa (patch) | |
tree | 40636b89fd30161303b3afaa93763d62495fe7d8 | |
parent | 3f23e65dabab7ef4c7cf305a9e07e6cb05aba801 (diff) | |
download | sqlalchemy-pr/160.tar.gz |
Accept unicode in CascadeOptionspr/160
-rw-r--r-- | lib/sqlalchemy/orm/util.py | 2 | ||||
-rw-r--r-- | test/orm/test_cascade.py | 10 |
2 files changed, 10 insertions, 2 deletions
diff --git a/lib/sqlalchemy/orm/util.py b/lib/sqlalchemy/orm/util.py index 9787b0fb4..ad071376d 100644 --- a/lib/sqlalchemy/orm/util.py +++ b/lib/sqlalchemy/orm/util.py @@ -35,7 +35,7 @@ class CascadeOptions(frozenset): 'expunge', 'delete_orphan') def __new__(cls, value_list): - if isinstance(value_list, str) or value_list is None: + if isinstance(value_list, util.string_types) or value_list is None: return cls.from_string(value_list) values = set(value_list) if values.difference(cls._allowed_cascades): diff --git a/test/orm/test_cascade.py b/test/orm/test_cascade.py index e39911d0f..f104ee34c 100644 --- a/test/orm/test_cascade.py +++ b/test/orm/test_cascade.py @@ -2,7 +2,7 @@ import copy from sqlalchemy.testing import assert_raises, assert_raises_message from sqlalchemy import Integer, String, ForeignKey, Sequence, \ - exc as sa_exc + exc as sa_exc, util from sqlalchemy.testing.schema import Table, Column from sqlalchemy.orm import mapper, relationship, create_session, \ sessionmaker, class_mapper, backref, Session, util as orm_util,\ @@ -119,6 +119,14 @@ class CascadeArgTest(fixtures.MappedTest): 'refresh-expire', 'save-update']) ) + def test_cascade_unicode(self): + User, Address = self.classes.User, self.classes.Address + users, addresses = self.tables.users, self.tables.addresses + + rel = relationship(Address) + rel.cascade = util.u('save-update, merge, expunge') + eq_(rel.cascade, set(['save-update', 'merge', 'expunge'])) + class O2MCascadeDeleteOrphanTest(fixtures.MappedTest): run_inserts = None |