Ejemplo n.º 1
0
    def no_fk_names(self):
        """foreign key constraints *never* have names in the DB"""

        return exclusions.only_if(
            lambda config: exclusions.against(config, "sqlite")
            and not util.sqla_100
        )
Ejemplo n.º 2
0
    def no_fk_names(self):
        """foreign key constraints *never* have names in the DB"""

        return exclusions.only_if(
            lambda config: exclusions.against(config, "sqlite")
            and not util.sqla_100
        )
Ejemplo n.º 3
0
    def sequences(self):
        """Target database must support SEQUENCEs."""

        return exclusions.only_if(
            [lambda config: config.db.dialect.supports_sequences],
            "no sequence support",
        )
Ejemplo n.º 4
0
    def mysql_timestamp_reflection(self):
        def go(config):
            return (
                not self._mariadb_102(config) or self.sqlalchemy_1115.enabled
            )

        return exclusions.only_if(go)
Ejemplo n.º 5
0
    def mysql_timestamp_reflection(self):
        def go(config):
            return (
                not self._mariadb_102(config) or self.sqlalchemy_1115.enabled
            )

        return exclusions.only_if(go)
Ejemplo n.º 6
0
    def _has_pg_extension(self, name):
        def check(config):
            if not exclusions.against(config, "postgresql"):
                return False
            count = config.db.scalar("SELECT count(*) FROM pg_extension "
                                     "WHERE extname='%s'" % name)
            return bool(count)

        return exclusions.only_if(check, "needs %s extension" % name)
Ejemplo n.º 7
0
 def computed_reflects_as_server_default(self):
     # note that this rule will go away when SQLAlchemy correctly
     # supports reflection of the "computed" construct; the element
     # will consistently be present as both column.computed and
     # column.server_default for all supported backends.
     return (self.computed_columns + exclusions.only_if(
         ["postgresql", "oracle"],
         "backend reflects computed construct as a server default",
     ) + exclusions.skip_if(self.computed_reflects_normally))
Ejemplo n.º 8
0
    def editor_installed(self):
        def go():
            try:
                import editor  # noqa
            except ImportError:
                return False
            else:
                return True

        return exclusions.only_if(go, "editor package not installed")
Ejemplo n.º 9
0
    def postgresql_uuid_ossp(self):
        def check_uuid_ossp(config):
            if not exclusions.against(config, "postgresql"):
                return False
            try:
                config.db.execute("SELECT uuid_generate_v4()")
                return True
            except:
                return False

        return exclusions.only_if(check_uuid_ossp)
Ejemplo n.º 10
0
    def postgresql_uuid_ossp(self):
        def check_uuid_ossp(config):
            if not exclusions.against(config, "postgresql"):
                return False
            try:
                config.db.execute("SELECT uuid_generate_v4()")
                return True
            except:
                return False

        return exclusions.only_if(check_uuid_ossp)
Ejemplo n.º 11
0
    def _has_pg_extension(self, name):
        def check(config):
            if not exclusions.against(config, "postgresql"):
                return False
            count = config.db.scalar(
                "SELECT count(*) FROM pg_extension "
                "WHERE extname='%s'" % name
            )
            return bool(count)

        return exclusions.only_if(check, "needs %s extension" % name)
Ejemplo n.º 12
0
    def stubs_test(self):
        def requirements():
            try:
                import black  # noqa
                import zimports  # noqa

                return False
            except Exception:
                return True

        imports = exclusions.skip_if(
            requirements, "black and zimports are required for this test")
        version = exclusions.only_if(lambda _: compat.py39,
                                     "python 3.9 is required")
        return imports + version
Ejemplo n.º 13
0
 def computed_reflects_normally(self):
     return exclusions.only_if(
         exclusions.BooleanPredicate(sqla_compat.has_computed_reflection)
     )
Ejemplo n.º 14
0
 def legacy_engine(self):
     return exclusions.only_if(
         lambda config: not getattr(config.db, "_is_future", False))
Ejemplo n.º 15
0
 def identity_columns_api(self):
     return exclusions.only_if(
         exclusions.BooleanPredicate(sqla_compat.has_identity))
Ejemplo n.º 16
0
 def computed_columns_api(self):
     return exclusions.only_if(
         exclusions.BooleanPredicate(sqla_compat.has_computed))
Ejemplo n.º 17
0
 def comments(self):
     return exclusions.only_if(
         lambda config: config.db.dialect.supports_comments)
Ejemplo n.º 18
0
    def pep3147(self):

        return exclusions.only_if(lambda config: util.compat.has_pep3147())
Ejemplo n.º 19
0
 def comments(self):
     return exclusions.only_if(
         lambda config: sqla_compat._dialect_supports_comments(config.db.
                                                               dialect))
Ejemplo n.º 20
0
 def comments_api(self):
     return exclusions.only_if(lambda config: util.sqla_120)