From c4e2fc5d9872c9a0c9c052a2e124f8a9b87de9b4 Mon Sep 17 00:00:00 2001 From: Mikhail Nacharov Date: Tue, 7 Feb 2017 09:49:31 +0500 Subject: Fixed #22669 -- Fixed QuerySet.bulk_create() with empty model fields on Oracle. --- tests/bulk_create/models.py | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) (limited to 'tests/bulk_create/models.py') diff --git a/tests/bulk_create/models.py b/tests/bulk_create/models.py index c302a70b1b..75d4a3cbdc 100644 --- a/tests/bulk_create/models.py +++ b/tests/bulk_create/models.py @@ -1,4 +1,9 @@ +import datetime +import uuid +from decimal import Decimal + from django.db import models +from django.utils import timezone class Country(models.Model): @@ -51,3 +56,32 @@ class TwoFields(models.Model): class NoFields(models.Model): pass + + +class NullableFields(models.Model): + # Fields in db.backends.oracle.BulkInsertMapper + big_int_filed = models.BigIntegerField(null=True, default=1) + binary_field = models.BinaryField(null=True, default=b'data') + date_field = models.DateField(null=True, default=timezone.now) + datetime_field = models.DateTimeField(null=True, default=timezone.now) + decimal_field = models.DecimalField(null=True, max_digits=2, decimal_places=1, default=Decimal('1.1')) + duration_field = models.DurationField(null=True, default=datetime.timedelta(1)) + float_field = models.FloatField(null=True, default=3.2) + integer_field = models.IntegerField(null=True, default=2) + null_boolean_field = models.NullBooleanField(null=True, default=False) + positive_integer_field = models.PositiveIntegerField(null=True, default=3) + positive_small_integer_field = models.PositiveSmallIntegerField(null=True, default=4) + small_integer_field = models.SmallIntegerField(null=True, default=5) + time_field = models.TimeField(null=True, default=timezone.now) + # Fields not required in BulkInsertMapper + char_field = models.CharField(null=True, max_length=4, default='char') + email_field = models.EmailField(null=True, default='user@example.com') + duration_field = models.DurationField(null=True, default=datetime.timedelta(1)) + file_field = models.FileField(null=True, default='file.txt') + file_path_field = models.FilePathField(path='/tmp', null=True, default='file.txt') + generic_ip_address_field = models.GenericIPAddressField(null=True, default='127.0.0.1') + image_field = models.ImageField(null=True, default='image.jpg') + slug_field = models.SlugField(null=True, default='slug') + text_field = models.TextField(null=True, default='text') + url_field = models.URLField(null=True, default='/') + uuid_field = models.UUIDField(null=True, default=uuid.uuid4) -- cgit v1.3