From 168bab1cf19c71b55e53e5ed07def2ebe61332f6 Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Sun, 25 Nov 2007 23:46:05 +0000 Subject: [PATCH] - check for NoneType too with unicode.... - fixed ORM tests to have proper unicode --- lib/sqlalchemy/types.py | 3 ++- test/orm/assorted_eager.py | 2 +- test/orm/eager_relations.py | 6 ++--- test/orm/relationships.py | 48 ++++++++++++++++++------------------- 4 files changed, 30 insertions(+), 29 deletions(-) diff --git a/lib/sqlalchemy/types.py b/lib/sqlalchemy/types.py index ac9a36195b..93e7d60668 100644 --- a/lib/sqlalchemy/types.py +++ b/lib/sqlalchemy/types.py @@ -18,6 +18,7 @@ import datetime as dt from sqlalchemy import exceptions from sqlalchemy.util import pickle, Decimal as _python_Decimal +NoneType = type(None) class _UserTypeAdapter(type): """adapts 0.3 style user-defined types with convert_bind_param/convert_result_value @@ -319,7 +320,7 @@ class String(Concatenable, TypeEngine): def process(value): if isinstance(value, unicode): return value.encode(dialect.encoding) - elif assert_unicode: + elif assert_unicode and not isinstance(value, (unicode, NoneType)): raise exceptions.InvalidRequestError("Received non-unicode bind param value %r" % value) else: return value diff --git a/test/orm/assorted_eager.py b/test/orm/assorted_eager.py index 194a836c03..dbc6847186 100644 --- a/test/orm/assorted_eager.py +++ b/test/orm/assorted_eager.py @@ -730,7 +730,7 @@ class EagerTest8(ORMTest): testbase.db.execute(project_t.insert(), {'id':1}) testbase.db.execute(task_status_t.insert(), {'id':1}) testbase.db.execute(task_type_t.insert(), {'id':1}) - testbase.db.execute(task_t.insert(), {'title':'task 1', 'task_type_id':1, 'status_id':1, 'prj_id':1}) + testbase.db.execute(task_t.insert(), {'title':u'task 1', 'task_type_id':1, 'status_id':1, 'prj_id':1}) @testing.fails_on('maxdb') def test_nested_joins(self): diff --git a/test/orm/eager_relations.py b/test/orm/eager_relations.py index 52602ecae3..068f09d021 100644 --- a/test/orm/eager_relations.py +++ b/test/orm/eager_relations.py @@ -723,8 +723,8 @@ class SelfReferentialM2MEagerTest(ORMTest): }) sess = create_session() - w1 = Widget(name='w1') - w2 = Widget(name='w2') + w1 = Widget(name=u'w1') + w2 = Widget(name=u'w2') w1.children.append(w2) sess.save(w1) sess.flush() @@ -732,7 +732,7 @@ class SelfReferentialM2MEagerTest(ORMTest): # l = sess.query(Widget).filter(Widget.name=='w1').all() # print l - assert [Widget(name='w1', children=[Widget(name='w2')])] == sess.query(Widget).filter(Widget.name=='w1').all() + assert [Widget(name='w1', children=[Widget(name='w2')])] == sess.query(Widget).filter(Widget.name==u'w1').all() class CyclicalInheritingEagerTest(ORMTest): def define_tables(self, metadata): diff --git a/test/orm/relationships.py b/test/orm/relationships.py index 0af70975ab..59d28ffa40 100644 --- a/test/orm/relationships.py +++ b/test/orm/relationships.py @@ -150,13 +150,13 @@ class RelationTest2(PersistTest): c1 = Company() c2 = Company() - e1 = Employee('emp1', c1, 1) - e2 = Employee('emp2', c1, 2, e1) - e3 = Employee('emp3', c1, 3, e1) - e4 = Employee('emp4', c1, 4, e3) - e5 = Employee('emp5', c2, 1) - e6 = Employee('emp6', c2, 2, e5) - e7 = Employee('emp7', c2, 3, e5) + e1 = Employee(u'emp1', c1, 1) + e2 = Employee(u'emp2', c1, 2, e1) + e3 = Employee(u'emp3', c1, 3, e1) + e4 = Employee(u'emp4', c1, 4, e3) + e5 = Employee(u'emp5', c2, 1) + e6 = Employee(u'emp6', c2, 2, e5) + e7 = Employee(u'emp7', c2, 3, e5) [sess.save(x) for x in [c1,c2]] sess.flush() @@ -194,13 +194,13 @@ class RelationTest2(PersistTest): c1 = Company() c2 = Company() - e1 = Employee('emp1', c1, 1) - e2 = Employee('emp2', c1, 2, e1) - e3 = Employee('emp3', c1, 3, e1) - e4 = Employee('emp4', c1, 4, e3) - e5 = Employee('emp5', c2, 1) - e6 = Employee('emp6', c2, 2, e5) - e7 = Employee('emp7', c2, 3, e5) + e1 = Employee(u'emp1', c1, 1) + e2 = Employee(u'emp2', c1, 2, e1) + e3 = Employee(u'emp3', c1, 3, e1) + e4 = Employee(u'emp4', c1, 4, e3) + e5 = Employee(u'emp5', c2, 1) + e6 = Employee(u'emp6', c2, 2, e5) + e7 = Employee(u'emp7', c2, 3, e5) [sess.save(x) for x in [c1,c2]] sess.flush() @@ -314,15 +314,15 @@ class RelationTest3(PersistTest): def testbasic(self): """test the combination of complicated join conditions with post_update""" - j1 = Job('somejob') - j1.create_page('page1') - j1.create_page('page2') - j1.create_page('page3') + j1 = Job(u'somejob') + j1.create_page(u'page1') + j1.create_page(u'page2') + j1.create_page(u'page3') - j2 = Job('somejob2') - j2.create_page('page1') - j2.create_page('page2') - j2.create_page('page3') + j2 = Job(u'somejob2') + j2.create_page(u'page1') + j2.create_page(u'page2') + j2.create_page(u'page3') j2.pages[0].add_version() j2.pages[0].add_version() @@ -337,14 +337,14 @@ class RelationTest3(PersistTest): s.flush() s.clear() - j = s.query(Job).get_by(jobno='somejob') + j = s.query(Job).get_by(jobno=u'somejob') oldp = list(j.pages) j.pages = [] s.flush() s.clear() - j = s.query(Job).get_by(jobno='somejob2') + j = s.query(Job).get_by(jobno=u'somejob2') j.pages[1].current_version = 12 s.delete(j) s.flush() -- 2.47.2