def denormalized_names(fn): """Target database must have 'denormalized', i.e. UPPERCASE as case insensitive names.""" return skip_if( lambda: not testing.db.dialect.requires_name_normalize, "Backend does not require denomralized names." )(fn)
def cpython(fn): return _chain_decorators_on( fn, skip_if(lambda: util.jython or util.pypy, "cPython interpreter needed" ) )
def python2(fn): return _chain_decorators_on( fn, skip_if( lambda: sys.version_info >= (3,), "Python version 2.xx is required." ) )
def python25(fn): return _chain_decorators_on( fn, skip_if( lambda: sys.version_info < (2, 5), "Python version 2.5 or greater is required" ) )
def skip_mysql_on_windows(fn): """Catchall for a large variety of MySQL on Windows failures""" return _chain_decorators_on( fn, skip_if(_has_mysql_on_windows, "Not supported on MySQL + Windows" ) )
def ad_hoc_engines(fn): """Test environment must allow ad-hoc engine/connection creation. DBs that scale poorly for many connections, even when closed, i.e. Oracle, may use the "--low-connections" option which flags this requirement as not present. """ return _chain_decorators_on( fn, skip_if(lambda: config.options.low_connections))
def ad_hoc_engines(fn): """Test environment must allow ad-hoc engine/connection creation. DBs that scale poorly for many connections, even when closed, i.e. Oracle, may use the "--low-connections" option which flags this requirement as not present. """ return _chain_decorators_on( fn, skip_if(lambda: config.options.low_connections) )
def sqlite(fn): return _chain_decorators_on( fn, skip_if(lambda: not _has_sqlite()) )
def sane_multi_rowcount(fn): return _chain_decorators_on( fn, skip_if(lambda: not testing.db.dialect.supports_sane_multi_rowcount) )
def english_locale_on_postgresql(fn): return _chain_decorators_on( fn, skip_if(lambda: testing.against('postgresql') \ and not testing.db.scalar('SHOW LC_COLLATE').startswith('en')) )
def sqlite(fn): return _chain_decorators_on(fn, skip_if(lambda: not _has_sqlite()))
def cpython(fn): return _chain_decorators_on( fn, skip_if(lambda: util.jython or util.pypy, "cPython interpreter needed"))
def sane_multi_rowcount(fn): return _chain_decorators_on( fn, skip_if(lambda: not testing.db.dialect.supports_sane_multi_rowcount))
def cextensions(fn): return _chain_decorators_on( fn, skip_if(lambda: not _has_cextensions(), "C extensions not installed"))
def cextensions(fn): return _chain_decorators_on( fn, skip_if(lambda: not _has_cextensions(), "C extensions not installed") )