From d34d39ade76e6b67299d8d88a7e5a2278a793dc3 Mon Sep 17 00:00:00 2001 From: Adam Chainz Date: Mon, 1 Jun 2015 18:00:34 +0100 Subject: Fixed #24894 -- Added contrib.postgres.functions.TransactionNow --- tests/postgres_tests/test_functions.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 tests/postgres_tests/test_functions.py (limited to 'tests/postgres_tests/test_functions.py') diff --git a/tests/postgres_tests/test_functions.py b/tests/postgres_tests/test_functions.py new file mode 100644 index 0000000000..620b561325 --- /dev/null +++ b/tests/postgres_tests/test_functions.py @@ -0,0 +1,28 @@ +from datetime import datetime +from time import sleep + +from django.contrib.postgres.functions import TransactionNow + +from . import PostgreSQLTestCase +from .models import NowTestModel + + +class TestTransactionNow(PostgreSQLTestCase): + + def test_transaction_now(self): + """ + The test case puts everything under a transaction, so two models + updated with a short gap should have the same time. + """ + m1 = NowTestModel.objects.create() + m2 = NowTestModel.objects.create() + + NowTestModel.objects.filter(id=m1.id).update(when=TransactionNow()) + sleep(0.1) + NowTestModel.objects.filter(id=m2.id).update(when=TransactionNow()) + + m1.refresh_from_db() + m2.refresh_from_db() + + self.assertIsInstance(m1.when, datetime) + self.assertEqual(m1.when, m2.when) -- cgit v1.3