コード例 #1
0
    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)
コード例 #2
0
 def test_transaction_now(self):
     """
     Checks that queries with a TransactionNow() parameter are not cached.
     """
     obj = Test.objects.create(datetime='1992-07-02T12:00:00')
     qs = Test.objects.filter(datetime__lte=TransactionNow())
     with self.assertRaises(UncachableQuery):
         self.assert_tables(qs, Test)
     self.assert_query_cached(qs, [obj], after=1)
コード例 #3
0
ファイル: postgres.py プロジェクト: bennylope/django-cachalot
 def test_transaction_now(self):
     """
     Checks that queries with a TransactionNow() parameter are not cached.
     """
     obj = Test.objects.create(datetime='1992-07-02T12:00:00')
     qs = Test.objects.filter(datetime__lte=TransactionNow())
     with self.assertNumQueries(1):
         obj1 = qs.get()
     with self.assertNumQueries(1):
         obj2 = qs.get()
     self.assertEqual(obj1, obj2)
     self.assertEqual(obj1, obj)