"""
Determine when dev tests should be skipped by regular users.

Some tests are only intended to be tested during development right
before performing a release.  These do not test core functionality
of `cytoolz` and may be skipped.  These tests are only run if the
following conditions are true:

    - toolz is installed
    - toolz is the correct version
    - cytoolz is a release version
"""
import cytoolz
try:
    from nose.tools import nottest, istest
except ImportError:
    istest = lambda func: setattr(func, '__test__', True) or func
    nottest = lambda func: setattr(func, '__test__', False) or func

try:
    import toolz
    do_toolz_tests = True
except ImportError:
    do_toolz_tests = False

if do_toolz_tests:
    do_toolz_tests = toolz.__version__.startswith(cytoolz.__toolz_version__)
    do_toolz_tests &= 'dev' not in cytoolz.__version__

# Decorator used to skip tests for developmental versions of CyToolz
if do_toolz_tests:
    dev_skip_test = istest
else:
    dev_skip_test = nottest
