diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2016-09-08 11:47:39 -0400 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2016-09-08 11:47:39 -0400 |
commit | c63fe0d4495b0fc554a085a314e837d5404231d3 (patch) | |
tree | 9f36f8b3fdcbdd96e8acf937ce38c0ff7f739f06 /lib/sqlalchemy/testing/requirements.py | |
parent | ecc98fd8e42632179f47c972dc1dac6e9170adcb (diff) | |
download | sqlalchemy-pool_additions.tar.gz |
- allow for the exclusions system and SuiteRequirements to bepool_additions
usable without the full plugin_base setup.
- move some Python-env requirements to the importable
requirements.py module.
Change-Id: I3bfffce75b53040f6923b89e0fa2140bec243bc8
Diffstat (limited to 'lib/sqlalchemy/testing/requirements.py')
-rw-r--r-- | lib/sqlalchemy/testing/requirements.py | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/lib/sqlalchemy/testing/requirements.py b/lib/sqlalchemy/testing/requirements.py index a9370a30e..b0f466892 100644 --- a/lib/sqlalchemy/testing/requirements.py +++ b/lib/sqlalchemy/testing/requirements.py @@ -15,6 +15,8 @@ to provide specific inclusion/exclusions. """ +import sys + from . import exclusions from .. import util @@ -708,6 +710,44 @@ class SuiteRequirements(Requirements): ) @property + def python2(self): + return exclusions.skip_if( + lambda: sys.version_info >= (3,), + "Python version 2.xx is required." + ) + + @property + def python3(self): + return exclusions.skip_if( + lambda: sys.version_info < (3,), + "Python version 3.xx is required." + ) + + @property + def cpython(self): + return exclusions.only_if( + lambda: util.cpython, + "cPython interpreter needed" + ) + + @property + def non_broken_pickle(self): + from sqlalchemy.util import pickle + return exclusions.only_if( + lambda: not util.pypy and pickle.__name__ == 'cPickle' + or sys.version_info >= (3, 2), + "Needs cPickle+cPython or newer Python 3 pickle" + ) + + @property + def predictable_gc(self): + """target platform must remove all cycles unconditionally when + gc.collect() is called, as well as clean out unreferenced subclasses. + + """ + return self.cpython + + @property def no_coverage(self): """Test should be skipped if coverage is enabled. |