/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/testing
NameSizeModeActions
plugin/-0755rm
suite/-0755rm
assertions.py180170644editdlrm
assertions.pyc225090644editdlrm
assertions.pyo207830644editdlrm
assertsql.py133980644editdlrm
assertsql.pyc153670644editdlrm
assertsql.pyo150860644editdlrm
config.py26800644editdlrm
config.pyc41430644editdlrm
config.pyo40570644editdlrm
engines.py104370644editdlrm
engines.pyc154460644editdlrm
engines.pyo152770644editdlrm
entities.py32030644editdlrm
entities.pyc33140644editdlrm
entities.pyo33140644editdlrm
exclusions.py127650644editdlrm
exclusions.pyc199080644editdlrm
exclusions.pyo197260644editdlrm
fixtures.py108140644editdlrm
fixtures.pyc165860644editdlrm
fixtures.pyo165020644editdlrm
mock.py8930644editdlrm
mock.pyc7800644editdlrm
mock.pyo7800644editdlrm
pickleable.py26930644editdlrm
pickleable.pyc78860644editdlrm
pickleable.pyo78860644editdlrm
profiling.py85130644editdlrm
profiling.pyc87670644editdlrm
profiling.pyo87670644editdlrm
provision.py132630644editdlrm
provision.pyc168660644editdlrm
provision.pyo168660644editdlrm
replay_fixture.py58750644editdlrm
replay_fixture.pyc76650644editdlrm
replay_fixture.pyo76650644editdlrm
requirements.py268610644editdlrm
requirements.pyc455180644editdlrm
requirements.pyo455180644editdlrm
schema.py37120644editdlrm
schema.pyc36450644editdlrm
schema.pyo36450644editdlrm
util.py77380644editdlrm
util.pyc111660644editdlrm
util.pyo111240644editdlrm
warnings.py12980644editdlrm
warnings.pyc14020644editdlrm
warnings.pyo14020644editdlrm
__init__.py23620644editdlrm
__init__.pyc25600644editdlrm
__init__.pyo25600644editdlrm
Edit: /opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/testing/schema.py (3712B)
# testing/schema.py # Copyright (C) 2005-2019 the SQLAlchemy authors and contributors # # # This module is part of SQLAlchemy and is released under # the MIT License: http://www.opensource.org/licenses/mit-license.php from . import config from . import exclusions from .. import event from .. import schema __all__ = ["Table", "Column"] table_options = {} def Table(*args, **kw): """A schema.Table wrapper/hook for dialect-specific tweaks.""" test_opts = {k: kw.pop(k) for k in list(kw) if k.startswith("test_")} kw.update(table_options) if exclusions.against(config._current, "mysql"): if ( "mysql_engine" not in kw and "mysql_type" not in kw and "autoload_with" not in kw ): if "test_needs_fk" in test_opts or "test_needs_acid" in test_opts: kw["mysql_engine"] = "InnoDB" else: kw["mysql_engine"] = "MyISAM" # Apply some default cascading rules for self-referential foreign keys. # MySQL InnoDB has some issues around selecting self-refs too. if exclusions.against(config._current, "firebird"): table_name = args[0] unpack = config.db.dialect.identifier_preparer.unformat_identifiers # Only going after ForeignKeys in Columns. May need to # expand to ForeignKeyConstraint too. fks = [ fk for col in args if isinstance(col, schema.Column) for fk in col.foreign_keys ] for fk in fks: # root around in raw spec ref = fk._colspec if isinstance(ref, schema.Column): name = ref.table.name else: # take just the table name: on FB there cannot be # a schema, so the first element is always the # table name, possibly followed by the field name name = unpack(ref)[0] if name == table_name: if fk.ondelete is None: fk.ondelete = "CASCADE" if fk.onupdate is None: fk.onupdate = "CASCADE" return schema.Table(*args, **kw) def Column(*args, **kw): """A schema.Column wrapper/hook for dialect-specific tweaks.""" test_opts = {k: kw.pop(k) for k in list(kw) if k.startswith("test_")} if not config.requirements.foreign_key_ddl.enabled_for_config(config): args = [arg for arg in args if not isinstance(arg, schema.ForeignKey)] col = schema.Column(*args, **kw) if test_opts.get("test_needs_autoincrement", False) and kw.get( "primary_key", False ): if col.default is None and col.server_default is None: col.autoincrement = True # allow any test suite to pick up on this col.info["test_needs_autoincrement"] = True # hardcoded rule for firebird, oracle; this should # be moved out if exclusions.against(config._current, "firebird", "oracle"): def add_seq(c, tbl): c._init_items( schema.Sequence( _truncate_name( config.db.dialect, tbl.name + "_" + c.name + "_seq" ), optional=True, ) ) event.listen(col, "after_parent_attach", add_seq, propagate=True) return col def _truncate_name(dialect, name): if len(name) > dialect.max_identifier_length: return ( name[0 : max(dialect.max_identifier_length - 6, 0)] + "_" + hex(hash(name) % 64)[2:] ) else: return name