Skip to content

Commit 3c0192b

Browse files
committed
TST: Add a basic test and reset when reporting
1 parent c7be6c5 commit 3c0192b

File tree

2 files changed

+38
-0
lines changed

2 files changed

+38
-0
lines changed

pytest_doctestplus/plugin.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -800,6 +800,8 @@ def write_modified_file(fname, new_fname, changes):
800800
def pytest_terminal_summary(terminalreporter, exitstatus, config):
801801
changesets = DebugRunnerPlus._changesets
802802
diff_mode = DebugRunnerPlus._generate_diff
803+
DebugRunnerPlus._changesets = defaultdict(lambda: [])
804+
DebugRunnerPlus._generate_diff = None
803805
all_bad_tests = []
804806
if not diff_mode:
805807
return # we do not report or apply diffs

tests/test_doctestplus.py

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1348,3 +1348,39 @@ def f():
13481348
""", "utf-8")
13491349
reprec = testdir.inline_run(str(testdir), "--doctest-plus")
13501350
reprec.assertoutcome(failed=0, passed=0)
1351+
1352+
1353+
def test_generate_diff_basic(testdir, capsys):
1354+
p = testdir.makepyfile("""
1355+
def f():
1356+
'''
1357+
>>> print(2)
1358+
4
1359+
>>> print(3)
1360+
5
1361+
'''
1362+
pass
1363+
""")
1364+
with open(p) as f:
1365+
original = f.read()
1366+
1367+
testdir.inline_run(p, "--doctest-plus-generate-diff")
1368+
diff = dedent("""
1369+
>>> print(2)
1370+
- 4
1371+
+ 2
1372+
>>> print(3)
1373+
- 5
1374+
+ 3
1375+
""")
1376+
captured = capsys.readouterr()
1377+
assert diff in captured.out
1378+
1379+
testdir.inline_run(p, "--doctest-plus-generate-diff=overwrite")
1380+
captured = capsys.readouterr()
1381+
assert "Applied fix to the following files" in captured.out
1382+
1383+
with open(p) as f:
1384+
result = f.read()
1385+
1386+
assert result == original.replace("4", "2").replace("5", "3")

0 commit comments

Comments
 (0)