summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/testing
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2012-10-15 17:36:17 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2012-10-15 17:36:17 -0400
commite46836e6613906585546da5276b5f9bbe3254d79 (patch)
tree079a6d2434d030a277c3a828968923203d6e12a0 /lib/sqlalchemy/testing
parentc307df6596dab489109cd216665cf30006b70d13 (diff)
downloadsqlalchemy-e46836e6613906585546da5276b5f9bbe3254d79.tar.gz
- break out unicode tests to a varchar + a text test, add a requires
Diffstat (limited to 'lib/sqlalchemy/testing')
-rw-r--r--lib/sqlalchemy/testing/requirements.py7
-rw-r--r--lib/sqlalchemy/testing/suite/test_types.py39
2 files changed, 28 insertions, 18 deletions
diff --git a/lib/sqlalchemy/testing/requirements.py b/lib/sqlalchemy/testing/requirements.py
index ae285afa4..ade1fd241 100644
--- a/lib/sqlalchemy/testing/requirements.py
+++ b/lib/sqlalchemy/testing/requirements.py
@@ -179,6 +179,13 @@ class SuiteRequirements(Requirements):
return exclusions.open()
@property
+ def text_type(self):
+ """Target database must support an unbounded Text() "
+ "type such as TEXT or CLOB"""
+
+ return exclusions.open()
+
+ @property
def empty_strings(self):
"""target database can persist/return an empty string."""
diff --git a/lib/sqlalchemy/testing/suite/test_types.py b/lib/sqlalchemy/testing/suite/test_types.py
index 4c1f57bc9..361d784b8 100644
--- a/lib/sqlalchemy/testing/suite/test_types.py
+++ b/lib/sqlalchemy/testing/suite/test_types.py
@@ -7,7 +7,7 @@ from sqlalchemy import Integer, Unicode, UnicodeText, select
from ..schema import Table, Column
-class UnicodeTest(fixtures.TablesTest):
+class _UnicodeFixture(object):
__requires__ = 'unicode_data',
data = u"Alors vous imaginez ma surprise, au lever du jour, "\
@@ -19,8 +19,7 @@ class UnicodeTest(fixtures.TablesTest):
Table('unicode_table', metadata,
Column('id', Integer, primary_key=True,
test_needs_autoincrement=True),
- Column('unicode_varchar', Unicode(250)),
- Column('unicode_text', UnicodeText),
+ Column('unicode_data', cls.datatype),
)
def test_round_trip(self):
@@ -29,24 +28,21 @@ class UnicodeTest(fixtures.TablesTest):
config.db.execute(
unicode_table.insert(),
{
- 'unicode_varchar': self.data,
- 'unicode_text': self.data
+ 'unicode_data': self.data,
}
)
row = config.db.execute(
select([
- unicode_table.c.unicode_varchar,
- unicode_table.c.unicode_text
+ unicode_table.c.unicode_data,
])
).first()
eq_(
row,
- (self.data, self.data)
+ (self.data, )
)
assert isinstance(row[0], unicode)
- assert isinstance(row[1], unicode)
def test_round_trip_executemany(self):
unicode_table = self.tables.unicode_table
@@ -55,8 +51,7 @@ class UnicodeTest(fixtures.TablesTest):
unicode_table.insert(),
[
{
- 'unicode_varchar': self.data,
- 'unicode_text': self.data
+ 'unicode_data': self.data,
}
for i in xrange(3)
]
@@ -64,17 +59,15 @@ class UnicodeTest(fixtures.TablesTest):
rows = config.db.execute(
select([
- unicode_table.c.unicode_varchar,
- unicode_table.c.unicode_text
+ unicode_table.c.unicode_data,
])
).fetchall()
eq_(
rows,
- [(self.data, self.data) for i in xrange(3)]
+ [(self.data, ) for i in xrange(3)]
)
for row in rows:
assert isinstance(row[0], unicode)
- assert isinstance(row[1], unicode)
@requirements.empty_strings
@@ -83,12 +76,22 @@ class UnicodeTest(fixtures.TablesTest):
config.db.execute(
unicode_table.insert(),
- {"unicode_varchar": u''}
+ {"unicode_data": u''}
)
row = config.db.execute(
- select([unicode_table.c.unicode_varchar])
+ select([unicode_table.c.unicode_data])
).first()
eq_(row, (u'',))
+class UnicodeVarcharTest(_UnicodeFixture, fixtures.TablesTest):
+ __requires__ = 'unicode_data',
+
+ datatype = Unicode(255)
+
+
+class UnicodeTextTest(_UnicodeFixture, fixtures.TablesTest):
+ __requires__ = 'unicode_data', 'text_type'
+
+ datatype = UnicodeText()
-__all__ = ('UnicodeTest',) \ No newline at end of file
+__all__ = ('UnicodeVarcharTest', 'UnicodeTextTest') \ No newline at end of file