summaryrefslogtreecommitdiff
path: root/tests/backends/oracle/test_operations.py
blob: bcae17cec6350e5bec16288b49b080adb50d06d4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import unittest

from django.db import connection


@unittest.skipUnless(connection.vendor == 'oracle', 'Oracle tests')
class OperationsTests(unittest.TestCase):

    def test_sequence_name_truncation(self):
        seq_name = connection.ops._get_no_autofield_sequence_name('schema_authorwithevenlongee869')
        self.assertEqual(seq_name, 'SCHEMA_AUTHORWITHEVENLOB0B8_SQ')

    def test_bulk_batch_size(self):
        # Oracle restricts the number of parameters in a query.
        objects = range(2**16)
        self.assertEqual(connection.ops.bulk_batch_size([], objects), len(objects))
        # Each field is a parameter for each object.
        self.assertEqual(
            connection.ops.bulk_batch_size(['id'], objects),
            connection.features.max_query_params,
        )
        self.assertEqual(
            connection.ops.bulk_batch_size(['id', 'other'], objects),
            connection.features.max_query_params // 2,
        )