diff options
author | Oleksandr Shulgin <oleksandr.shulgin@zalando.de> | 2015-06-01 18:05:11 +0200 |
---|---|---|
committer | Oleksandr Shulgin <oleksandr.shulgin@zalando.de> | 2015-06-01 18:05:11 +0200 |
commit | 4bb6f9cef2ac2631b2af881d945b770b64fa23bd (patch) | |
tree | b63446b6e55a92c303b706218e2820f494b03d27 /tests/testutils.py | |
parent | d66165232e5fa146bc968680d958c38ebe5b2880 (diff) | |
download | psycopg2-4bb6f9cef2ac2631b2af881d945b770b64fa23bd.tar.gz |
Add libpq version discovery
Diffstat (limited to 'tests/testutils.py')
-rw-r--r-- | tests/testutils.py | 37 |
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): |