123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154 |
- from alembic import util
- from . import exclusions
- if util.sqla_094:
- from sqlalchemy.testing.requirements import Requirements
- else:
- class Requirements(object):
- pass
- class SuiteRequirements(Requirements):
- @property
- def schemas(self):
- """Target database must support external schemas, and have one
- named 'test_schema'."""
- return exclusions.open()
- @property
- def unique_constraint_reflection(self):
- def doesnt_have_check_uq_constraints(config):
- if not util.sqla_084:
- return True
- from sqlalchemy import inspect
- insp = inspect(config.db)
- try:
- insp.get_unique_constraints('x')
- except NotImplementedError:
- return True
- except TypeError:
- return True
- except Exception:
- pass
- return False
- return exclusions.skip_if(
- lambda config: not util.sqla_084,
- "SQLAlchemy 0.8.4 or greater required"
- ) + exclusions.skip_if(doesnt_have_check_uq_constraints)
- @property
- def foreign_key_match(self):
- return exclusions.fails_if(
- lambda config: not util.sqla_08,
- "MATCH for foreign keys added in SQLAlchemy 0.8.0"
- )
- @property
- def check_constraints_w_enforcement(self):
- """Target database must support check constraints
- and also enforce them."""
- return exclusions.open()
- @property
- def reflects_pk_names(self):
- return exclusions.closed()
- @property
- def reflects_fk_options(self):
- return exclusions.closed()
- @property
- def fail_before_sqla_079(self):
- return exclusions.fails_if(
- lambda config: not util.sqla_079,
- "SQLAlchemy 0.7.9 or greater required"
- )
- @property
- def fail_before_sqla_080(self):
- return exclusions.fails_if(
- lambda config: not util.sqla_08,
- "SQLAlchemy 0.8.0 or greater required"
- )
- @property
- def fail_before_sqla_083(self):
- return exclusions.fails_if(
- lambda config: not util.sqla_083,
- "SQLAlchemy 0.8.3 or greater required"
- )
- @property
- def fail_before_sqla_084(self):
- return exclusions.fails_if(
- lambda config: not util.sqla_084,
- "SQLAlchemy 0.8.4 or greater required"
- )
- @property
- def fail_before_sqla_09(self):
- return exclusions.fails_if(
- lambda config: not util.sqla_09,
- "SQLAlchemy 0.9.0 or greater required"
- )
- @property
- def fail_before_sqla_100(self):
- return exclusions.fails_if(
- lambda config: not util.sqla_100,
- "SQLAlchemy 1.0.0 or greater required"
- )
- @property
- def fail_before_sqla_099(self):
- return exclusions.fails_if(
- lambda config: not util.sqla_099,
- "SQLAlchemy 0.9.9 or greater required"
- )
- @property
- def fail_before_sqla_110(self):
- return exclusions.fails_if(
- lambda config: not util.sqla_110,
- "SQLAlchemy 1.1.0 or greater required"
- )
- @property
- def sqlalchemy_08(self):
- return exclusions.skip_if(
- lambda config: not util.sqla_08,
- "SQLAlchemy 0.8.0b2 or greater required"
- )
- @property
- def sqlalchemy_09(self):
- return exclusions.skip_if(
- lambda config: not util.sqla_09,
- "SQLAlchemy 0.9.0 or greater required"
- )
- @property
- def sqlalchemy_092(self):
- return exclusions.skip_if(
- lambda config: not util.sqla_092,
- "SQLAlchemy 0.9.2 or greater required"
- )
- @property
- def sqlalchemy_094(self):
- return exclusions.skip_if(
- lambda config: not util.sqla_094,
- "SQLAlchemy 0.9.4 or greater required"
- )
- @property
- def sqlalchemy_110(self):
- return exclusions.skip_if(
- lambda config: not util.sqla_110,
- "SQLAlchemy 1.1.0 or greater required"
- )
|