Skip to content

Commit

Permalink
fix for fixture scope
Browse files Browse the repository at this point in the history
  • Loading branch information
charles-cooper committed Jan 31, 2025
1 parent b4bfa33 commit 684a7c9
Showing 1 changed file with 14 additions and 6 deletions.
20 changes: 14 additions & 6 deletions tests/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -235,20 +235,28 @@ def compiler_settings(optimize, experimental_codegen, evm_version, debug):
return settings


@pytest.fixture
def is_hevm_marker(request):
return request.node.get_closest_marker("hevm") is not None
_HEVM_MARKER = None


@pytest.fixture
# request.node.get_closest_marker does something different if fixture is module-scoped,
# workaround with a global variable
@pytest.fixture(autouse=True)
def hevm_marker(request):
global _HEVM_MARKER

_HEVM_MARKER = request.node.get_closest_marker("hevm")


@pytest.fixture(scope="module")
def get_contract(env, optimize, output_formats, compiler_settings, hevm, request):
def fn(source_code, *args, **kwargs):
if "override_opt_level" in kwargs:
kwargs["compiler_settings"] = Settings(
**dict(compiler_settings.__dict__, optimize=kwargs.pop("override_opt_level"))
)

if hevm and (mark := request.node.get_closest_marker("hevm")) is not None:
global _HEVM_MARKER
if hevm and _HEVM_MARKER is not None:
settings1 = copy.copy(compiler_settings)
settings1.experimental_codegen = False
settings1.optimize = OptimizationLevel.NONE
Expand All @@ -268,7 +276,7 @@ def fn(source_code, *args, **kwargs):
settings=settings2,
input_bundle=kwargs.get("input_bundle"),
)["bytecode_runtime"]
tests.hevm.hevm_check_bytecode(bytecode1, bytecode2, verbose=True, addl_args=mark.args)
tests.hevm.hevm_check_bytecode(bytecode1, bytecode2, addl_args=_HEVM_MARKER.args)

return env.deploy_source(source_code, output_formats, *args, **kwargs)

Expand Down

0 comments on commit 684a7c9

Please sign in to comment.