1. import unittest
    
  2. 
    
  3. from django.db import connection
    
  4. from django.test import TransactionTestCase
    
  5. 
    
  6. from ..models import Square
    
  7. 
    
  8. 
    
  9. @unittest.skipUnless(connection.vendor == "oracle", "Oracle tests")
    
  10. class DatabaseSequenceTests(TransactionTestCase):
    
  11.     available_apps = []
    
  12. 
    
  13.     def test_get_sequences(self):
    
  14.         with connection.cursor() as cursor:
    
  15.             seqs = connection.introspection.get_sequences(
    
  16.                 cursor, Square._meta.db_table, Square._meta.local_fields
    
  17.             )
    
  18.             self.assertEqual(len(seqs), 1)
    
  19.             self.assertIsNotNone(seqs[0]["name"])
    
  20.             self.assertEqual(seqs[0]["table"], Square._meta.db_table)
    
  21.             self.assertEqual(seqs[0]["column"], "id")
    
  22. 
    
  23.     def test_get_sequences_manually_created_index(self):
    
  24.         with connection.cursor() as cursor:
    
  25.             with connection.schema_editor() as editor:
    
  26.                 editor._drop_identity(Square._meta.db_table, "id")
    
  27.                 seqs = connection.introspection.get_sequences(
    
  28.                     cursor, Square._meta.db_table, Square._meta.local_fields
    
  29.                 )
    
  30.                 self.assertEqual(
    
  31.                     seqs, [{"table": Square._meta.db_table, "column": "id"}]
    
  32.                 )
    
  33.                 # Recreate model, because adding identity is impossible.
    
  34.                 editor.delete_model(Square)
    
  35.                 editor.create_model(Square)