Browse Source

Refs #22144 -- Added test for QuerySet.bulk_create() with long non-ASCII text.

Mariusz Felisiak 8 years ago
parent
commit
dc811cf503
2 changed files with 11 additions and 0 deletions
  1. 1 0
      tests/bulk_create/models.py
  2. 10 0
      tests/bulk_create/tests.py

+ 1 - 0
tests/bulk_create/models.py

@@ -14,6 +14,7 @@ except ImportError:
 class Country(models.Model):
     name = models.CharField(max_length=255)
     iso_two_letter = models.CharField(max_length=2)
+    description = models.TextField()
 
 
 class ProxyCountry(Country):

+ 10 - 0
tests/bulk_create/tests.py

@@ -39,6 +39,16 @@ class BulkCreateTests(TestCase):
         with self.assertNumQueries(1):
             Country.objects.bulk_create(self.data)
 
+    @skipUnlessDBFeature('has_bulk_insert')
+    def test_long_non_ascii_text(self):
+        """
+        Inserting non-ASCII values with a length in the range 2001 to 4000
+        characters, i.e. 4002 to 8000 bytes, must be set as a CLOB on Oracle
+        (#22144).
+        """
+        Country.objects.bulk_create([Country(description='Ж' * 3000)])
+        self.assertEqual(Country.objects.count(), 1)
+
     def test_multi_table_inheritance_unsupported(self):
         expected_message = "Can't bulk create a multi-table inherited model"
         with self.assertRaisesMessage(ValueError, expected_message):