Skip to content

Commit a760cad

Browse files
authored
Merge pull request #587 from lidofinance/fix/reorder-test-items
fix: reorder test items
2 parents 4b8fd47 + 8c69d2d commit a760cad

File tree

1 file changed

+41
-29
lines changed

1 file changed

+41
-29
lines changed

tests/test_2026_01_20.py

Lines changed: 41 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,7 @@ def test_vote(helpers, accounts, ldo_holder, vote_ids_from_env, stranger, dual_g
172172
dual_governance = interface.DualGovernance(DUAL_GOVERNANCE)
173173
easy_track = interface.EasyTrack(EASYTRACK)
174174

175+
acl = interface.ACL(ACL)
175176
lido = interface.Lido(LIDO)
176177
vault_hub = interface.VaultHub(VAULT_HUB)
177178
operator_grid = interface.OperatorGrid(OPERATOR_GRID)
@@ -180,6 +181,8 @@ def test_vote(helpers, accounts, ldo_holder, vote_ids_from_env, stranger, dual_g
180181
staking_router = interface.StakingRouter(STAKING_ROUTER)
181182
cs_hash_consensus = interface.CSHashConsensus(CS_HASH_CONSENSUS)
182183
vaults_adapter = interface.IVaultsAdapter(NEW_VAULTS_ADAPTER)
184+
predeposit_guarantee_proxy = interface.OssifiableProxy(PREDEPOSIT_GUARANTEE)
185+
predeposit_guarantee = interface.PredepositGuarantee(PREDEPOSIT_GUARANTEE)
183186

184187
registry_role = web3.keccak(text=OPERATOR_GRID_REGISTRY_ROLE)
185188
validator_exit_role = web3.keccak(text=VAULT_HUB_VALIDATOR_EXIT_ROLE)
@@ -441,6 +444,7 @@ def test_vote(helpers, accounts, ldo_holder, vote_ids_from_env, stranger, dual_g
441444
# ================== DG before proposal executed checks ===================
442445
# =========================================================================
443446

447+
# ======================== EasyTrack items ========================
444448
# Step 1.1. Check old VaultsAdapter has REGISTRY_ROLE on OperatorGrid
445449
assert operator_grid.hasRole(registry_role, OLD_VAULTS_ADAPTER), "Old VaultsAdapter should have REGISTRY_ROLE on OperatorGrid before upgrade"
446450

@@ -462,7 +466,23 @@ def test_vote(helpers, accounts, ldo_holder, vote_ids_from_env, stranger, dual_g
462466
if NEW_VAULTS_ADAPTER != OLD_VAULTS_ADAPTER:
463467
assert not vault_hub.hasRole(bad_debt_master_role, NEW_VAULTS_ADAPTER), "New VaultsAdapter should not have BAD_DEBT_MASTER_ROLE on VaultHub before upgrade"
464468

465-
# Step 1.7. Check CSM module parameters before upgrade
469+
# ======================== PDG items ========================
470+
# Step 1.7. Check PredepositGuarantee implementation before upgrade
471+
predeposit_guarantee_impl_before = str(predeposit_guarantee_proxy.proxy__getImplementation()).lower()
472+
assert predeposit_guarantee_impl_before != PREDEPOSIT_GUARANTEE_NEW_IMPL.lower(), "PredepositGuarantee should have old implementation before upgrade"
473+
474+
# Step 1.8-1.10. Check PredepositGuarantee is paused before upgrade
475+
assert predeposit_guarantee.isPaused(), "PredepositGuarantee should be paused before upgrade"
476+
assert not predeposit_guarantee.hasRole(resume_role, AGENT), "Agent should not have RESUME_ROLE on PredepositGuarantee before upgrade"
477+
478+
# ======================== Lido items ========================
479+
# Step 1.11-1.13. Check max external ratio before upgrade
480+
max_external_ratio_before = lido.getMaxExternalRatioBP()
481+
assert max_external_ratio_before == 300, "Lido max external ratio should be 3% (300 BP) before upgrade"
482+
assert not acl.hasPermission(AGENT, LIDO, staking_control_role), "Agent should not have STAKING_CONTROL_ROLE on Lido before upgrade"
483+
484+
# ======================== CSM items ========================
485+
# Step 1.14. Check CSM module parameters before upgrade
466486
csm_module_before = staking_router.getStakingModule(CSM_MODULE_ID)
467487
assert csm_module_before["stakeShareLimit"] == CSM_MODULE_OLD_TARGET_SHARE_BP, "CSM module should have old stake share limit before upgrade"
468488
assert csm_module_before["priorityExitShareThreshold"] == CSM_MODULE_OLD_PRIORITY_EXIT_THRESHOLD_BP, "CSM module should have old priority exit threshold before upgrade"
@@ -471,27 +491,14 @@ def test_vote(helpers, accounts, ldo_holder, vote_ids_from_env, stranger, dual_g
471491
assert csm_module_before["maxDepositsPerBlock"] == CSM_MODULE_MAX_DEPOSITS_PER_BLOCK, "CSM max deposits per block should be unchanged before upgrade"
472492
assert csm_module_before["minDepositBlockDistance"] == CSM_MODULE_MIN_DEPOSIT_BLOCK_DISTANCE, "CSM min deposit block distance should be unchanged before upgrade"
473493

474-
# Step 1.8. Check TwoPhaseFrameConfigUpdate does not have MANAGE_FRAME_CONFIG_ROLE on CS HashConsensus before upgrade
494+
# Step 1.15. Check TwoPhaseFrameConfigUpdate does not have MANAGE_FRAME_CONFIG_ROLE on CS HashConsensus before upgrade
475495
assert not cs_hash_consensus.hasRole(manage_frame_config_role, TWO_PHASE_FRAME_CONFIG_UPDATE), "TwoPhaseFrameConfigUpdate should not have MANAGE_FRAME_CONFIG_ROLE on CS HashConsensus before upgrade"
476496

477497
# Test that executeOffsetPhase reverts with permission denied error before enactment
478498
chain.snapshot()
479499
two_phase_frame_config_update_revert_no_permission_test(stranger)
480500
chain.revert()
481501

482-
# Step 1.9. Check PredepositGuarantee implementation before upgrade
483-
predeposit_guarantee_proxy = interface.OssifiableProxy(PREDEPOSIT_GUARANTEE)
484-
predeposit_guarantee_impl_before = str(predeposit_guarantee_proxy.proxy__getImplementation()).lower()
485-
assert predeposit_guarantee_impl_before != PREDEPOSIT_GUARANTEE_NEW_IMPL.lower(), "PredepositGuarantee should have old implementation before upgrade"
486-
487-
# Step 1.10-1.12. Check PredepositGuarantee is paused before upgrade
488-
predeposit_guarantee = interface.PredepositGuarantee(PREDEPOSIT_GUARANTEE)
489-
assert predeposit_guarantee.isPaused(), "PredepositGuarantee should be paused before upgrade"
490-
491-
# Step 1.13. Check max external ratio before upgrade
492-
max_external_ratio_before = lido.getMaxExternalRatioBP()
493-
assert max_external_ratio_before == 300, "Lido max external ratio should be 3% (300 BP) before upgrade"
494-
495502
if details["status"] == PROPOSAL_STATUS["submitted"]:
496503
chain.sleep(timelock.getAfterSubmitDelay() + 1)
497504
dual_governance.scheduleProposal(EXPECTED_DG_PROPOSAL_ID, {"from": stranger})
@@ -596,7 +603,7 @@ def test_vote(helpers, accounts, ldo_holder, vote_ids_from_env, stranger, dual_g
596603
emitted_by=predeposit_guarantee,
597604
)
598605

599-
# ======================== External share items ========================
606+
# ======================== Lido items ========================
600607
# 1.11. Validate grant STAKING_CONTROL_ROLE on Lido to Agent
601608
validate_aragon_grant_permission_event(
602609
dg_events[10],
@@ -650,6 +657,7 @@ def test_vote(helpers, accounts, ldo_holder, vote_ids_from_env, stranger, dual_g
650657
# ==================== After DG proposal executed checks ==================
651658
# =========================================================================
652659

660+
# ======================== EasyTrack items ========================
653661
# Step 1.1. Check old VaultsAdapter does not have REGISTRY_ROLE on OperatorGrid
654662
assert not operator_grid.hasRole(registry_role, OLD_VAULTS_ADAPTER), "Old VaultsAdapter should not have REGISTRY_ROLE on OperatorGrid after upgrade"
655663

@@ -668,7 +676,21 @@ def test_vote(helpers, accounts, ldo_holder, vote_ids_from_env, stranger, dual_g
668676
# Step 1.6. Check new VaultsAdapter has BAD_DEBT_MASTER_ROLE on VaultHub
669677
assert vault_hub.hasRole(bad_debt_master_role, NEW_VAULTS_ADAPTER), "New VaultsAdapter should have BAD_DEBT_MASTER_ROLE on VaultHub after upgrade"
670678

671-
# Step 1.7. Check CSM module parameters after upgrade
679+
# ======================== PDG items ========================
680+
# Step 1.7. Check PredepositGuarantee implementation after upgrade
681+
assert str(predeposit_guarantee_proxy.proxy__getImplementation()).lower() == PREDEPOSIT_GUARANTEE_NEW_IMPL.lower(), "PredepositGuarantee should have new implementation after upgrade"
682+
683+
# Step 1.8-1.10. Check PredepositGuarantee is unpaused after upgrade and Agent does not have RESUME_ROLE
684+
assert not predeposit_guarantee.isPaused(), "PredepositGuarantee should be unpaused after upgrade"
685+
assert not predeposit_guarantee.hasRole(resume_role, AGENT), "Agent should not have RESUME_ROLE on PredepositGuarantee after upgrade"
686+
687+
# ======================== Lido items ========================
688+
# Step 1.11-1.13. Check max external ratio after upgrade and Agent does not have STAKING_CONTROL_ROLE
689+
assert lido.getMaxExternalRatioBP() == MAX_EXTERNAL_RATIO_BP, "Lido max external ratio should be 30% after upgrade"
690+
assert not acl.hasPermission(AGENT, LIDO, staking_control_role), "Agent should not have STAKING_CONTROL_ROLE on Lido after upgrade"
691+
692+
# ======================== CSM items ========================
693+
# Step 1.14. Check CSM module parameters after upgrade
672694
csm_module_after = staking_router.getStakingModule(CSM_MODULE_ID)
673695
assert csm_module_after["stakeShareLimit"] == CSM_MODULE_NEW_TARGET_SHARE_BP, "CSM module should have new stake share limit after upgrade"
674696
assert csm_module_after["priorityExitShareThreshold"] == CSM_MODULE_NEW_PRIORITY_EXIT_THRESHOLD_BP, "CSM module should have new priority exit threshold after upgrade"
@@ -680,20 +702,10 @@ def test_vote(helpers, accounts, ldo_holder, vote_ids_from_env, stranger, dual_g
680702
if key not in changed_fields:
681703
assert csm_module_after[key] == csm_module_before[key], f"CSM module {key} should be unchanged after upgrade"
682704

683-
# Step 1.8. Check TwoPhaseFrameConfigUpdate has MANAGE_FRAME_CONFIG_ROLE on CS HashConsensus after upgrade
705+
# Step 1.15. Check TwoPhaseFrameConfigUpdate has MANAGE_FRAME_CONFIG_ROLE on CS HashConsensus after upgrade
684706
assert cs_hash_consensus.hasRole(manage_frame_config_role, TWO_PHASE_FRAME_CONFIG_UPDATE), "TwoPhaseFrameConfigUpdate should have MANAGE_FRAME_CONFIG_ROLE on CS HashConsensus after upgrade"
685707

686-
# Step 1.9. Check PredepositGuarantee implementation after upgrade
687-
predeposit_guarantee_proxy = interface.OssifiableProxy(PREDEPOSIT_GUARANTEE)
688-
assert str(predeposit_guarantee_proxy.proxy__getImplementation()).lower() == PREDEPOSIT_GUARANTEE_NEW_IMPL.lower(), "PredepositGuarantee should have new implementation after upgrade"
689-
690-
# Step 1.10-1.12. Check PredepositGuarantee is unpaused after upgrade and Agent does not have RESUME_ROLE
691-
predeposit_guarantee = interface.PredepositGuarantee(PREDEPOSIT_GUARANTEE)
692-
assert not predeposit_guarantee.isPaused(), "PredepositGuarantee should be unpaused after upgrade"
693-
assert not predeposit_guarantee.hasRole(resume_role, AGENT), "Agent should not have RESUME_ROLE on PredepositGuarantee after upgrade"
694-
695-
# Step 1.13. Check max external ratio after upgrade
696-
assert lido.getMaxExternalRatioBP() == MAX_EXTERNAL_RATIO_BP, "Lido max external ratio should be 30% after upgrade"
708+
697709

698710
# Scenario tests for Easy Track factories behavior after the vote ----------------------------------------------------
699711
# --------------------------------------------------------------------------------------------------------------------

0 commit comments

Comments
 (0)