diff --git a/docs/ref/contrib/postgres/functions.txt b/docs/ref/contrib/postgres/functions.txt index 8d3df51864..171272c518 100644 --- a/docs/ref/contrib/postgres/functions.txt +++ b/docs/ref/contrib/postgres/functions.txt @@ -16,6 +16,8 @@ All of these functions are available from the Returns a version 4 UUID. +Requires PostgreSQL 9.4 or greater. + The `pgcrypto extension`_ must be installed. You can use the :class:`~django.contrib.postgres.operations.CryptoExtension` migration operation to install it. diff --git a/tests/postgres_tests/__init__.py b/tests/postgres_tests/__init__.py index 24d78c9bfe..ea6b96aff9 100644 --- a/tests/postgres_tests/__init__.py +++ b/tests/postgres_tests/__init__.py @@ -7,6 +7,16 @@ from django.db.backends.signals import connection_created from django.test import TestCase, modify_settings +def skipUnlessPG94(test): + try: + PG_VERSION = connection.pg_version + except AttributeError: + PG_VERSION = 0 + if PG_VERSION < 90400: + return unittest.skip('PostgreSQL ≥ 9.4 required')(test) + return test + + @unittest.skipUnless(connection.vendor == 'postgresql', "PostgreSQL specific tests") class PostgreSQLTestCase(TestCase): @classmethod diff --git a/tests/postgres_tests/test_functions.py b/tests/postgres_tests/test_functions.py index 875a4b9520..de5cb4d767 100644 --- a/tests/postgres_tests/test_functions.py +++ b/tests/postgres_tests/test_functions.py @@ -4,7 +4,7 @@ from time import sleep from django.contrib.postgres.functions import RandomUUID, TransactionNow -from . import PostgreSQLTestCase +from . import PostgreSQLTestCase, skipUnlessPG94 from .models import NowTestModel, UUIDTestModel @@ -29,6 +29,7 @@ class TestTransactionNow(PostgreSQLTestCase): self.assertEqual(m1.when, m2.when) +@skipUnlessPG94 class TestRandomUUID(PostgreSQLTestCase): def test_random_uuid(self):