Skip to content

Commit 24a022f

Browse files
committed
API output assert with types
1 parent 4710753 commit 24a022f

File tree

2 files changed

+16
-5
lines changed

2 files changed

+16
-5
lines changed

Diff for: slither/analyses/data_dependency/data_dependency.py

+4-2
Original file line numberDiff line numberDiff line change
@@ -293,7 +293,7 @@ def get_all_dependencies_ssa(
293293
return context.context[KEY_SSA]
294294

295295

296-
def get_must_depends_on(variable: SUPPORTED_TYPES) -> SUPPORTED_TYPES | None:
296+
def get_must_depends_on(variable: SUPPORTED_TYPES) -> List:
297297
"""
298298
Return must dependency of a variable if exist otherwise return None.
299299
@@ -305,7 +305,8 @@ def get_must_depends_on(variable: SUPPORTED_TYPES) -> SUPPORTED_TYPES | None:
305305
return []
306306
return [list(must_dependencies)[0]]
307307

308-
def compute_must_dependencies(v:SUPPORTED_TYPES) -> Set[Variable]:
308+
309+
def compute_must_dependencies(v: SUPPORTED_TYPES) -> Set[Variable]:
309310
if isinstance(v, (SolidityVariableComposed, Constant)) or (
310311
v.function.visibility in ["public", "external"] and v in v.function.parameters
311312
):
@@ -359,6 +360,7 @@ def compute_must_dependencies(v:SUPPORTED_TYPES) -> Set[Variable]:
359360
must_dependencies = must_dependencies.union(result)
360361
return must_dependencies
361362

363+
362364
# endregion
363365
###################################################################################
364366
###################################################################################

Diff for: tests/unit/core/test_must_depend_on.py

+12-3
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,23 @@
11
from pathlib import Path
22
from slither import Slither
3-
from slither.analyses.data_dependency.data_dependency import (
4-
get_must_depends_on
3+
from slither.analyses.data_dependency.data_dependency import get_must_depends_on
4+
from slither.core.variables.variable import Variable
5+
from slither.core.declarations import (
6+
SolidityVariable,
7+
)
8+
from typing import Union
9+
from slither.slithir.variables import (
10+
Constant,
511
)
612

713
TEST_DATA_DIR = Path(__file__).resolve().parent / "test_data"
14+
SUPPORTED_TYPES = Union[Variable, SolidityVariable, Constant]
15+
816

917
def test_must_depend_on_returns(solc_binary_path):
1018
solc_path = solc_binary_path("0.8.19")
1119
file = Path(TEST_DATA_DIR, "must_depend_on.sol").as_posix()
1220
slither_obj = Slither(file, solc=solc_path)
1321
result = get_must_depends_on(slither_obj.contracts[1].functions[2].parameters[0])
14-
assert isinstance(result, list) and len(result) <= 1
22+
assert isinstance(result, list)
23+
assert len(result) == 0 or (len(result) == 1 and result[0] in SUPPORTED_TYPES)

0 commit comments

Comments
 (0)