aboutsummaryrefslogtreecommitdiffstats
path: root/library/python/pytest
diff options
context:
space:
mode:
authordeshevoy <deshevoy@yandex-team.ru>2022-02-10 16:46:56 +0300
committerDaniil Cherednik <dcherednik@yandex-team.ru>2022-02-10 16:46:56 +0300
commite988f30484abe5fdeedcc7a5d3c226c01a21800c (patch)
tree0a217b173aabb57b7e51f8a169989b1a3e0309fe /library/python/pytest
parent33ee501c05d3f24036ae89766a858930ae66c548 (diff)
downloadydb-e988f30484abe5fdeedcc7a5d3c226c01a21800c.tar.gz
Restoring authorship annotation for <deshevoy@yandex-team.ru>. Commit 1 of 2.
Diffstat (limited to 'library/python/pytest')
-rw-r--r--library/python/pytest/main.py38
-rw-r--r--library/python/pytest/plugins/collection.py20
-rw-r--r--library/python/pytest/plugins/conftests.py22
-rw-r--r--library/python/pytest/plugins/ya.py38
-rw-r--r--library/python/pytest/pytest.yatest.ini6
-rw-r--r--library/python/pytest/rewrite.py128
-rw-r--r--library/python/pytest/ya.make2
-rw-r--r--library/python/pytest/yatest_tools.py8
8 files changed, 131 insertions, 131 deletions
diff --git a/library/python/pytest/main.py b/library/python/pytest/main.py
index 6296bd6f0f..355623ff0e 100644
--- a/library/python/pytest/main.py
+++ b/library/python/pytest/main.py
@@ -2,10 +2,10 @@ import os
import sys
import time
-import __res
+import __res
FORCE_EXIT_TESTSFAILED_ENV = 'FORCE_EXIT_TESTSFAILED'
-
+
def main():
import library.python.pytest.context as context
@@ -39,12 +39,12 @@ def main():
import library.python.pytest.plugins.ya as ya
import library.python.pytest.plugins.conftests as conftests
- import _pytest.assertion
- from _pytest.monkeypatch import MonkeyPatch
+ import _pytest.assertion
+ from _pytest.monkeypatch import MonkeyPatch
from . import rewrite
- m = MonkeyPatch()
- m.setattr(_pytest.assertion.rewrite, "AssertionRewritingHook", rewrite.AssertionRewritingHook)
-
+ m = MonkeyPatch()
+ m.setattr(_pytest.assertion.rewrite, "AssertionRewritingHook", rewrite.AssertionRewritingHook)
+
prefix = '__tests__.'
test_modules = [
@@ -56,18 +56,18 @@ def main():
if isinstance(doctest_packages, bytes):
doctest_packages = doctest_packages.decode('utf-8')
doctest_packages = doctest_packages.split()
-
- def is_doctest_module(name):
- for package in doctest_packages:
+
+ def is_doctest_module(name):
+ for package in doctest_packages:
if name == package or name.startswith(str(package) + "."):
- return True
- return False
-
- doctest_modules = [
- name for name in sys.extra_modules
- if is_doctest_module(name)
- ]
-
+ return True
+ return False
+
+ doctest_modules = [
+ name for name in sys.extra_modules
+ if is_doctest_module(name)
+ ]
+
def remove_user_site(paths):
site_paths = ('site-packages', 'site-python')
@@ -86,7 +86,7 @@ def main():
sys.path = remove_user_site(sys.path)
rc = pytest.main(plugins=[
- collection.CollectionPlugin(test_modules, doctest_modules),
+ collection.CollectionPlugin(test_modules, doctest_modules),
ya,
conftests,
])
diff --git a/library/python/pytest/plugins/collection.py b/library/python/pytest/plugins/collection.py
index e36f47a78f..dad830e473 100644
--- a/library/python/pytest/plugins/collection.py
+++ b/library/python/pytest/plugins/collection.py
@@ -18,14 +18,14 @@ class LoadedModule(_pytest.python.Module):
self.parent = parent
self.config = parent.config
self.keywords = {}
- self.own_markers = []
+ 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
@@ -44,7 +44,7 @@ class LoadedModule(_pytest.python.Module):
def _getobj(self):
module_name = self.name[:-len('.py')]
- if self.namespace:
+ if self.namespace:
module_name = '__tests__.' + module_name
__import__(module_name)
return sys.modules[module_name]
@@ -54,13 +54,13 @@ class DoctestModule(LoadedModule):
def collect(self):
import doctest
-
- module = self._getobj()
- # uses internal doctest module parsing mechanism
+
+ module = self._getobj()
+ # uses internal doctest module parsing mechanism
finder = doctest.DocTestFinder()
optionflags = _pytest.doctest.get_optionflags(self)
runner = doctest.DebugRunner(verbose=0, optionflags=optionflags)
-
+
try:
for test in finder.find(module, self.name[:-len('.py')]):
if test.examples: # skip empty doctests
@@ -94,9 +94,9 @@ def pytest_ignore_collect(module, session, filenames_from_full_filters, accept_f
class CollectionPlugin(object):
- def __init__(self, test_modules, doctest_modules):
+ def __init__(self, test_modules, doctest_modules):
self._test_modules = test_modules
- self._doctest_modules = doctest_modules
+ self._doctest_modules = doctest_modules
def pytest_sessionstart(self, session):
@@ -124,5 +124,5 @@ class CollectionPlugin(object):
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)
-
+
session.collect = collect
diff --git a/library/python/pytest/plugins/conftests.py b/library/python/pytest/plugins/conftests.py
index 522041f5a7..96456da28c 100644
--- a/library/python/pytest/plugins/conftests.py
+++ b/library/python/pytest/plugins/conftests.py
@@ -23,23 +23,23 @@ conftest_modules = []
@hookimpl(trylast=True)
def pytest_load_initial_conftests(early_config, parser, args):
- conftests = filter(lambda name: name.endswith(".conftest"), sys.extra_modules)
+ conftests = filter(lambda name: name.endswith(".conftest"), sys.extra_modules)
- def conftest_key(name):
- if not name.startswith("__tests__."):
- # Make __tests__ come last
- return "_." + name
- return name
+ def conftest_key(name):
+ if not name.startswith("__tests__."):
+ # Make __tests__ come last
+ return "_." + name
+ return name
- for name in sorted(conftests, key=conftest_key):
- mod = importlib.import_module(name)
+ for name in sorted(conftests, key=conftest_key):
+ mod = importlib.import_module(name)
if os.getenv("CONFTEST_LOAD_POLICY") != "LOCAL":
mod.__orig_file__ = mod.__file__
mod.__file__ = ""
- conftest_modules.append(mod)
+ conftest_modules.append(mod)
early_config.pluginmanager.consider_conftest(mod)
-
-
+
+
def getconftestmodules(*args, **kwargs):
return conftest_modules
diff --git a/library/python/pytest/plugins/ya.py b/library/python/pytest/plugins/ya.py
index 1bde03042d..0dfbb7c274 100644
--- a/library/python/pytest/plugins/ya.py
+++ b/library/python/pytest/plugins/ya.py
@@ -185,7 +185,7 @@ def pytest_configure(config):
global pytest_config
pytest_config = config
- config.option.continue_on_collection_errors = True
+ config.option.continue_on_collection_errors = True
config.addinivalue_line("markers", "ya:external")
@@ -523,9 +523,9 @@ def pytest_collectreport(report):
sys.stderr.write(yatest_lib.tools.to_utf8(report.longrepr))
-@pytest.mark.tryfirst
-def pytest_pyfunc_call(pyfuncitem):
- testfunction = pyfuncitem.obj
+@pytest.mark.tryfirst
+def pytest_pyfunc_call(pyfuncitem):
+ testfunction = pyfuncitem.obj
iscoroutinefunction = getattr(inspect, "iscoroutinefunction", None)
if iscoroutinefunction is not None and iscoroutinefunction(testfunction):
msg = "Coroutine functions are not natively supported and have been skipped.\n"
@@ -538,9 +538,9 @@ def pytest_pyfunc_call(pyfuncitem):
funcargs = pyfuncitem.funcargs
testargs = {arg: funcargs[arg] for arg in pyfuncitem._fixtureinfo.argnames}
pyfuncitem.retval = testfunction(**testargs)
- return True
-
-
+ return True
+
+
@pytest.hookimpl(hookwrapper=True)
def pytest_runtest_makereport(item, call):
def logreport(report, result, call):
@@ -575,8 +575,8 @@ def pytest_runtest_makereport(item, call):
outcome = yield
rep = outcome.get_result()
result = None
- if hasattr(item, 'retval') and item.retval is not None:
- result = item.retval
+ 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')
@@ -584,13 +584,13 @@ def pytest_runtest_makereport(item, call):
logreport(rep, result, call)
-def pytest_make_parametrize_id(config, val, argname):
- # Avoid <, > symbols in canondata file names
- if inspect.isfunction(val) and val.__name__ == "<lambda>":
- return str(argname)
- return None
-
-
+def pytest_make_parametrize_id(config, val, argname):
+ # Avoid <, > symbols in canondata file names
+ if inspect.isfunction(val) and val.__name__ == "<lambda>":
+ return str(argname)
+ return None
+
+
def get_formatted_error(report):
if isinstance(report.longrepr, tuple):
text = ""
@@ -692,7 +692,7 @@ class TestItem(object):
return self._error
def set_error(self, entry, marker='bad'):
- if isinstance(entry, _pytest.reports.BaseReport):
+ if isinstance(entry, _pytest.reports.BaseReport):
self._error = get_formatted_error(entry)
else:
self._error = "[[{}]]{}".format(yatest_lib.tools.to_str(marker), yatest_lib.tools.to_str(entry))
@@ -827,9 +827,9 @@ class TraceReportGenerator(object):
self.trace('subtest-started', message)
def on_finish_test_case(self, test_item, duration_only=False):
- if test_item.result is not None:
+ if test_item.result is not None:
try:
- result = canon.serialize(test_item.result)
+ result = canon.serialize(test_item.result)
except Exception as e:
yatest_logger.exception("Error while serializing test results")
test_item.set_error("Invalid test result: {}".format(e))
diff --git a/library/python/pytest/pytest.yatest.ini b/library/python/pytest/pytest.yatest.ini
index 70d6c98516..b755a300f9 100644
--- a/library/python/pytest/pytest.yatest.ini
+++ b/library/python/pytest/pytest.yatest.ini
@@ -2,6 +2,6 @@
pep8maxlinelength = 200
norecursedirs = *
pep8ignore = E127 E123 E226 E24
-filterwarnings =
- ignore::pytest.RemovedInPytest4Warning
-addopts = -p no:warnings
+filterwarnings =
+ ignore::pytest.RemovedInPytest4Warning
+addopts = -p no:warnings
diff --git a/library/python/pytest/rewrite.py b/library/python/pytest/rewrite.py
index 4cebcb1edd..e14bd3279b 100644
--- a/library/python/pytest/rewrite.py
+++ b/library/python/pytest/rewrite.py
@@ -1,11 +1,11 @@
-from __future__ import absolute_import
-from __future__ import print_function
-
-import ast
-
+from __future__ import absolute_import
+from __future__ import print_function
+
+import ast
+
import py
-from _pytest.assertion import rewrite
+from _pytest.assertion import rewrite
try:
import importlib.util
except ImportError:
@@ -16,23 +16,23 @@ try:
except ImportError:
pass
-from __res import importer
+from __res import importer
import sys
import six
-
-
+
+
def _get_state(config):
if hasattr(config, '_assertstate'):
return config._assertstate
return config._store[rewrite.assertstate_key]
-class AssertionRewritingHook(rewrite.AssertionRewritingHook):
+class AssertionRewritingHook(rewrite.AssertionRewritingHook):
def __init__(self, *args, **kwargs):
self.modules = {}
super(AssertionRewritingHook, self).__init__(*args, **kwargs)
-
- def find_module(self, name, path=None):
+
+ def find_module(self, name, path=None):
co = self._find_module(name, path)
if co is not None:
return self
@@ -40,28 +40,28 @@ class AssertionRewritingHook(rewrite.AssertionRewritingHook):
def _find_module(self, name, path=None):
state = _get_state(self.config)
if not self._should_rewrite(name, None, state):
- return None
- state.trace("find_module called for: %s" % name)
-
- try:
- if self.is_package(name):
- return None
- except ImportError:
- return None
-
+ return None
+ state.trace("find_module called for: %s" % name)
+
+ try:
+ if self.is_package(name):
+ return None
+ except ImportError:
+ return None
+
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)
- if co is None:
- # Probably a SyntaxError in the test.
- return None
- self.modules[name] = co, None
+
+ state.trace("rewriting %s" % name)
+ co = _rewrite_test(self.config, name)
+ if co is None:
+ # Probably a SyntaxError in the test.
+ return None
+ self.modules[name] = co, None
return co
-
+
def find_spec(self, name, path=None, target=None):
co = self._find_module(name, path)
if co is not None:
@@ -72,17 +72,17 @@ class AssertionRewritingHook(rewrite.AssertionRewritingHook):
)
def _should_rewrite(self, name, fn, state):
- if name.startswith("__tests__.") or name.endswith(".conftest"):
- return True
-
- return self._is_marked_for_rewrite(name, state)
-
- def is_package(self, name):
- return importer.is_package(name)
-
- def get_source(self, name):
- return importer.get_source(name)
-
+ if name.startswith("__tests__.") or name.endswith(".conftest"):
+ return True
+
+ return self._is_marked_for_rewrite(name, state)
+
+ def is_package(self, name):
+ return importer.is_package(name)
+
+ def get_source(self, name):
+ return importer.get_source(name)
+
if six.PY3:
def load_module(self, module):
co, _ = self.modules.pop(module.__name__)
@@ -97,7 +97,7 @@ class AssertionRewritingHook(rewrite.AssertionRewritingHook):
del sys.modules[module.__name__]
raise
return sys.modules[module.__name__]
-
+
def exec_module(self, module):
if module.__name__ in self.modules:
self.load_module(module)
@@ -105,28 +105,28 @@ class AssertionRewritingHook(rewrite.AssertionRewritingHook):
super(AssertionRewritingHook, self).exec_module(module)
-def _rewrite_test(config, name):
- """Try to read and rewrite *fn* and return the code object."""
+def _rewrite_test(config, name):
+ """Try to read and rewrite *fn* and return the code object."""
state = _get_state(config)
-
- source = importer.get_source(name)
- if source is None:
- return None
-
- path = importer.get_filename(name)
-
- try:
- tree = ast.parse(source, filename=path)
- except SyntaxError:
- # Let this pop up again in the real import.
- state.trace("failed to parse: %r" % (path,))
- return None
+
+ source = importer.get_source(name)
+ if source is None:
+ return None
+
+ path = importer.get_filename(name)
+
+ try:
+ tree = ast.parse(source, filename=path)
+ except SyntaxError:
+ # Let this pop up again in the real import.
+ state.trace("failed to parse: %r" % (path,))
+ return None
rewrite.rewrite_asserts(tree, py.path.local(path), config)
- try:
- co = compile(tree, path, "exec", dont_inherit=True)
- except SyntaxError:
- # It's possible that this error is from some bug in the
- # assertion rewriting, but I don't know of a fast way to tell.
- state.trace("failed to compile: %r" % (path,))
- return None
- return co
+ try:
+ co = compile(tree, path, "exec", dont_inherit=True)
+ except SyntaxError:
+ # It's possible that this error is from some bug in the
+ # assertion rewriting, but I don't know of a fast way to tell.
+ state.trace("failed to compile: %r" % (path,))
+ return None
+ return co
diff --git a/library/python/pytest/ya.make b/library/python/pytest/ya.make
index 060c92c313..84c0954311 100644
--- a/library/python/pytest/ya.make
+++ b/library/python/pytest/ya.make
@@ -8,7 +8,7 @@ OWNER(
PY_SRCS(
__init__.py
main.py
- rewrite.py
+ rewrite.py
yatest_tools.py
context.py
)
diff --git a/library/python/pytest/yatest_tools.py b/library/python/pytest/yatest_tools.py
index 6b8b896394..473bfeaadd 100644
--- a/library/python/pytest/yatest_tools.py
+++ b/library/python/pytest/yatest_tools.py
@@ -284,10 +284,10 @@ def get_test_log_file_path(output_dir, class_name, test_name, extension="log"):
def split_node_id(nodeid, test_suffix=None):
- path, possible_open_bracket, params = nodeid.partition('[')
+ path, possible_open_bracket, params = nodeid.partition('[')
separator = "::"
- if separator in path:
- path, test_name = path.split(separator, 1)
+ if separator in path:
+ path, test_name = path.split(separator, 1)
else:
test_name = os.path.basename(path)
if test_suffix:
@@ -300,5 +300,5 @@ def split_node_id(nodeid, test_suffix=None):
class_name += separator + klass_name
if separator in test_name:
test_name = test_name.split(separator)[-1]
- test_name += possible_open_bracket + params
+ test_name += possible_open_bracket + params
return yatest_lib.tools.to_utf8(class_name), yatest_lib.tools.to_utf8(test_name)