summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulien Castets <jcastets@ocs.online.net>2015-03-16 11:45:06 +0100
committerJulien Castets <jcastets@ocs.online.net>2015-03-16 16:23:14 +0100
commitedfe2deffb7a3ab637e5ee7ab3379911483380fa (patch)
tree40636b89fd30161303b3afaa93763d62495fe7d8
parent3f23e65dabab7ef4c7cf305a9e07e6cb05aba801 (diff)
downloadsqlalchemy-pr/160.tar.gz
Accept unicode in CascadeOptionspr/160
-rw-r--r--lib/sqlalchemy/orm/util.py2
-rw-r--r--test/orm/test_cascade.py10
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