Exemplo n.º 1
0
    def test_inspect_enums_star(self):
        enum_type = postgresql.ENUM('cat',
                                    'dog',
                                    'rat',
                                    name='pet',
                                    metadata=self.metadata)
        schema_enum_type = postgresql.ENUM('sad',
                                           'ok',
                                           'happy',
                                           name='mood',
                                           schema='test_schema',
                                           metadata=self.metadata)
        enum_type.create(testing.db)
        schema_enum_type.create(testing.db)
        inspector = reflection.Inspector.from_engine(testing.db)

        eq_(inspector.get_enums(), [{
            'visible': True,
            'labels': ['cat', 'dog', 'rat'],
            'name': 'pet',
            'schema': 'public'
        }])

        eq_(inspector.get_enums('*'), [{
            'visible': True,
            'labels': ['cat', 'dog', 'rat'],
            'name': 'pet',
            'schema': 'public'
        }, {
            'visible': False,
            'name': 'mood',
            'schema': 'test_schema',
            'labels': ['sad', 'ok', 'happy']
        }])
Exemplo n.º 2
0
    def test_create_drop_enum(self):
        # test escaping and unicode within CREATE TYPE for ENUM
        typ = postgresql.ENUM("val1",
                              "val2",
                              "val's 3",
                              u('méil'),
                              name="myname")
        self.assert_compile(
            postgresql.CreateEnumType(typ),
            u("CREATE TYPE myname AS "
              "ENUM ('val1', 'val2', 'val''s 3', 'méil')"))

        typ = postgresql.ENUM("val1", "val2", "val's 3", name="PleaseQuoteMe")
        self.assert_compile(
            postgresql.CreateEnumType(typ),
            "CREATE TYPE \"PleaseQuoteMe\" AS ENUM "
            "('val1', 'val2', 'val''s 3')")
Exemplo n.º 3
0
    def test_inspect_enums_star(self):
        enum_type = postgresql.ENUM("cat",
                                    "dog",
                                    "rat",
                                    name="pet",
                                    metadata=self.metadata)
        schema_enum_type = postgresql.ENUM(
            "sad",
            "ok",
            "happy",
            name="mood",
            schema="test_schema",
            metadata=self.metadata,
        )
        enum_type.create(testing.db)
        schema_enum_type.create(testing.db)
        inspector = reflection.Inspector.from_engine(testing.db)

        eq_(
            inspector.get_enums(),
            [{
                "visible": True,
                "labels": ["cat", "dog", "rat"],
                "name": "pet",
                "schema": "public",
            }],
        )

        eq_(
            inspector.get_enums("*"),
            [
                {
                    "visible": True,
                    "labels": ["cat", "dog", "rat"],
                    "name": "pet",
                    "schema": "public",
                },
                {
                    "visible": False,
                    "name": "mood",
                    "schema": "test_schema",
                    "labels": ["sad", "ok", "happy"],
                },
            ],
        )
Exemplo n.º 4
0
    def test_inspect_enums_case_sensitive_from_table(self):
        sa.event.listen(
            self.metadata,
            "before_create",
            sa.DDL('create schema "TestSchema"'),
        )
        sa.event.listen(
            self.metadata,
            "after_drop",
            sa.DDL('drop schema "TestSchema" cascade'),
        )

        counter = itertools.count()
        for enum in "lower_case", "UpperCase", "Name.With.Dot":
            for schema in None, "test_schema", "TestSchema":

                enum_type = postgresql.ENUM(
                    "CapsOne",
                    "CapsTwo",
                    name=enum,
                    metadata=self.metadata,
                    schema=schema,
                )

                Table(
                    "t%d" % next(counter),
                    self.metadata,
                    Column("q", enum_type),
                )

        self.metadata.create_all(testing.db)

        inspector = inspect(testing.db)
        counter = itertools.count()
        for enum in "lower_case", "UpperCase", "Name.With.Dot":
            for schema in None, "test_schema", "TestSchema":
                cols = inspector.get_columns("t%d" % next(counter))
                cols[0]["type"] = (
                    cols[0]["type"].schema,
                    cols[0]["type"].name,
                    cols[0]["type"].enums,
                )
                eq_(
                    cols,
                    [
                        {
                            "name": "q",
                            "type": (schema, enum, ["CapsOne", "CapsTwo"]),
                            "nullable": True,
                            "default": None,
                            "autoincrement": False,
                            "comment": None,
                        }
                    ],
                )
Exemplo n.º 5
0
 def test_inspect_enums(self):
     enum_type = postgresql.ENUM(
         'cat', 'dog', 'rat', name='pet', metadata=self.metadata)
     enum_type.create(testing.db)
     inspector = reflection.Inspector.from_engine(testing.db)
     eq_(inspector.get_enums(), [
         {
             'visible': True,
             'labels': ['cat', 'dog', 'rat'],
             'name': 'pet',
             'schema': 'public'
         }])
Exemplo n.º 6
0
 def test_inspect_enums_case_sensitive(self):
     enum_type = postgresql.ENUM('CapsOne',
                                 'CapsTwo',
                                 name='UpperCase',
                                 metadata=self.metadata)
     enum_type.create(testing.db)
     inspector = reflection.Inspector.from_engine(testing.db)
     eq_(inspector.get_enums(), [{
         'visible': True,
         'labels': ['CapsOne', 'CapsTwo'],
         'name': 'UpperCase',
         'schema': 'public'
     }])
Exemplo n.º 7
0
    def test_inspect_enums_case_sensitive(self):
        sa.event.listen(
            self.metadata,
            "before_create",
            sa.DDL('create schema "TestSchema"'),
        )
        sa.event.listen(
            self.metadata,
            "after_drop",
            sa.DDL('drop schema "TestSchema" cascade'),
        )

        for enum in "lower_case", "UpperCase", "Name.With.Dot":
            for schema in None, "test_schema", "TestSchema":

                postgresql.ENUM(
                    "CapsOne",
                    "CapsTwo",
                    name=enum,
                    schema=schema,
                    metadata=self.metadata,
                )

        self.metadata.create_all(testing.db)
        inspector = inspect(testing.db)
        for schema in None, "test_schema", "TestSchema":
            eq_(
                sorted(
                    inspector.get_enums(schema=schema), key=itemgetter("name")
                ),
                [
                    {
                        "visible": schema is None,
                        "labels": ["CapsOne", "CapsTwo"],
                        "name": "Name.With.Dot",
                        "schema": "public" if schema is None else schema,
                    },
                    {
                        "visible": schema is None,
                        "labels": ["CapsOne", "CapsTwo"],
                        "name": "UpperCase",
                        "schema": "public" if schema is None else schema,
                    },
                    {
                        "visible": schema is None,
                        "labels": ["CapsOne", "CapsTwo"],
                        "name": "lower_case",
                        "schema": "public" if schema is None else schema,
                    },
                ],
            )
Exemplo n.º 8
0
 def test_inspect_enums_schema(self):
     conn = testing.db.connect()
     enum_type = postgresql.ENUM(
         'sad', 'ok', 'happy', name='mood',
         schema='test_schema',
         metadata=self.metadata)
     enum_type.create(conn)
     inspector = reflection.Inspector.from_engine(conn.engine)
     eq_(
         inspector.get_enums('test_schema'), [{
             'visible': False,
             'name': 'mood',
             'schema': 'test_schema',
             'labels': ['sad', 'ok', 'happy']
         }])
Exemplo n.º 9
0
 def test_inspect_enums(self):
     enum_type = postgresql.ENUM("cat",
                                 "dog",
                                 "rat",
                                 name="pet",
                                 metadata=self.metadata)
     enum_type.create(testing.db)
     inspector = reflection.Inspector.from_engine(testing.db)
     eq_(
         inspector.get_enums(),
         [{
             "visible": True,
             "labels": ["cat", "dog", "rat"],
             "name": "pet",
             "schema": "public",
         }],
     )
Exemplo n.º 10
0
 def test_inspect_enums_schema(self):
     conn = testing.db.connect()
     enum_type = postgresql.ENUM(
         "sad",
         "ok",
         "happy",
         name="mood",
         schema="test_schema",
         metadata=self.metadata,
     )
     enum_type.create(conn)
     inspector = reflection.Inspector.from_engine(conn.engine)
     eq_(
         inspector.get_enums("test_schema"),
         [{
             "visible": False,
             "name": "mood",
             "schema": "test_schema",
             "labels": ["sad", "ok", "happy"],
         }],
     )
Exemplo n.º 11
0
    def test_inspect_enums_case_sensitive_from_table(self):
        enum_type = postgresql.ENUM('CapsOne',
                                    'CapsTwo',
                                    name='UpperCase',
                                    metadata=self.metadata)

        t = Table('t', self.metadata, Column('q', enum_type))

        enum_type.create(testing.db)
        t.create(testing.db)

        inspector = reflection.Inspector.from_engine(testing.db)
        cols = inspector.get_columns("t")
        cols[0]['type'] = (cols[0]['type'].name, cols[0]['type'].enums)
        eq_(cols, [{
            'name': 'q',
            'type': ('UpperCase', ['CapsOne', 'CapsTwo']),
            'nullable': True,
            'default': None,
            'autoincrement': False,
            'comment': None
        }])
Exemplo n.º 12
0
    def test_inspect_enums_case_sensitive(self):
        sa.event.listen(self.metadata, "before_create",
                        sa.DDL('create schema "TestSchema"'))
        sa.event.listen(self.metadata, "after_drop",
                        sa.DDL('drop schema "TestSchema" cascade'))

        for enum in 'lower_case', 'UpperCase', 'Name.With.Dot':
            for schema in None, 'test_schema', 'TestSchema':

                postgresql.ENUM('CapsOne',
                                'CapsTwo',
                                name=enum,
                                schema=schema,
                                metadata=self.metadata)

        self.metadata.create_all(testing.db)
        inspector = inspect(testing.db)
        for schema in None, 'test_schema', 'TestSchema':
            eq_(
                sorted(inspector.get_enums(schema=schema),
                       key=itemgetter("name")),
                [{
                    'visible': schema is None,
                    'labels': ['CapsOne', 'CapsTwo'],
                    'name': "Name.With.Dot",
                    'schema': 'public' if schema is None else schema
                }, {
                    'visible': schema is None,
                    'labels': ['CapsOne', 'CapsTwo'],
                    'name': "UpperCase",
                    'schema': 'public' if schema is None else schema
                }, {
                    'visible': schema is None,
                    'labels': ['CapsOne', 'CapsTwo'],
                    'name': "lower_case",
                    'schema': 'public' if schema is None else schema
                }])
Exemplo n.º 13
0
    def test_inspect_enums_case_sensitive_from_table(self):
        sa.event.listen(self.metadata, "before_create",
                        sa.DDL('create schema "TestSchema"'))
        sa.event.listen(self.metadata, "after_drop",
                        sa.DDL('drop schema "TestSchema" cascade'))

        counter = itertools.count()
        for enum in 'lower_case', 'UpperCase', 'Name.With.Dot':
            for schema in None, 'test_schema', 'TestSchema':

                enum_type = postgresql.ENUM('CapsOne',
                                            'CapsTwo',
                                            name=enum,
                                            metadata=self.metadata,
                                            schema=schema)

                Table('t%d' % next(counter), self.metadata,
                      Column('q', enum_type))

        self.metadata.create_all(testing.db)

        inspector = inspect(testing.db)
        counter = itertools.count()
        for enum in 'lower_case', 'UpperCase', 'Name.With.Dot':
            for schema in None, 'test_schema', 'TestSchema':
                cols = inspector.get_columns("t%d" % next(counter))
                cols[0]['type'] = (cols[0]['type'].schema,
                                   cols[0]['type'].name, cols[0]['type'].enums)
                eq_(cols, [{
                    'name': 'q',
                    'type': (schema, enum, ['CapsOne', 'CapsTwo']),
                    'nullable': True,
                    'default': None,
                    'autoincrement': False,
                    'comment': None
                }])