コード例 #1
0
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) '
        )
コード例 #2
0
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) '
        )