@@ -2545,7 +2545,7 @@ def pools(
25452545 ) -> list [clusterlib .PoolCreationOutput ]:
25462546 """Create pools for testing vote delegation scenarios."""
25472547 temp_template = common .get_test_id (cluster )
2548- num_pools = 3
2548+ num_pools = 4
25492549
25502550 # Create pool owners
25512551 pool_owners = common .get_pool_users (
@@ -2589,30 +2589,35 @@ def pools(
25892589 )
25902590 )
25912591
2592- # Delegate reward address to a DRep.
2593- # Delegate stake to pools:
2594- # * first reward address is delegated to the first pool,
2595- # * second reward address is delegated to the first pool,
2592+ # Delegate reward address to a pool and a DRep:
2593+ # * first reward address is delegated to the first pool
2594+ # and vote is delegated to the Always Abstain DRep
2595+ # * second reward address is delegated to the first pool
2596+ # and vote is delegated to the Always No Confidence DRep
25962597 # * third reward address is not delegated to any pool
2598+ # and vote is delegated to the Always Abstain DRep
2599+ # * fourth reward address is not delegated to any pool
2600+ # and vote is not delegated to any DRep
25972601
25982602 vote_always_abstain = i % 2 == 0
25992603
2600- if i == 2 :
2601- deleg_vote_cert = cluster .g_stake_address .gen_vote_delegation_cert (
2604+ if i in ( 0 , 1 ) :
2605+ deleg_vote_cert = cluster .g_stake_address .gen_stake_and_vote_delegation_cert (
26022606 addr_name = name_template ,
26032607 stake_vkey_file = reward_addr .vkey_file ,
2608+ cold_vkey_file = pools_out [0 ].cold_key_pair .vkey_file ,
26042609 always_abstain = vote_always_abstain ,
26052610 always_no_confidence = not vote_always_abstain ,
26062611 )
2607- else :
2608- deleg_vote_cert = cluster .g_stake_address .gen_stake_and_vote_delegation_cert (
2612+ delegation_cert_files .append (deleg_vote_cert )
2613+ elif i == 2 :
2614+ deleg_vote_cert = cluster .g_stake_address .gen_vote_delegation_cert (
26092615 addr_name = name_template ,
26102616 stake_vkey_file = reward_addr .vkey_file ,
2611- cold_vkey_file = pools_out [0 ].cold_key_pair .vkey_file ,
26122617 always_abstain = vote_always_abstain ,
26132618 always_no_confidence = not vote_always_abstain ,
26142619 )
2615- delegation_cert_files .append (deleg_vote_cert )
2620+ delegation_cert_files .append (deleg_vote_cert )
26162621
26172622 # Submit all the delegation certificates
26182623 tx_files = clusterlib .TxFiles (
@@ -2643,7 +2648,7 @@ def pools(
26432648
26442649 return pools_out
26452650
2646- def get_subtests (self ) -> tp .Generator [tp .Callable , None , None ]:
2651+ def get_subtests (self ) -> tp .Generator [tp .Callable , None , None ]: # noqa: C901
26472652 """Get pool vote delegation scenarios.
26482653
26492654 The scenarios are executed as subtests in the `test_pool_delegation` test.
@@ -2695,7 +2700,7 @@ def reward_to_other_pool_default_vote(
26952700
26962701 yield reward_to_other_pool_default_vote
26972702
2698- def reward_no_deleg (
2703+ def reward_no_pool_deleg (
26992704 cluster : clusterlib .ClusterLib , pools : list [clusterlib .PoolCreationOutput ]
27002705 ):
27012706 """Check vote delegation if reward address is not delegated to any pool."""
@@ -2706,16 +2711,39 @@ def reward_no_deleg(
27062711 == "drep-alwaysAbstain"
27072712 )
27082713
2709- yield reward_no_deleg
2714+ yield reward_no_pool_deleg
27102715
2711- def reward_no_deleg_default_vote (
2716+ def reward_no_pool_deleg_default_vote (
27122717 cluster : clusterlib .ClusterLib , pools : list [clusterlib .PoolCreationOutput ]
27132718 ):
27142719 result = cluster .g_query .get_stake_pool_default_vote (
27152720 spo_vkey_file = pools [2 ].cold_key_pair .vkey_file
27162721 )
27172722 assert result == "DefaultAbstain"
27182723
2724+ yield reward_no_pool_deleg_default_vote
2725+
2726+ def reward_no_deleg (
2727+ cluster : clusterlib .ClusterLib , pools : list [clusterlib .PoolCreationOutput ]
2728+ ):
2729+ """Check vote delegation if reward address is not delegated to any pool."""
2730+ assert (
2731+ cluster .g_query .get_spo_stake_distribution (
2732+ spo_vkey_file = pools [3 ].cold_key_pair .vkey_file
2733+ )[0 ].vote_delegation
2734+ == ""
2735+ )
2736+
2737+ yield reward_no_deleg
2738+
2739+ def reward_no_deleg_default_vote (
2740+ cluster : clusterlib .ClusterLib , pools : list [clusterlib .PoolCreationOutput ]
2741+ ):
2742+ result = cluster .g_query .get_stake_pool_default_vote (
2743+ spo_vkey_file = pools [3 ].cold_key_pair .vkey_file
2744+ )
2745+ assert result == "DefaultNo"
2746+
27192747 yield reward_no_deleg_default_vote
27202748
27212749 def all_individual_same (
0 commit comments