mirror of
https://github.com/django/django.git
synced 2025-10-23 21:59:11 +00:00
Fixed #27996 -- Added RandomUUID function and CryptoExtension to contrib.postgres.
This commit is contained in:
committed by
Tim Graham
parent
98ee57e343
commit
fcb5dbfec0
@@ -4,13 +4,14 @@ from django.db import migrations
|
||||
|
||||
try:
|
||||
from django.contrib.postgres.operations import (
|
||||
BtreeGinExtension, CITextExtension, CreateExtension, HStoreExtension,
|
||||
TrigramExtension, UnaccentExtension,
|
||||
BtreeGinExtension, CITextExtension, CreateExtension, CryptoExtension,
|
||||
HStoreExtension, TrigramExtension, UnaccentExtension,
|
||||
)
|
||||
except ImportError:
|
||||
BtreeGinExtension = mock.Mock()
|
||||
CITextExtension = mock.Mock()
|
||||
CreateExtension = mock.Mock()
|
||||
CryptoExtension = mock.Mock()
|
||||
HStoreExtension = mock.Mock()
|
||||
TrigramExtension = mock.Mock()
|
||||
UnaccentExtension = mock.Mock()
|
||||
@@ -24,6 +25,7 @@ class Migration(migrations.Migration):
|
||||
# Ensure CreateExtension quotes extension names by creating one with a
|
||||
# dash in its name.
|
||||
CreateExtension('uuid-ossp'),
|
||||
CryptoExtension(),
|
||||
HStoreExtension(),
|
||||
TrigramExtension(),
|
||||
UnaccentExtension(),
|
||||
|
||||
@@ -191,6 +191,13 @@ class Migration(migrations.Migration):
|
||||
('when', models.DateTimeField(null=True, default=None)),
|
||||
]
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='UUIDTestModel',
|
||||
fields=[
|
||||
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
||||
('uuid', models.UUIDField(default=None, null=True)),
|
||||
]
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='RangesModel',
|
||||
fields=[
|
||||
|
||||
@@ -171,3 +171,7 @@ class StatTestModel(models.Model):
|
||||
|
||||
class NowTestModel(models.Model):
|
||||
when = models.DateTimeField(null=True, default=None)
|
||||
|
||||
|
||||
class UUIDTestModel(models.Model):
|
||||
uuid = models.UUIDField(default=None, null=True)
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
import uuid
|
||||
from datetime import datetime
|
||||
from time import sleep
|
||||
|
||||
from django.contrib.postgres.functions import TransactionNow
|
||||
from django.contrib.postgres.functions import RandomUUID, TransactionNow
|
||||
|
||||
from . import PostgreSQLTestCase
|
||||
from .models import NowTestModel
|
||||
from .models import NowTestModel, UUIDTestModel
|
||||
|
||||
|
||||
class TestTransactionNow(PostgreSQLTestCase):
|
||||
@@ -26,3 +27,15 @@ class TestTransactionNow(PostgreSQLTestCase):
|
||||
|
||||
self.assertIsInstance(m1.when, datetime)
|
||||
self.assertEqual(m1.when, m2.when)
|
||||
|
||||
|
||||
class TestRandomUUID(PostgreSQLTestCase):
|
||||
|
||||
def test_random_uuid(self):
|
||||
m1 = UUIDTestModel.objects.create()
|
||||
m2 = UUIDTestModel.objects.create()
|
||||
UUIDTestModel.objects.update(uuid=RandomUUID())
|
||||
m1.refresh_from_db()
|
||||
m2.refresh_from_db()
|
||||
self.assertIsInstance(m1.uuid, uuid.UUID)
|
||||
self.assertNotEqual(m1.uuid, m2.uuid)
|
||||
|
||||
Reference in New Issue
Block a user