def teardown_package(): import os if os.environ.get('DATALAD_TESTS_NOTEARDOWN'): return from datalad.ui import ui ui.set_backend(_test_states['ui_backend']) if _test_states['loglevel'] is not None: lgr.setLevel(_test_states['loglevel']) if _test_states['DATALAD_LOG_LEVEL'] is None: os.environ.pop('DATALAD_LOG_LEVEL') else: os.environ['DATALAD_LOG_LEVEL'] = _test_states['DATALAD_LOG_LEVEL'] from datalad.tests import _TEMP_PATHS_GENERATED from datalad.tests.utils import rmtemp if len(_TEMP_PATHS_GENERATED): msg = "Removing %d dirs/files: %s" % (len(_TEMP_PATHS_GENERATED), ', '.join(_TEMP_PATHS_GENERATED)) else: msg = "Nothing to remove" lgr.debug("Teardown tests. " + msg) for path in _TEMP_PATHS_GENERATED: rmtemp(path, ignore_errors=True) lgr.debug("Printing versioning information collected so far") from datalad.support.external_versions import external_versions as ev print(ev.dumps(query=True))
def teardown_package(): import os if os.environ.get('DATALAD_TESTS_NOTEARDOWN'): return from datalad.ui import ui ui.set_backend(_test_states['ui_backend']) if _test_states['loglevel'] is not None: lgr.setLevel(_test_states['loglevel']) if _test_states['DATALAD_LOG_LEVEL'] is None: os.environ.pop('DATALAD_LOG_LEVEL') else: os.environ['DATALAD_LOG_LEVEL'] = _test_states['DATALAD_LOG_LEVEL'] from datalad.tests import _TEMP_PATHS_GENERATED from datalad.tests.utils import rmtemp if len(_TEMP_PATHS_GENERATED): msg = "Removing %d dirs/files: %s" % (len(_TEMP_PATHS_GENERATED), ', '.join(_TEMP_PATHS_GENERATED)) else: msg = "Nothing to remove" lgr.debug("Teardown tests. " + msg) for path in _TEMP_PATHS_GENERATED: rmtemp(path, ignore_errors=True) lgr.debug("Printing versioning information collected so far") from datalad.support.external_versions import external_versions as ev # request versioning for few others which we do not check at runtime for m in ('git', 'system-ssh'): try: # Let's make sure to not blow up when we are almost done ev[m] except Exception: pass print(ev.dumps(query=True))
def teardown_package(): import os from datalad.tests.utils import rmtemp, OBSCURE_FILENAME lgr.debug("Printing versioning information collected so far") from datalad.support.external_versions import external_versions as ev print(ev.dumps(query=True)) try: print("Obscure filename: str=%s repr=%r" % (OBSCURE_FILENAME.encode('utf-8'), OBSCURE_FILENAME)) except UnicodeEncodeError as exc: from .dochelpers import exc_str print("Obscure filename failed to print: %s" % exc_str(exc)) def print_dict(d): return " ".join("%s=%r" % v for v in d.items()) print("Encodings: %s" % print_dict(get_encoding_info())) print("Environment: %s" % print_dict(get_envvars_info())) if os.environ.get('DATALAD_TESTS_NOTEARDOWN'): return from datalad.ui import ui from datalad import consts ui.set_backend(_test_states['ui_backend']) if _test_states['loglevel'] is not None: lgr.setLevel(_test_states['loglevel']) from datalad.tests import _TEMP_PATHS_GENERATED if len(_TEMP_PATHS_GENERATED): msg = "Removing %d dirs/files: %s" % (len(_TEMP_PATHS_GENERATED), ', '.join(_TEMP_PATHS_GENERATED)) else: msg = "Nothing to remove" lgr.debug("Teardown tests. " + msg) for path in _TEMP_PATHS_GENERATED: rmtemp(path, ignore_errors=True) # restore all the env variables for v, val in _test_states['env'].items(): if val is not None: os.environ[v] = val else: os.environ.pop(v) # Re-establish correct global config after changing $HOME. # Might be superfluous, since after teardown datalad.cfg shouldn't be # needed. However, maintaining a consistent state seems a good thing # either way. cfg.reload(force=True) consts.DATASETS_TOPURL = _test_states['DATASETS_TOPURL'] from datalad.support.cookies import cookies_db cookies_db.close() from datalad.support.annexrepo import AnnexRepo AnnexRepo._ALLOW_LOCAL_URLS = False # stay safe!
def teardown_package(): from datalad.tests import _TEMP_PATHS_GENERATED from datalad.tests.utils import rmtemp if len(_TEMP_PATHS_GENERATED): msg = "Removing %d dirs/files: %s" % (len(_TEMP_PATHS_GENERATED), ', '.join(_TEMP_PATHS_GENERATED)) else: msg = "Nothing to remove" lgr.debug("Teardown tests. " + msg) for path in _TEMP_PATHS_GENERATED: rmtemp(path, ignore_errors=True)
def teardown_package(): import os from datalad.tests.utils import rmtemp, OBSCURE_FILENAME lgr.debug("Printing versioning information collected so far") from datalad.support.external_versions import external_versions as ev print(ev.dumps(query=True)) try: print("Obscure filename: str=%s repr=%r" % (OBSCURE_FILENAME.encode('utf-8'), OBSCURE_FILENAME)) except UnicodeEncodeError as exc: from .dochelpers import exc_str print("Obscure filename failed to print: %s" % exc_str(exc)) def print_dict(d): return " ".join("%s=%r" % v for v in d.items()) print("Encodings: %s" % print_dict(get_encoding_info())) print("Environment: %s" % print_dict(get_envvars_info())) if os.environ.get('DATALAD_TESTS_NOTEARDOWN'): return from datalad.ui import ui from datalad import consts ui.set_backend(_test_states['ui_backend']) if _test_states['loglevel'] is not None: lgr.setLevel(_test_states['loglevel']) if _test_states['DATALAD_LOG_LEVEL'] is None: os.environ.pop('DATALAD_LOG_LEVEL') else: os.environ['DATALAD_LOG_LEVEL'] = _test_states['DATALAD_LOG_LEVEL'] from datalad.tests import _TEMP_PATHS_GENERATED if len(_TEMP_PATHS_GENERATED): msg = "Removing %d dirs/files: %s" % (len(_TEMP_PATHS_GENERATED), ', '.join(_TEMP_PATHS_GENERATED)) else: msg = "Nothing to remove" lgr.debug("Teardown tests. " + msg) for path in _TEMP_PATHS_GENERATED: rmtemp(path, ignore_errors=True) if _test_states['HOME'] is not None: os.environ['HOME'] = _test_states['HOME'] if _test_states['DATASETS_TOPURL_ENV']: os.environ['DATALAD_DATASETS_TOPURL'] = _test_states[ 'DATASETS_TOPURL_ENV'] consts.DATASETS_TOPURL = _test_states['DATASETS_TOPURL'] from datalad.support.cookies import cookies_db cookies_db.close() from datalad.support.annexrepo import AnnexRepo AnnexRepo._ALLOW_LOCAL_URLS = False # stay safe!
def teardown_package(): import os from datalad.tests.utils import rmtemp, OBSCURE_FILENAME lgr.debug("Printing versioning information collected so far") from datalad.support.external_versions import external_versions as ev print(ev.dumps(query=True)) try: print("Obscure filename: str=%s repr=%r" % (OBSCURE_FILENAME.encode('utf-8'), OBSCURE_FILENAME)) except UnicodeEncodeError as exc: from .dochelpers import exc_str print("Obscure filename failed to print: %s" % exc_str(exc)) def print_dict(d): return " ".join("%s=%r" % v for v in d.items()) print("Encodings: %s" % print_dict(get_encoding_info())) print("Environment: %s" % print_dict(get_envvars_info())) if os.environ.get('DATALAD_TESTS_NOTEARDOWN'): return from datalad.ui import ui from datalad import consts ui.set_backend(_test_states['ui_backend']) if _test_states['loglevel'] is not None: lgr.setLevel(_test_states['loglevel']) if _test_states['DATALAD_LOG_LEVEL'] is None: os.environ.pop('DATALAD_LOG_LEVEL') else: os.environ['DATALAD_LOG_LEVEL'] = _test_states['DATALAD_LOG_LEVEL'] from datalad.tests import _TEMP_PATHS_GENERATED if len(_TEMP_PATHS_GENERATED): msg = "Removing %d dirs/files: %s" % (len(_TEMP_PATHS_GENERATED), ', '.join(_TEMP_PATHS_GENERATED)) else: msg = "Nothing to remove" lgr.debug("Teardown tests. " + msg) for path in _TEMP_PATHS_GENERATED: rmtemp(path, ignore_errors=True) if _test_states['HOME'] is not None: os.environ['HOME'] = _test_states['HOME'] if _test_states['DATASETS_TOPURL_ENV']: os.environ['DATALAD_DATASETS_TOPURL'] = _test_states['DATASETS_TOPURL_ENV'] consts.DATASETS_TOPURL = _test_states['DATASETS_TOPURL'] from datalad.support.cookies import cookies_db cookies_db.close() from datalad.support.annexrepo import AnnexRepo AnnexRepo._ALLOW_LOCAL_URLS = False # stay safe!
def test_keeptemp_via_env_variable(): if os.environ.get('DATALAD_TESTS_TEMP_KEEP'): # pragma: no cover raise SkipTest("We have env variable set to preserve tempfiles") files = [] @with_tempfile() def check(f): open(f, 'w').write("LOAD") files.append(f) with patch.dict('os.environ', {}): check() with patch.dict('os.environ', {'DATALAD_TESTS_TEMP_KEEP': '1'}): check() eq_(len(files), 2) ok_(not exists(files[0]), msg="File %s still exists" % files[0]) ok_(exists(files[1]), msg="File %s not exists" % files[1]) rmtemp(files[-1])
def teardown_package(): import os if os.environ.get('DATALAD_TESTS_NOTEARDOWN'): return from datalad.ui import ui ui.set_backend(_test_states['ui_backend']) if _test_states['loglevel'] is not None: lgr.setLevel(_test_states['loglevel']) if _test_states['DATALAD_LOG_LEVEL'] is None: os.environ.pop('DATALAD_LOG_LEVEL') else: os.environ['DATALAD_LOG_LEVEL'] = _test_states['DATALAD_LOG_LEVEL'] from datalad.tests import _TEMP_PATHS_GENERATED from datalad.tests.utils import rmtemp if len(_TEMP_PATHS_GENERATED): msg = "Removing %d dirs/files: %s" % (len(_TEMP_PATHS_GENERATED), ', '.join(_TEMP_PATHS_GENERATED)) else: msg = "Nothing to remove" lgr.debug("Teardown tests. " + msg) for path in _TEMP_PATHS_GENERATED: rmtemp(path, ignore_errors=True)