forked from pool/python-pytest-examples
- update to 0.0.12:
* Pin `ruff` version and prep for v0.0.12 release - update to 0.0.11: * Use `tb_lineno` to point to correct line in traceback * Fix deprecation warnings in Python 3.12 * Include tests in sdist * `ruff` now requires the `check` specification - drop ruff05.patch, fix-traceback.patch, support-python-312.patch, test-ruff-0.1.0.patch: upstream OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:pytest/python-pytest-examples?expand=0&rev=13
This commit is contained in:
@@ -1,223 +0,0 @@
|
|||||||
From 3fe64dc479d318fa58fd1952bd37ce9db2beb23f Mon Sep 17 00:00:00 2001
|
|
||||||
From: Alex Hall <alex.mojaki@gmail.com>
|
|
||||||
Date: Sun, 17 Sep 2023 17:35:21 +0200
|
|
||||||
Subject: [PATCH 1/4] Use tb_lineno to point to correct line in traceback
|
|
||||||
|
|
||||||
---
|
|
||||||
pytest_examples/traceback.py | 14 +++++++-------
|
|
||||||
tests/test_run_examples.py | 9 ++++++---
|
|
||||||
2 files changed, 13 insertions(+), 10 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/pytest_examples/traceback.py b/pytest_examples/traceback.py
|
|
||||||
index 7dedfa1..591f995 100644
|
|
||||||
--- a/pytest_examples/traceback.py
|
|
||||||
+++ b/pytest_examples/traceback.py
|
|
||||||
@@ -1,7 +1,6 @@
|
|
||||||
from __future__ import annotations as _annotations
|
|
||||||
|
|
||||||
import sys
|
|
||||||
-import traceback
|
|
||||||
from types import CodeType, FrameType, TracebackType
|
|
||||||
from typing import TYPE_CHECKING
|
|
||||||
|
|
||||||
@@ -21,16 +20,17 @@ def create_example_traceback(exc: Exception, module_path: str, example: CodeExam
|
|
||||||
# f_code.co_posonlyargcount was added in 3.8
|
|
||||||
return None
|
|
||||||
frames = []
|
|
||||||
- for frame, _ in traceback.walk_tb(exc.__traceback__):
|
|
||||||
+ tb = exc.__traceback__
|
|
||||||
+ while tb is not None:
|
|
||||||
+ frame = tb.tb_frame
|
|
||||||
if frame.f_code.co_filename == module_path:
|
|
||||||
- frames.append(create_custom_frame(frame, example))
|
|
||||||
+ frames.append((create_custom_frame(frame, example), tb.tb_lasti, tb.tb_lineno + example.start_line))
|
|
||||||
+ tb = tb.tb_next
|
|
||||||
|
|
||||||
frames.reverse()
|
|
||||||
new_tb = None
|
|
||||||
- for altered_frame in frames:
|
|
||||||
- new_tb = TracebackType(
|
|
||||||
- tb_next=new_tb, tb_frame=altered_frame, tb_lasti=altered_frame.f_lasti, tb_lineno=altered_frame.f_lineno
|
|
||||||
- )
|
|
||||||
+ for altered_frame, lasti, lineno in frames:
|
|
||||||
+ new_tb = TracebackType(tb_next=new_tb, tb_frame=altered_frame, tb_lasti=lasti, tb_lineno=lineno)
|
|
||||||
return new_tb
|
|
||||||
|
|
||||||
|
|
||||||
diff --git a/tests/test_run_examples.py b/tests/test_run_examples.py
|
|
||||||
index 6943329..9f077d7 100644
|
|
||||||
--- a/tests/test_run_examples.py
|
|
||||||
+++ b/tests/test_run_examples.py
|
|
||||||
@@ -224,7 +224,10 @@ def test_run_directly(tmp_path, eval_example):
|
|
||||||
x = 4
|
|
||||||
|
|
||||||
def div(y):
|
|
||||||
- return x / y
|
|
||||||
+ try:
|
|
||||||
+ return x / y
|
|
||||||
+ finally:
|
|
||||||
+ str(y)
|
|
||||||
|
|
||||||
div(2)
|
|
||||||
div(0)"""
|
|
||||||
@@ -244,10 +247,10 @@ def div(y):
|
|
||||||
|
|
||||||
# debug(exc_info.traceback)
|
|
||||||
assert exc_info.traceback[-1].frame.code.path == md_file
|
|
||||||
- assert exc_info.traceback[-1].lineno == 6
|
|
||||||
+ assert exc_info.traceback[-1].lineno == 7
|
|
||||||
|
|
||||||
assert exc_info.traceback[-2].frame.code.path == md_file
|
|
||||||
- assert exc_info.traceback[-2].lineno == 9
|
|
||||||
+ assert exc_info.traceback[-2].lineno == 12
|
|
||||||
|
|
||||||
|
|
||||||
def test_print_sub(pytester: pytest.Pytester):
|
|
||||||
|
|
||||||
From e07b1538df6eb662c2b92b9da9b768a2cc1f3ed3 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Alex Hall <alex.mojaki@gmail.com>
|
|
||||||
Date: Sun, 17 Sep 2023 19:08:32 +0200
|
|
||||||
Subject: [PATCH 2/4] Keep the original co_firstlineno
|
|
||||||
|
|
||||||
---
|
|
||||||
pytest_examples/traceback.py | 10 ++++------
|
|
||||||
tests/test_run_examples.py | 2 +-
|
|
||||||
2 files changed, 5 insertions(+), 7 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/pytest_examples/traceback.py b/pytest_examples/traceback.py
|
|
||||||
index 591f995..9e797ed 100644
|
|
||||||
--- a/pytest_examples/traceback.py
|
|
||||||
+++ b/pytest_examples/traceback.py
|
|
||||||
@@ -36,12 +36,10 @@ def create_example_traceback(exc: Exception, module_path: str, example: CodeExam
|
|
||||||
|
|
||||||
def create_custom_frame(frame: FrameType, example: CodeExample) -> FrameType:
|
|
||||||
"""
|
|
||||||
- Create a new frame that mostly matches `frame` but with a filename from `example` and line number
|
|
||||||
- altered to match the example.
|
|
||||||
+ Create a new frame that mostly matches `frame` but with a filename from `example`.
|
|
||||||
|
|
||||||
Taken mostly from https://naleraphael.github.io/blog/posts/devlog_create_a_builtin_frame_object/
|
|
||||||
- With the CodeType creation inspired by https://stackoverflow.com/a/16123158/949890. However, we use
|
|
||||||
- `frame.f_lineno` for the line number instead of `f_code.co_firstlineno` as that seems to work.
|
|
||||||
+ With the CodeType creation inspired by https://stackoverflow.com/a/16123158/949890.
|
|
||||||
"""
|
|
||||||
import ctypes
|
|
||||||
|
|
||||||
@@ -77,7 +75,7 @@ def create_custom_frame(frame: FrameType, example: CodeExample) -> FrameType:
|
|
||||||
str(example.path),
|
|
||||||
f_code.co_name,
|
|
||||||
f_code.co_qualname,
|
|
||||||
- frame.f_lineno + example.start_line,
|
|
||||||
+ f_code.co_firstlineno,
|
|
||||||
f_code.co_lnotab,
|
|
||||||
f_code.co_exceptiontable,
|
|
||||||
)
|
|
||||||
@@ -95,7 +93,7 @@ def create_custom_frame(frame: FrameType, example: CodeExample) -> FrameType:
|
|
||||||
f_code.co_varnames,
|
|
||||||
str(example.path),
|
|
||||||
f_code.co_name,
|
|
||||||
- frame.f_lineno + example.start_line,
|
|
||||||
+ f_code.co_firstlineno,
|
|
||||||
f_code.co_lnotab,
|
|
||||||
)
|
|
||||||
|
|
||||||
diff --git a/tests/test_run_examples.py b/tests/test_run_examples.py
|
|
||||||
index 9f077d7..9bf3dcc 100644
|
|
||||||
--- a/tests/test_run_examples.py
|
|
||||||
+++ b/tests/test_run_examples.py
|
|
||||||
@@ -54,7 +54,7 @@ def test_find_run_examples(example: CodeExample, eval_example: EvalExample):
|
|
||||||
|
|
||||||
# assert 'my_file_9_13.py:12: AssertionError' in '\n'.join(result.outlines)
|
|
||||||
assert result.outlines[-8:-3] == [
|
|
||||||
- '',
|
|
||||||
+ ' b = 2',
|
|
||||||
'> assert a + b == 4',
|
|
||||||
'E AssertionError',
|
|
||||||
'',
|
|
||||||
|
|
||||||
From 089cf8a4f0a91a5b85108205d0f58cf603af3ac5 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Alex Hall <alex.mojaki@gmail.com>
|
|
||||||
Date: Wed, 20 Sep 2023 15:46:34 +0200
|
|
||||||
Subject: [PATCH 3/4] Adjust co_firstlineno so that the pytest includes the
|
|
||||||
correct context.
|
|
||||||
|
|
||||||
---
|
|
||||||
pytest_examples/traceback.py | 8 +++++---
|
|
||||||
tests/test_run_examples.py | 6 ++++--
|
|
||||||
2 files changed, 9 insertions(+), 5 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/pytest_examples/traceback.py b/pytest_examples/traceback.py
|
|
||||||
index 9e797ed..94ede45 100644
|
|
||||||
--- a/pytest_examples/traceback.py
|
|
||||||
+++ b/pytest_examples/traceback.py
|
|
||||||
@@ -36,7 +36,9 @@ def create_example_traceback(exc: Exception, module_path: str, example: CodeExam
|
|
||||||
|
|
||||||
def create_custom_frame(frame: FrameType, example: CodeExample) -> FrameType:
|
|
||||||
"""
|
|
||||||
- Create a new frame that mostly matches `frame` but with a filename from `example`.
|
|
||||||
+ Create a new frame that mostly matches `frame` but with a code object that has
|
|
||||||
+ a filename from `example` and adjusted an adjusted first line number
|
|
||||||
+ so that pytest shows the correct code context in the traceback.
|
|
||||||
|
|
||||||
Taken mostly from https://naleraphael.github.io/blog/posts/devlog_create_a_builtin_frame_object/
|
|
||||||
With the CodeType creation inspired by https://stackoverflow.com/a/16123158/949890.
|
|
||||||
@@ -75,7 +77,7 @@ def create_custom_frame(frame: FrameType, example: CodeExample) -> FrameType:
|
|
||||||
str(example.path),
|
|
||||||
f_code.co_name,
|
|
||||||
f_code.co_qualname,
|
|
||||||
- f_code.co_firstlineno,
|
|
||||||
+ f_code.co_firstlineno + example.start_line,
|
|
||||||
f_code.co_lnotab,
|
|
||||||
f_code.co_exceptiontable,
|
|
||||||
)
|
|
||||||
@@ -93,7 +95,7 @@ def create_custom_frame(frame: FrameType, example: CodeExample) -> FrameType:
|
|
||||||
f_code.co_varnames,
|
|
||||||
str(example.path),
|
|
||||||
f_code.co_name,
|
|
||||||
- f_code.co_firstlineno,
|
|
||||||
+ f_code.co_firstlineno + example.start_line,
|
|
||||||
f_code.co_lnotab,
|
|
||||||
)
|
|
||||||
|
|
||||||
diff --git a/tests/test_run_examples.py b/tests/test_run_examples.py
|
|
||||||
index 9bf3dcc..ad878ea 100644
|
|
||||||
--- a/tests/test_run_examples.py
|
|
||||||
+++ b/tests/test_run_examples.py
|
|
||||||
@@ -52,8 +52,10 @@ def test_find_run_examples(example: CodeExample, eval_example: EvalExample):
|
|
||||||
result = pytester.runpytest('-p', 'no:pretty', '-v')
|
|
||||||
result.assert_outcomes(passed=1, failed=1)
|
|
||||||
|
|
||||||
- # assert 'my_file_9_13.py:12: AssertionError' in '\n'.join(result.outlines)
|
|
||||||
- assert result.outlines[-8:-3] == [
|
|
||||||
+ assert result.outlines[-11:-3] == [
|
|
||||||
+ '_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ',
|
|
||||||
+ '',
|
|
||||||
+ ' a = 1',
|
|
||||||
' b = 2',
|
|
||||||
'> assert a + b == 4',
|
|
||||||
'E AssertionError',
|
|
||||||
|
|
||||||
From e07ec3de414c00afa11a94bd136b33f77608c767 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Alex Hall <alex.mojaki@gmail.com>
|
|
||||||
Date: Sat, 23 Sep 2023 12:08:07 +0200
|
|
||||||
Subject: [PATCH 4/4] Loosen testing result.outlines
|
|
||||||
|
|
||||||
---
|
|
||||||
tests/test_run_examples.py | 4 ++--
|
|
||||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/tests/test_run_examples.py b/tests/test_run_examples.py
|
|
||||||
index ad878ea..1dcfba1 100644
|
|
||||||
--- a/tests/test_run_examples.py
|
|
||||||
+++ b/tests/test_run_examples.py
|
|
||||||
@@ -52,8 +52,8 @@ def test_find_run_examples(example: CodeExample, eval_example: EvalExample):
|
|
||||||
result = pytester.runpytest('-p', 'no:pretty', '-v')
|
|
||||||
result.assert_outcomes(passed=1, failed=1)
|
|
||||||
|
|
||||||
- assert result.outlines[-11:-3] == [
|
|
||||||
- '_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ',
|
|
||||||
+ assert result.outlines[-11].startswith('_ _ _ _ ')
|
|
||||||
+ assert result.outlines[-10:-3] == [
|
|
||||||
'',
|
|
||||||
' a = 1',
|
|
||||||
' b = 2',
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:dce3ca92ef6ac225387e9e38cac45cf81776f01a7b69fbacff4012b62984611f
|
|
||||||
size 22058
|
|
||||||
BIN
pytest_examples-0.0.12.tar.gz
(Stored with Git LFS)
Normal file
BIN
pytest_examples-0.0.12.tar.gz
(Stored with Git LFS)
Normal file
Binary file not shown.
@@ -1,3 +1,17 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Jul 3 16:13:14 UTC 2024 - Dirk Müller <dmueller@suse.com>
|
||||||
|
|
||||||
|
- update to 0.0.12:
|
||||||
|
* Pin `ruff` version and prep for v0.0.12 release
|
||||||
|
- update to 0.0.11:
|
||||||
|
* Use `tb_lineno` to point to correct line in traceback
|
||||||
|
* Fix deprecation warnings in Python 3.12
|
||||||
|
* Include tests in sdist
|
||||||
|
* `ruff` now requires the `check` specification
|
||||||
|
|
||||||
|
- drop ruff05.patch, fix-traceback.patch,
|
||||||
|
support-python-312.patch, test-ruff-0.1.0.patch: upstream
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Mon Jul 1 18:03:28 UTC 2024 - Dirk Müller <dmueller@suse.com>
|
Mon Jul 1 18:03:28 UTC 2024 - Dirk Müller <dmueller@suse.com>
|
||||||
|
|
||||||
|
|||||||
@@ -18,20 +18,13 @@
|
|||||||
|
|
||||||
%{?sle15_python_module_pythons}
|
%{?sle15_python_module_pythons}
|
||||||
Name: python-pytest-examples
|
Name: python-pytest-examples
|
||||||
Version: 0.0.10
|
Version: 0.0.12
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: Pytest plugin for testing examples in docstrings and markdown files
|
Summary: Pytest plugin for testing examples in docstrings and markdown files
|
||||||
License: MIT
|
License: MIT
|
||||||
URL: https://github.com/pydantic/pytest-examples
|
URL: https://github.com/pydantic/pytest-examples
|
||||||
# sdist without tests
|
# sdist without tests
|
||||||
Source: https://github.com/pydantic/pytest-examples/archive/refs/tags/v%{version}.tar.gz#/pytest-examples-%{version}.tar.gz
|
Source: https://files.pythonhosted.org/packages/source/p/pytest-examples/pytest_examples-%{version}.tar.gz
|
||||||
# PATCH-FIX-UPSTREAM gh#pydantic/pytest-examples#17
|
|
||||||
Patch0: fix-traceback.patch
|
|
||||||
# PATCH-FIX-UPSTREAM test-ruff-0.1.0.patch - fix tests for ruff-0.1.0
|
|
||||||
Patch1: test-ruff-0.1.0.patch
|
|
||||||
# PATCH-FIX-UPSTREAM gh#pydantic/pytest-examples#22
|
|
||||||
Patch2: support-python-312.patch
|
|
||||||
Patch3: ruff05.patch
|
|
||||||
BuildRequires: %{python_module black}
|
BuildRequires: %{python_module black}
|
||||||
BuildRequires: %{python_module hatchling}
|
BuildRequires: %{python_module hatchling}
|
||||||
BuildRequires: %{python_module pip}
|
BuildRequires: %{python_module pip}
|
||||||
@@ -56,7 +49,7 @@ Pytest plugin for testing Python code examples in docstrings and markdown files.
|
|||||||
It can also update code examples in place to format them and insert or update print statements.
|
It can also update code examples in place to format them and insert or update print statements.
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%autosetup -p1 -n pytest-examples-%{version}
|
%autosetup -p1 -n pytest_examples-%{version}
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%pyproject_wheel
|
%pyproject_wheel
|
||||||
|
|||||||
13
ruff05.patch
13
ruff05.patch
@@ -1,13 +0,0 @@
|
|||||||
Index: pytest-examples-0.0.10/pytest_examples/lint.py
|
|
||||||
===================================================================
|
|
||||||
--- pytest-examples-0.0.10.orig/pytest_examples/lint.py
|
|
||||||
+++ pytest-examples-0.0.10/pytest_examples/lint.py
|
|
||||||
@@ -47,7 +47,7 @@ def ruff_check(
|
|
||||||
*,
|
|
||||||
extra_ruff_args: tuple[str, ...] = (),
|
|
||||||
) -> str:
|
|
||||||
- args = 'ruff', '-', *config.ruff_config(), *extra_ruff_args
|
|
||||||
+ args = 'ruff', 'check', '-', *config.ruff_config(), *extra_ruff_args
|
|
||||||
|
|
||||||
p = Popen(args, stdin=PIPE, stdout=PIPE, stderr=PIPE, universal_newlines=True)
|
|
||||||
stdout, stderr = p.communicate(example.source, timeout=2)
|
|
||||||
@@ -1,68 +0,0 @@
|
|||||||
From 35f93d668c8a4a337d1c9d477fa5732fa439b1b3 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Alex Hall <alex.mojaki@gmail.com>
|
|
||||||
Date: Wed, 27 Sep 2023 17:47:51 +0200
|
|
||||||
Subject: [PATCH 1/2] Fix deprecation warnings in Python 3.12
|
|
||||||
|
|
||||||
---
|
|
||||||
.github/workflows/ci.yml | 2 +-
|
|
||||||
pytest_examples/traceback.py | 21 ++++++++++++++++++++-
|
|
||||||
requirements/testing.txt | 6 ++----
|
|
||||||
3 files changed, 23 insertions(+), 6 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/pytest_examples/traceback.py b/pytest_examples/traceback.py
|
|
||||||
index 94ede45..41880fe 100644
|
|
||||||
--- a/pytest_examples/traceback.py
|
|
||||||
+++ b/pytest_examples/traceback.py
|
|
||||||
@@ -62,7 +62,26 @@ def create_custom_frame(frame: FrameType, example: CodeExample) -> FrameType:
|
|
||||||
ctypes.pythonapi.PyThreadState_Get.restype = P_MEM_TYPE
|
|
||||||
|
|
||||||
f_code = frame.f_code
|
|
||||||
- if sys.version_info >= (3, 11):
|
|
||||||
+ if sys.version_info >= (3, 12):
|
|
||||||
+ code = CodeType(
|
|
||||||
+ f_code.co_argcount,
|
|
||||||
+ f_code.co_posonlyargcount,
|
|
||||||
+ f_code.co_kwonlyargcount,
|
|
||||||
+ f_code.co_nlocals,
|
|
||||||
+ f_code.co_stacksize,
|
|
||||||
+ f_code.co_flags,
|
|
||||||
+ f_code.co_code,
|
|
||||||
+ f_code.co_consts,
|
|
||||||
+ f_code.co_names,
|
|
||||||
+ f_code.co_varnames,
|
|
||||||
+ str(example.path),
|
|
||||||
+ f_code.co_name,
|
|
||||||
+ f_code.co_qualname,
|
|
||||||
+ f_code.co_firstlineno + example.start_line,
|
|
||||||
+ f_code.co_linetable,
|
|
||||||
+ f_code.co_exceptiontable,
|
|
||||||
+ )
|
|
||||||
+ elif sys.version_info >= (3, 11):
|
|
||||||
code = CodeType(
|
|
||||||
f_code.co_argcount,
|
|
||||||
f_code.co_posonlyargcount,
|
|
||||||
diff --git a/requirements/testing.txt b/requirements/testing.txt
|
|
||||||
index 805175d..4b42722 100644
|
|
||||||
--- a/requirements/testing.txt
|
|
||||||
+++ b/requirements/testing.txt
|
|
||||||
@@ -2,10 +2,8 @@
|
|
||||||
# This file is autogenerated by pip-compile with Python 3.10
|
|
||||||
# by the following command:
|
|
||||||
#
|
|
||||||
-# pip-compile --output-file=requirements/testing.txt --resolver=backtracking requirements/testing.in
|
|
||||||
+# pip-compile --output-file=requirements/testing.txt requirements/testing.in
|
|
||||||
#
|
|
||||||
-attrs==22.2.0
|
|
||||||
- # via pytest
|
|
||||||
coverage==7.2.2
|
|
||||||
# via -r requirements/testing.in
|
|
||||||
exceptiongroup==1.1.1
|
|
||||||
@@ -22,7 +20,7 @@ pluggy==1.0.0
|
|
||||||
# via pytest
|
|
||||||
pygments==2.14.0
|
|
||||||
# via rich
|
|
||||||
-pytest==7.2.2
|
|
||||||
+pytest==7.4.2
|
|
||||||
# via pytest-pretty
|
|
||||||
pytest-pretty==1.1.1
|
|
||||||
# via -r requirements/testing.in
|
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
From cade1306918e9984d0d45d5e274d01b734b5fd3a Mon Sep 17 00:00:00 2001
|
|
||||||
From: Anton Zhukharev <ancieg@altlinux.org>
|
|
||||||
Date: Wed, 18 Oct 2023 09:38:34 +0300
|
|
||||||
Subject: [PATCH] update tests for ruff>=0.1.0
|
|
||||||
|
|
||||||
---
|
|
||||||
tests/test_run_examples.py | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/tests/test_run_examples.py b/tests/test_run_examples.py
|
|
||||||
index 1dcfba1..4330d71 100644
|
|
||||||
--- a/tests/test_run_examples.py
|
|
||||||
+++ b/tests/test_run_examples.py
|
|
||||||
@@ -114,7 +114,7 @@ def test_find_run_examples(example: CodeExample, eval_example: EvalExample):
|
|
||||||
' my_file.md:2:8: F401 [*] `sys` imported but unused\n'
|
|
||||||
' my_file.md:3:7: F821 Undefined name `missing`\n'
|
|
||||||
' Found 2 errors.\n'
|
|
||||||
- ' [*] 1 potentially fixable with the --fix option.\n'
|
|
||||||
+ ' [*] 1 fixable with the `--fix` option.\n'
|
|
||||||
'=== short test summary info ===\n'
|
|
||||||
) in output
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user