]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
- check for NoneType too with unicode....
authorMike Bayer <mike_mp@zzzcomputing.com>
Sun, 25 Nov 2007 23:46:05 +0000 (23:46 +0000)
committerMike Bayer <mike_mp@zzzcomputing.com>
Sun, 25 Nov 2007 23:46:05 +0000 (23:46 +0000)
- fixed ORM tests to have proper unicode

lib/sqlalchemy/types.py
test/orm/assorted_eager.py
test/orm/eager_relations.py
test/orm/relationships.py

index ac9a36195bf37df34122d1c404543e30e822dc8a..93e7d60668018659a63ee034774239af68e943c5 100644 (file)
@@ -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
index 194a836c032ce8b8246e7cc8ad8717fa106311f2..dbc6847186bff60463db9684c2ad19136d39f5f6 100644 (file)
@@ -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):
index 52602ecae39ea32b8615f3653dfa8e6de289a309..068f09d021f4f84d2aec031eb5e2d0c03574fc0f 100644 (file)
@@ -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):
index 0af70975ab4e9d7a407b706d7b1b12a8cecdc2de..59d28ffa401c55809b286673e5cadc11bbb0fcf6 100644 (file)
@@ -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()