Skip to content

Commit 6ee3cc3

Browse files
Update monkeypatch to fix (many) line numbers being off due to decorators (#86)
* Improve jurigged line number monkeypatch * Increment version
1 parent 3fb392c commit 6ee3cc3

File tree

2 files changed

+4
-8
lines changed

2 files changed

+4
-8
lines changed

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ line-length = 98
99

1010
[tool.poetry]
1111
name = "pytest-hot-reloading"
12-
version = "0.1.0-alpha.17"
12+
version = "0.1.0-alpha.18"
1313
description = ""
1414
authors = ["James Hutchison <jamesghutchison@proton.me>"]
1515
readme = "README.md"

pytest_hot_reloading/plugin.py

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -256,15 +256,11 @@ def apply_assertion_rewrite(self, ast_func, glb):
256256
return ast_func
257257

258258
def stash(self, lineno=1, col_offset=0):
259-
# monkeypatch: There's an off-by-one bug coming from somewhere in jurigged.
260-
# This affects replaced functions. When line numbers are wrong
261-
# the debugger and inspection logic doesn't work as expected.
259+
# monkeypatch to fix line numbers from decorators: See https://github.com/breuleux/jurigged/issues/29
262260
if not isinstance(self.parent, OrigFunctionDefinition):
263261
co = self.get_object()
264-
if co and (delta := lineno - co.co_firstlineno):
265-
delta -= 1 # fix off-by-one
266-
if delta != 0:
267-
self.recode(jurigged_utils.shift_lineno(co, delta), use_cache=False)
262+
if co and (delta := lineno - self.node.extent.lineno):
263+
self.recode(jurigged_utils.shift_lineno(co, delta), use_cache=False)
268264

269265
return super(OrigFunctionDefinition, self).stash(lineno, col_offset)
270266

0 commit comments

Comments
 (0)