class ZomboDBIndexStatementAdapterTests(TestCase): def setUp(self): self.index_name = 'my_test_index' self.index = ZomboDBIndex( fields=['datetimes', 'dates', 'times'], name=self.index_name, url='http://localhost:9999/', shards=4, replicas=1, alias='my-test-index-alias', refresh_interval='1s', type_name='doc', bulk_concurrency=10, batch_size=8388608, compression_level=9, llapi=False, ) with connection.schema_editor() as editor: self.statement_adapter = self.index.create_sql( model=DateTimeArrayModel, schema_editor=editor, using='') self.repr = repr(self.statement_adapter) self.str = str(self.statement_adapter) def test_references_table(self): self.assertIs( self.statement_adapter.references_table( DateTimeArrayModel._meta.db_table), True) self.assertIs( self.statement_adapter.references_table( IntegerArrayModel._meta.db_table), False) def test_references_column(self): self.assertIs( self.statement_adapter.references_column( DateTimeArrayModel._meta.db_table, 'datetimes'), True) self.assertIs( self.statement_adapter.references_column( DateTimeArrayModel._meta.db_table, 'other'), False) def test_rename_table_references(self): self.statement_adapter.rename_table_references( DateTimeArrayModel._meta.db_table, 'other') self.assertEqual(repr(self.statement_adapter.parts['table']), '<Table \'"other"\'>') def test_rename_column_references(self): self.statement_adapter.rename_column_references( DateTimeArrayModel._meta.db_table, 'dates', 'other') self.assertEqual(repr(self.statement_adapter.parts['columns']), '<Columns \'"datetimes", "other", "times"\'>') def test_repr(self): self.assertEqual( self.repr, '<ZomboDBIndexStatementAdapter \'CREATE TYPE "my_test_index_row_type" AS ' '(datetimes timestamp with time zone[], dates date[], times time[]); ' 'CREATE INDEX "my_test_index" ON "tests_datetimearraymodel" ' 'USING zombodb ((ROW("datetimes", "dates", "times")::"my_test_index_row_type")) ' 'WITH (url = "http://localhost:9999/", shards = 4, replicas = 1, ' 'alias = "my-test-index-alias", refresh_interval = "1s", type_name = "doc", ' 'bulk_concurrency = 10, batch_size = 8388608, compression_level = 9, llapi = false) \'>' ) def test_str(self): self.assertEqual( self.str, 'CREATE TYPE "my_test_index_row_type" ' 'AS (datetimes timestamp with time zone[], dates date[], times time[]); ' 'CREATE INDEX "my_test_index" ON "tests_datetimearraymodel" ' 'USING zombodb ((ROW("datetimes", "dates", "times")::"my_test_index_row_type")) ' 'WITH (url = "http://localhost:9999/", shards = 4, replicas = 1, ' 'alias = "my-test-index-alias", refresh_interval = "1s", type_name = "doc", ' 'bulk_concurrency = 10, batch_size = 8388608, compression_level = 9, llapi = false) ' )
class ZomboDBIndexCreateStatementAdapterTests(TestCase): maxDiff = 10000 def setUp(self): self.index_name = 'my_test_index' self.index = ZomboDBIndex( fields=['datetimes', 'dates', 'times'], field_mapping=OrderedDict( [ # use OrderedDict to stabilize tests on Python < 3.6 ('datetimes', OrderedDict([('type', 'date'), ('format', 'HH:mm:ss.SSSSSS'), ('copy_to', 'zdb_all')])), ('dates', OrderedDict([('type', 'date'), ('copy_to', 'zdb_all')])), ('times', OrderedDict([('type', 'date'), ('copy_to', 'zdb_all')])), ]), name=self.index_name, shards=4, replicas=1, alias='my-test-index-alias', refresh_interval='1s', type_name='doc', bulk_concurrency=10, batch_size=8388608, compression_level=9, llapi=False, ) with connection.schema_editor() as editor: self.statement_adapter = self.index.create_sql( model=DateTimeArrayModel, schema_editor=editor, using='') self.repr = repr(self.statement_adapter) self.str = str(self.statement_adapter) def test_references_table(self): self.assertIs( self.statement_adapter.references_table( DateTimeArrayModel._meta.db_table), True) self.assertIs( self.statement_adapter.references_table( IntegerArrayModel._meta.db_table), False) def test_references_column(self): self.assertIs( self.statement_adapter.references_column( DateTimeArrayModel._meta.db_table, 'datetimes'), True) self.assertIs( self.statement_adapter.references_column( DateTimeArrayModel._meta.db_table, 'other'), False) def test_rename_table_references(self): self.statement_adapter.rename_table_references( DateTimeArrayModel._meta.db_table, 'other') self.assertEqual(repr(self.statement_adapter.parts['table']), '<Table \'"other"\'>') def test_rename_column_references(self): self.statement_adapter.rename_column_references( DateTimeArrayModel._meta.db_table, 'dates', 'other') self.assertEqual(repr(self.statement_adapter.parts['columns']), '<Columns \'"datetimes", "other", "times"\'>') def test_repr(self): self.assertEqual( self.repr, '<ZomboDBIndexCreateStatementAdapter \'CREATE TYPE "my_test_index_row_type" AS ' '(datetimes timestamp with time zone[], dates date[], times time[]); ' 'SELECT zdb.define_field_mapping(\\\'"tests_datetimearraymodel"\\\', \\\'datetimes\\\', ' # noqa: E501 '\\\'{"type":"date","format":"HH:mm:ss.SSSSSS","copy_to":"zdb_all"}\\\');' 'SELECT zdb.define_field_mapping(\\\'"tests_datetimearraymodel"\\\', \\\'dates\\\', ' '\\\'{"type":"date","copy_to":"zdb_all"}\\\');' 'SELECT zdb.define_field_mapping(\\\'"tests_datetimearraymodel"\\\', \\\'times\\\', ' '\\\'{"type":"date","copy_to":"zdb_all"}\\\');' 'CREATE INDEX "my_test_index" ON "tests_datetimearraymodel" ' 'USING zombodb ((ROW("datetimes", "dates", "times")::"my_test_index_row_type")) ' 'WITH (url = \\\'http://localhost:9999/\\\', shards = 4, replicas = 1, ' 'alias = \\\'my-test-index-alias\\\', refresh_interval = \\\'1s\\\', type_name = \\\'doc\\\', ' # noqa: E501 'bulk_concurrency = 10, batch_size = 8388608, compression_level = 9, llapi = false) \'>' ) def test_str(self): self.assertEqual( self.str, 'CREATE TYPE "my_test_index_row_type" ' 'AS (datetimes timestamp with time zone[], dates date[], times time[]); ' 'SELECT zdb.define_field_mapping(\'"tests_datetimearraymodel"\', \'datetimes\', ' '\'{"type":"date","format":"HH:mm:ss.SSSSSS","copy_to":"zdb_all"}\');' 'SELECT zdb.define_field_mapping(\'"tests_datetimearraymodel"\', \'dates\', ' '\'{"type":"date","copy_to":"zdb_all"}\');' 'SELECT zdb.define_field_mapping(\'"tests_datetimearraymodel"\', \'times\', ' '\'{"type":"date","copy_to":"zdb_all"}\');' 'CREATE INDEX "my_test_index" ON "tests_datetimearraymodel" ' 'USING zombodb ((ROW("datetimes", "dates", "times")::"my_test_index_row_type")) ' 'WITH (url = \'http://localhost:9999/\', shards = 4, replicas = 1, ' 'alias = \'my-test-index-alias\', refresh_interval = \'1s\', type_name = \'doc\', ' 'bulk_concurrency = 10, batch_size = 8388608, compression_level = 9, llapi = false) ' )