refactor using self.variable
This commit is contained in:
parent
eab808739c
commit
ea73f4a1d2
|
@ -639,8 +639,12 @@ class AssertionRewriter(ast.NodeVisitor):
|
||||||
.push_format_context() and .pop_format_context() which allows
|
.push_format_context() and .pop_format_context() which allows
|
||||||
to build another %-formatted string while already building one.
|
to build another %-formatted string while already building one.
|
||||||
|
|
||||||
This state is reset on every new assert statement visited and used
|
:variables_overwrite: A dict filled with references to variables
|
||||||
by the other visitors.
|
that change value within an assert. This happens when a variable is
|
||||||
|
reassigned with the walrus operator
|
||||||
|
|
||||||
|
This state, except the variables_overwrite, is reset on every new assert
|
||||||
|
statement visited and used by the other visitors.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(
|
def __init__(
|
||||||
|
@ -974,7 +978,6 @@ class AssertionRewriter(ast.NodeVisitor):
|
||||||
levels = len(boolop.values) - 1
|
levels = len(boolop.values) - 1
|
||||||
self.push_format_context()
|
self.push_format_context()
|
||||||
# Process each operand, short-circuiting if needed.
|
# Process each operand, short-circuiting if needed.
|
||||||
pytest_temp = None
|
|
||||||
for i, v in enumerate(boolop.values):
|
for i, v in enumerate(boolop.values):
|
||||||
if i:
|
if i:
|
||||||
fail_inner: List[ast.stmt] = []
|
fail_inner: List[ast.stmt] = []
|
||||||
|
@ -985,17 +988,14 @@ class AssertionRewriter(ast.NodeVisitor):
|
||||||
if (
|
if (
|
||||||
isinstance(v, ast.Compare)
|
isinstance(v, ast.Compare)
|
||||||
and isinstance(v.left, namedExpr)
|
and isinstance(v.left, namedExpr)
|
||||||
and (
|
and v.left.target.id
|
||||||
v.left.target.id
|
in [
|
||||||
in [
|
ast_expr.id
|
||||||
ast_expr.id
|
for ast_expr in boolop.values[:i]
|
||||||
for ast_expr in boolop.values[:i]
|
if hasattr(ast_expr, "id")
|
||||||
if hasattr(ast_expr, "id")
|
]
|
||||||
]
|
|
||||||
or v.left.target.id == pytest_temp
|
|
||||||
)
|
|
||||||
):
|
):
|
||||||
pytest_temp = util.compose_temp_variable(v.left.target.id)
|
pytest_temp = self.variable()
|
||||||
self.variables_overwrite[v.left.target.id] = pytest_temp
|
self.variables_overwrite[v.left.target.id] = pytest_temp
|
||||||
v.left.target.id = pytest_temp
|
v.left.target.id = pytest_temp
|
||||||
self.push_format_context()
|
self.push_format_context()
|
||||||
|
@ -1092,7 +1092,7 @@ class AssertionRewriter(ast.NodeVisitor):
|
||||||
and isinstance(left_res, ast.Name)
|
and isinstance(left_res, ast.Name)
|
||||||
and next_operand.target.id == left_res.id
|
and next_operand.target.id == left_res.id
|
||||||
):
|
):
|
||||||
next_operand.target.id = util.compose_temp_variable(left_res.id)
|
next_operand.target.id = self.variable()
|
||||||
self.variables_overwrite[left_res.id] = next_operand.target.id
|
self.variables_overwrite[left_res.id] = next_operand.target.id
|
||||||
next_res, next_expl = self.visit(next_operand)
|
next_res, next_expl = self.visit(next_operand)
|
||||||
if isinstance(next_operand, (ast.Compare, ast.BoolOp)):
|
if isinstance(next_operand, (ast.Compare, ast.BoolOp)):
|
||||||
|
|
|
@ -520,7 +520,3 @@ def running_on_ci() -> bool:
|
||||||
"""Check if we're currently running on a CI system."""
|
"""Check if we're currently running on a CI system."""
|
||||||
env_vars = ["CI", "BUILD_NUMBER"]
|
env_vars = ["CI", "BUILD_NUMBER"]
|
||||||
return any(var in os.environ for var in env_vars)
|
return any(var in os.environ for var in env_vars)
|
||||||
|
|
||||||
|
|
||||||
def compose_temp_variable(original_variable: str) -> str:
|
|
||||||
return f"pytest_{original_variable}_temp"
|
|
||||||
|
|
Loading…
Reference in New Issue