mirror of
https://github.com/django/django.git
synced 2025-01-09 09:55:57 +00:00
30 lines
996 B
Python
30 lines
996 B
Python
|
import unittest
|
||
|
|
||
|
from django.db import connection
|
||
|
from django.db.models.expressions import RawSQL
|
||
|
from django.test import TestCase
|
||
|
|
||
|
from ..models import Square
|
||
|
|
||
|
|
||
|
@unittest.skipUnless(connection.vendor == "postgresql", "PostgreSQL tests")
|
||
|
class BulkCreateUnnestTests(TestCase):
|
||
|
def test_single_object(self):
|
||
|
with self.assertNumQueries(1) as ctx:
|
||
|
Square.objects.bulk_create([Square(root=2, square=4)])
|
||
|
self.assertNotIn("UNNEST", ctx[0]["sql"])
|
||
|
|
||
|
def test_non_literal(self):
|
||
|
with self.assertNumQueries(1) as ctx:
|
||
|
Square.objects.bulk_create(
|
||
|
[Square(root=2, square=RawSQL("%s", (4,))), Square(root=3, square=9)]
|
||
|
)
|
||
|
self.assertNotIn("UNNEST", ctx[0]["sql"])
|
||
|
|
||
|
def test_unnest_eligible(self):
|
||
|
with self.assertNumQueries(1) as ctx:
|
||
|
Square.objects.bulk_create(
|
||
|
[Square(root=2, square=4), Square(root=3, square=9)]
|
||
|
)
|
||
|
self.assertIn("UNNEST", ctx[0]["sql"])
|