From b9f500e7bb2e09f281d1300c27fed0fcebae9496 Mon Sep 17 00:00:00 2001 From: Juliya Smith Date: Tue, 26 Sep 2023 12:50:51 -0500 Subject: [PATCH] test: fix tests --- src/ape/managers/config.py | 24 +++++++++++++++++------- tests/functional/test_config.py | 2 +- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/src/ape/managers/config.py b/src/ape/managers/config.py index 003a7d0d0d..c2102d43ca 100644 --- a/src/ape/managers/config.py +++ b/src/ape/managers/config.py @@ -33,9 +33,11 @@ class DeploymentConfigCollection(BaseModel): @root_validator(pre=True) def validate_deployments(cls, data: Dict): - valid_ecosystems = data.pop("valid_ecosystems", {}) - valid_networks = data.pop("valid_networks", {}) - for ecosystem_name, networks in data.items(): + root_data = data.get("__root__", data) + valid_ecosystems = root_data.pop("valid_ecosystems", {}) + valid_networks = root_data.pop("valid_networks", {}) + valid_data = {} + for ecosystem_name, networks in root_data.items(): if ecosystem_name not in valid_ecosystems: logger.warning(f"Invalid ecosystem '{ecosystem_name}' in deployments config.") continue @@ -46,21 +48,29 @@ def validate_deployments(cls, data: Dict): logger.warning(f"Invalid network '{network_name}' in deployments config.") continue + valid_deployments = [] for deployment in [d for d in contract_deployments]: - address = deployment.get("address", None) - if "address" not in deployment: + if not (address := deployment.get("address")): logger.warning( f"Missing 'address' field in deployment " f"(ecosystem={ecosystem_name}, network={network_name})" ) continue + valid_deployment = {**deployment} try: - deployment["address"] = ecosystem.decode_address(address) + valid_deployment["address"] = ecosystem.decode_address(address) except ValueError as err: logger.warning(str(err)) - return data + valid_deployments.append(valid_deployment) + + valid_data[ecosystem_name] = { + **valid_data.get(ecosystem_name, {}), + network_name: valid_deployments, + } + + return {"__root__": valid_data} class ConfigManager(BaseInterfaceModel): diff --git a/tests/functional/test_config.py b/tests/functional/test_config.py index 54f8d4d90f..d3648c9268 100644 --- a/tests/functional/test_config.py +++ b/tests/functional/test_config.py @@ -18,7 +18,7 @@ def test_integer_deployment_addresses(networks): } config = DeploymentConfigCollection(__root__=data) assert ( - config.root["ethereum"]["local"][0]["address"] + config.__root__["ethereum"]["local"][0]["address"] == "0x0c25212c557d00024b7Ca3df3238683A35541354" )