summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGES8
-rw-r--r--test/dialect/test_postgresql.py6
-rw-r--r--test/lib/requires.py9
3 files changed, 21 insertions, 2 deletions
diff --git a/CHANGES b/CHANGES
index 505df6394..22e6a5d2b 100644
--- a/CHANGES
+++ b/CHANGES
@@ -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'))
+ )