summaryrefslogtreecommitdiff
path: root/tests/testutils.py
diff options
context:
space:
mode:
authorOleksandr Shulgin <oleksandr.shulgin@zalando.de>2015-06-01 18:05:11 +0200
committerOleksandr Shulgin <oleksandr.shulgin@zalando.de>2015-06-01 18:05:11 +0200
commit4bb6f9cef2ac2631b2af881d945b770b64fa23bd (patch)
treeb63446b6e55a92c303b706218e2820f494b03d27 /tests/testutils.py
parentd66165232e5fa146bc968680d958c38ebe5b2880 (diff)
downloadpsycopg2-4bb6f9cef2ac2631b2af881d945b770b64fa23bd.tar.gz
Add libpq version discovery
Diffstat (limited to 'tests/testutils.py')
-rw-r--r--tests/testutils.py37
1 files changed, 37 insertions, 0 deletions
diff --git a/tests/testutils.py b/tests/testutils.py
index 6a78432..987bd7b 100644
--- a/tests/testutils.py
+++ b/tests/testutils.py
@@ -236,6 +236,43 @@ def skip_after_postgres(*ver):
return skip_after_postgres__
return skip_after_postgres_
+def libpq_version():
+ import psycopg2
+ v = psycopg2.__libpq_version__
+ if v >= 90100:
+ v = psycopg2.extensions.libpq_version()
+ return v
+
+def skip_before_libpq(*ver):
+ """Skip a test if libpq we're linked to is older than a certain version."""
+ ver = ver + (0,) * (3 - len(ver))
+ def skip_before_libpq_(f):
+ @wraps(f)
+ def skip_before_libpq__(self):
+ v = libpq_version()
+ if v < int("%d%02d%02d" % ver):
+ return self.skipTest("skipped because libpq %d" % v)
+ else:
+ return f(self)
+
+ return skip_before_libpq__
+ return skip_before_libpq_
+
+def skip_after_libpq(*ver):
+ """Skip a test if libpq we're linked to is newer than a certain version."""
+ ver = ver + (0,) * (3 - len(ver))
+ def skip_after_libpq_(f):
+ @wraps(f)
+ def skip_after_libpq__(self):
+ v = libpq_version()
+ if v >= int("%d%02d%02d" % ver):
+ return self.skipTest("skipped because libpq %s" % v)
+ else:
+ return f(self)
+
+ return skip_after_libpq__
+ return skip_after_libpq_
+
def skip_before_python(*ver):
"""Skip a test on Python before a certain version."""
def skip_before_python_(f):