diff options
author | danila-eremin <danila-eremin@yandex-team.ru> | 2022-02-10 16:46:21 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:46:21 +0300 |
commit | 358e631d1a69242d3ae4d6e6b1e4f7581d03133b (patch) | |
tree | db997f29fd5f1b32ede8ce681a7c73ec0a0714d0 /library/python | |
parent | bf23f1e45d4627b54a70900ef362c1be748cc787 (diff) | |
download | ydb-358e631d1a69242d3ae4d6e6b1e4f7581d03133b.tar.gz |
Restoring authorship annotation for <danila-eremin@yandex-team.ru>. Commit 1 of 2.
Diffstat (limited to 'library/python')
-rw-r--r-- | library/python/pytest/plugins/collection.py | 72 | ||||
-rw-r--r-- | library/python/pytest/plugins/ya.py | 108 | ||||
-rw-r--r-- | library/python/pytest/rewrite.py | 20 | ||||
-rw-r--r-- | library/python/testing/yatest_common/yatest/common/runtime.py | 4 |
4 files changed, 102 insertions, 102 deletions
diff --git a/library/python/pytest/plugins/collection.py b/library/python/pytest/plugins/collection.py index e36f47a78f..9c29494de8 100644 --- a/library/python/pytest/plugins/collection.py +++ b/library/python/pytest/plugins/collection.py @@ -12,40 +12,40 @@ import library.python.testing.filter.filter as test_filter class LoadedModule(_pytest.python.Module): - def __init__(self, parent, name, **kwargs): - self.name = name + '.py' - self.session = parent - self.parent = parent - self.config = parent.config + def __init__(self, parent, name, **kwargs): + self.name = name + '.py' + self.session = parent + self.parent = parent + self.config = parent.config self.keywords = {} self.own_markers = [] - self.fspath = py.path.local() - - @classmethod - def from_parent(cls, **kwargs): - namespace = kwargs.pop('namespace', True) - kwargs.setdefault('fspath', py.path.local()) - - loaded_module = getattr(super(LoadedModule, cls), 'from_parent', cls)(**kwargs) - loaded_module.namespace = namespace - - return loaded_module - + self.fspath = py.path.local() + + @classmethod + def from_parent(cls, **kwargs): + namespace = kwargs.pop('namespace', True) + kwargs.setdefault('fspath', py.path.local()) + + loaded_module = getattr(super(LoadedModule, cls), 'from_parent', cls)(**kwargs) + loaded_module.namespace = namespace + + return loaded_module + @property - def _nodeid(self): - if os.getenv('CONFTEST_LOAD_POLICY') == 'LOCAL': + def _nodeid(self): + if os.getenv('CONFTEST_LOAD_POLICY') == 'LOCAL': return self._getobj().__file__ else: return self.name - - @property - def nodeid(self): - return self._nodeid + + @property + def nodeid(self): + return self._nodeid def _getobj(self): - module_name = self.name[:-len('.py')] + module_name = self.name[:-len('.py')] if self.namespace: - module_name = '__tests__.' + module_name + module_name = '__tests__.' + module_name __import__(module_name) return sys.modules[module_name] @@ -62,19 +62,19 @@ class DoctestModule(LoadedModule): runner = doctest.DebugRunner(verbose=0, optionflags=optionflags) try: - for test in finder.find(module, self.name[:-len('.py')]): + for test in finder.find(module, self.name[:-len('.py')]): if test.examples: # skip empty doctests - yield getattr(_pytest.doctest.DoctestItem, 'from_parent', _pytest.doctest.DoctestItem)( - name=test.name, - parent=self, - runner=runner, - dtest=test) + yield getattr(_pytest.doctest.DoctestItem, 'from_parent', _pytest.doctest.DoctestItem)( + name=test.name, + parent=self, + runner=runner, + dtest=test) except Exception: import logging logging.exception('DoctestModule failed, probably you can add NO_DOCTESTS() macro to ya.make') etype, exc, tb = sys.exc_info() msg = 'DoctestModule failed, probably you can add NO_DOCTESTS() macro to ya.make' - reraise(etype, type(exc)('{}\n{}'.format(exc, msg)), tb) + reraise(etype, type(exc)('{}\n{}'.format(exc, msg)), tb) # NOTE: Since we are overriding collect method of pytest session, pytest hooks are not invoked during collection. @@ -88,7 +88,7 @@ def pytest_ignore_collect(module, session, filenames_from_full_filters, accept_f test_file_filter = getattr(session.config.option, 'test_file_filter', None) if test_file_filter is None: return False - if module.name != test_file_filter.replace('/', '.'): + if module.name != test_file_filter.replace('/', '.'): return True return False @@ -112,17 +112,17 @@ class CollectionPlugin(object): filenames_filter = set(map(lambda x: x.split('::')[0], full_names_filter)) for test_module in self._test_modules: - module = LoadedModule.from_parent(name=test_module, parent=session) + module = LoadedModule.from_parent(name=test_module, parent=session) if not pytest_ignore_collect(module, session, filenames_filter, accept_filename_predicate): yield module if os.environ.get('YA_PYTEST_DISABLE_DOCTEST', 'no') == 'no': - module = DoctestModule.from_parent(name=test_module, parent=session) + module = DoctestModule.from_parent(name=test_module, parent=session) if not pytest_ignore_collect(module, session, filenames_filter, accept_filename_predicate): yield module if os.environ.get('YA_PYTEST_DISABLE_DOCTEST', 'no') == 'no': for doctest_module in self._doctest_modules: - yield DoctestModule.from_parent(name=doctest_module, parent=session, namespace=False) + yield DoctestModule.from_parent(name=doctest_module, parent=session, namespace=False) session.collect = collect diff --git a/library/python/pytest/plugins/ya.py b/library/python/pytest/plugins/ya.py index 1bde03042d..dae99f41d5 100644 --- a/library/python/pytest/plugins/ya.py +++ b/library/python/pytest/plugins/ya.py @@ -23,9 +23,9 @@ import six import _pytest import _pytest._io -import _pytest.mark +import _pytest.mark import _pytest.outcomes -import _pytest.skipping +import _pytest.skipping from _pytest.warning_types import PytestUnhandledCoroutineWarning @@ -293,38 +293,38 @@ def pytest_configure(config): signal.signal(signal.SIGUSR2, _graceful_shutdown) -session_should_exit = False - - -def _graceful_shutdown_on_log(should_exit): - if should_exit: - pytest.exit("Graceful shutdown requested") - - -def pytest_runtest_logreport(report): - _graceful_shutdown_on_log(session_should_exit) - - -def pytest_runtest_logstart(nodeid, location): - _graceful_shutdown_on_log(session_should_exit) - - -def pytest_runtest_logfinish(nodeid, location): - _graceful_shutdown_on_log(session_should_exit) - - +session_should_exit = False + + +def _graceful_shutdown_on_log(should_exit): + if should_exit: + pytest.exit("Graceful shutdown requested") + + +def pytest_runtest_logreport(report): + _graceful_shutdown_on_log(session_should_exit) + + +def pytest_runtest_logstart(nodeid, location): + _graceful_shutdown_on_log(session_should_exit) + + +def pytest_runtest_logfinish(nodeid, location): + _graceful_shutdown_on_log(session_should_exit) + + def _graceful_shutdown(*args): - global session_should_exit - session_should_exit = True + global session_should_exit + session_should_exit = True try: import library.python.coverage library.python.coverage.stop_coverage_tracing() except ImportError: pass traceback.print_stack(file=sys.stderr) - capman = pytest_config.pluginmanager.getplugin("capturemanager") - capman.suspend(in_=True) - _graceful_shutdown_on_log(not capman.is_globally_capturing()) + capman = pytest_config.pluginmanager.getplugin("capturemanager") + capman.suspend(in_=True) + _graceful_shutdown_on_log(not capman.is_globally_capturing()) def _get_rusage(): @@ -368,7 +368,7 @@ def _collect_test_rusage(item): def _get_item_tags(item): tags = [] for key, value in item.keywords.items(): - if key == 'pytestmark' and isinstance(value, list): + if key == 'pytestmark' and isinstance(value, list): for mark in value: tags.append(mark.name) elif isinstance(value, _pytest.mark.MarkDecorator): @@ -541,7 +541,7 @@ def pytest_pyfunc_call(pyfuncitem): return True -@pytest.hookimpl(hookwrapper=True) +@pytest.hookimpl(hookwrapper=True) def pytest_runtest_makereport(item, call): def logreport(report, result, call): test_item = TestItem(report, result, pytest_config.option.test_suffix) @@ -550,10 +550,10 @@ def pytest_runtest_makereport(item, call): pytest_config.ya_trace_reporter.dump_suite_metrics() pytest_config.ya_trace_reporter.on_log_report(test_item) - - if report.outcome == "failed": - yatest_logger.error(report.longrepr) - + + if report.outcome == "failed": + yatest_logger.error(report.longrepr) + if report.when == "call": _collect_test_rusage(item) pytest_config.ya_trace_reporter.on_finish_test_case(test_item) @@ -572,16 +572,16 @@ def pytest_runtest_makereport(item, call): pytest_config.ya_trace_reporter.on_finish_test_case(test_item, duration_only=True) pytest_config.ya_trace_reporter.on_finish_test_class(test_item) - outcome = yield - rep = outcome.get_result() - result = None + outcome = yield + rep = outcome.get_result() + result = None if hasattr(item, 'retval') and item.retval is not None: result = item.retval if not pytest_config.from_ya_test: ti = TestItem(rep, result, pytest_config.option.test_suffix) tr = pytest_config.pluginmanager.getplugin('terminalreporter') tr.write_line("{} - Validating canonical data is not supported when running standalone binary".format(ti), yellow=True, bold=True) - logreport(rep, result, call) + logreport(rep, result, call) def pytest_make_parametrize_id(config, val, argname): @@ -652,25 +652,25 @@ class TestItem(object): self.set_error(report.when + " failed:\n" + self._error) else: self.set_error("") - - report_teststatus = _pytest.skipping.pytest_report_teststatus(report) - if report_teststatus is not None: - report_teststatus = report_teststatus[0] - - if report_teststatus == 'xfailed': - self._status = 'xfail' - self.set_error(report.wasxfail, 'imp') - elif report_teststatus == 'xpassed': - self._status = 'xpass' - self.set_error("Test unexpectedly passed") - elif report.skipped: - self._status = 'skipped' - self.set_error(yatest_lib.tools.to_utf8(report.longrepr[-1])) - elif report.passed: + + report_teststatus = _pytest.skipping.pytest_report_teststatus(report) + if report_teststatus is not None: + report_teststatus = report_teststatus[0] + + if report_teststatus == 'xfailed': + self._status = 'xfail' + self.set_error(report.wasxfail, 'imp') + elif report_teststatus == 'xpassed': + self._status = 'xpass' + self.set_error("Test unexpectedly passed") + elif report.skipped: + self._status = 'skipped' + self.set_error(yatest_lib.tools.to_utf8(report.longrepr[-1])) + elif report.passed: self._status = 'good' self.set_error("") - else: - self._status = 'fail' + else: + self._status = 'fail' @property def status(self): diff --git a/library/python/pytest/rewrite.py b/library/python/pytest/rewrite.py index 4cebcb1edd..5171dbd345 100644 --- a/library/python/pytest/rewrite.py +++ b/library/python/pytest/rewrite.py @@ -10,12 +10,12 @@ try: import importlib.util except ImportError: pass - -try: - from pathlib import Path -except ImportError: - pass - + +try: + from pathlib import Path +except ImportError: + pass + from __res import importer import sys import six @@ -49,10 +49,10 @@ class AssertionRewritingHook(rewrite.AssertionRewritingHook): except ImportError: return None - if hasattr(self._rewritten_names, 'add'): - self._rewritten_names.add(name) - else: - self._rewritten_names[name] = Path(path[0]) + if hasattr(self._rewritten_names, 'add'): + self._rewritten_names.add(name) + else: + self._rewritten_names[name] = Path(path[0]) state.trace("rewriting %s" % name) co = _rewrite_test(self.config, name) diff --git a/library/python/testing/yatest_common/yatest/common/runtime.py b/library/python/testing/yatest_common/yatest/common/runtime.py index e55e193446..f1b133a27f 100644 --- a/library/python/testing/yatest_common/yatest/common/runtime.py +++ b/library/python/testing/yatest_common/yatest/common/runtime.py @@ -212,7 +212,7 @@ def test_output_path(path=None): """ Get dir in the suite output_path for the current test case """ - test_out_dir = os.path.splitext(_get_ya_config().current_test_log_path)[0] + test_out_dir = os.path.splitext(_get_ya_config().current_test_log_path)[0] try: os.makedirs(test_out_dir) except OSError as e: @@ -313,7 +313,7 @@ class Context(object): @property def test_name(self): - return _get_ya_config().current_test_name + return _get_ya_config().current_test_name @property def sanitize(self): |