diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2011-06-04 20:20:28 -0400 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2011-06-04 20:20:28 -0400 |
commit | c0f922116004d762991bdfe56da31d3b70e8c01d (patch) | |
tree | d69ad259f86585c2e6dc8dc8d39ce1dca252a4ed | |
parent | d9a2c64a412feb5341eb1b7f27452af30455b7c9 (diff) | |
download | sqlalchemy-c0f922116004d762991bdfe56da31d3b70e8c01d.tar.gz |
- Some unit test fixes regarding numeric arrays,
MATCH operator. A potential floating-point
inaccuracy issue was fixed, and certain tests
of the MATCH operator only execute within an
EN-oriented locale for now. [ticket:2175].
Also in 0.6.8.
-rw-r--r-- | CHANGES | 8 | ||||
-rw-r--r-- | test/dialect/test_postgresql.py | 6 | ||||
-rw-r--r-- | test/lib/requires.py | 9 |
3 files changed, 21 insertions, 2 deletions
@@ -52,6 +52,14 @@ CHANGES versions pre-3.3.0 that did not have this feature. [ticket:2173] +- postgresql + - Some unit test fixes regarding numeric arrays, + MATCH operator. A potential floating-point + inaccuracy issue was fixed, and certain tests + of the MATCH operator only execute within an + EN-oriented locale for now. [ticket:2175]. + Also in 0.6.8. + - mysql - Unit tests pass 100% on MySQL installed on windows. diff --git a/test/dialect/test_postgresql.py b/test/dialect/test_postgresql.py index 391f12022..70730983c 100644 --- a/test/dialect/test_postgresql.py +++ b/test/dialect/test_postgresql.py @@ -296,7 +296,7 @@ class FloatCoercionTest(fixtures.TablesTest, AssertsExecutionResults): Column('q', postgresql.ARRAY(Numeric)) ) metadata.create_all() - t1.insert().execute(x=[5], y=[5], z=[6], q=[6.4]) + t1.insert().execute(x=[5], y=[5], z=[6], q=[decimal.Decimal("6.4")]) row = t1.select().execute().first() eq_( row, @@ -2240,12 +2240,14 @@ class MatchTest(fixtures.TestBase, AssertsCompiledSQL): )).execute().fetchall() eq_([3], [r.id for r in results]) + @testing.requires.english_locale_on_postgresql def test_simple_derivative_match(self): results = \ matchtable.select().where(matchtable.c.title.match('nutshells' )).execute().fetchall() eq_([5], [r.id for r in results]) + @testing.requires.english_locale_on_postgresql def test_or_match(self): results1 = \ matchtable.select().where(or_(matchtable.c.title.match('nutshells' @@ -2258,6 +2260,7 @@ class MatchTest(fixtures.TestBase, AssertsCompiledSQL): )).order_by(matchtable.c.id).execute().fetchall() eq_([3, 5], [r.id for r in results2]) + @testing.requires.english_locale_on_postgresql def test_and_match(self): results1 = \ matchtable.select().where(and_(matchtable.c.title.match('python' @@ -2270,6 +2273,7 @@ class MatchTest(fixtures.TestBase, AssertsCompiledSQL): )).execute().fetchall() eq_([5], [r.id for r in results2]) + @testing.requires.english_locale_on_postgresql def test_match_across_joins(self): results = matchtable.select().where(and_(cattable.c.id == matchtable.c.category_id, diff --git a/test/lib/requires.py b/test/lib/requires.py index 70a2a6036..640af671e 100644 --- a/test/lib/requires.py +++ b/test/lib/requires.py @@ -404,4 +404,11 @@ def skip_mysql_on_windows(fn): skip_if(_has_mysql_on_windows, "Not supported on MySQL + Windows" ) - )
\ No newline at end of file + ) + +def english_locale_on_postgresql(fn): + return _chain_decorators_on( + fn, + skip_if(lambda: testing.against('postgresql') \ + and not testing.db.scalar('SHOW LC_COLLATE').startswith('en')) + ) |