1313from  cardano_node_tests .tests  import  common 
1414from  cardano_node_tests .utils  import  cluster_nodes 
1515from  cardano_node_tests .utils  import  configuration 
16+ from  cardano_node_tests .utils  import  dbsync_queries 
1617from  cardano_node_tests .utils  import  dbsync_service_manager  as  db_sync 
1718from  cardano_node_tests .utils  import  dbsync_utils 
1819from  cardano_node_tests .utils  import  helpers 
@@ -143,7 +144,6 @@ def basic_tx_out(
143144            """Test `tx_out` option.""" 
144145            db_config  =  db_sync_manager .get_config_builder ()
145146
146-             # Test tx_out : enable 
147147            db_sync_manager .restart_with_config (
148148                custom_config = db_config .with_tx_out (
149149                    value = db_sync .TxOutMode .ENABLE , force_tx_in = False , use_address_table = False 
@@ -158,7 +158,6 @@ def basic_tx_out(
158158                }
159159            )
160160
161-             # Test tx_out : disable 
162161            db_sync_manager .restart_with_config (
163162                custom_config = db_config .with_tx_out (
164163                    value = db_sync .TxOutMode .DISABLE , force_tx_in = True , use_address_table = True 
@@ -177,6 +176,79 @@ def basic_tx_out(
177176
178177        yield  basic_tx_out 
179178
179+         def  governance (
180+             db_sync_manager : db_sync .DBSyncManager ,
181+         ):
182+             """Test `governance` option.""" 
183+             db_config  =  db_sync_manager .get_config_builder ()
184+ 
185+             db_sync_manager .restart_with_config (
186+                 custom_config = db_config .with_governance (value = db_sync .SettingState .ENABLE )
187+             )
188+ 
189+             # Off-chain data is inserted into the DB a few minutes after the restart of db-sync 
190+             def  _query_func ():
191+                 off_chain_vote_data  =  next (iter (dbsync_queries .query_off_chain_vote_data ()), None )
192+                 if  off_chain_vote_data  is  None :
193+                     msg  =  "No off-chain vota data record found in db-sync database" 
194+                     raise  dbsync_utils .DbSyncNoResponseError (msg )
195+                 return  off_chain_vote_data 
196+ 
197+             dbsync_utils .retry_query (query_func = _query_func , timeout = 360 )
198+ 
199+             check_dbsync_state (
200+                 expected_state = {
201+                     db_sync .Table .COMMITTEE_DE_REGISTRATION : TableCondition .NOT_EMPTY ,
202+                     db_sync .Table .COMMITTEE_MEMBER : TableCondition .NOT_EMPTY ,
203+                     db_sync .Table .COMMITTEE_REGISTRATION : TableCondition .NOT_EMPTY ,
204+                     db_sync .Table .COMMITTEE : TableCondition .NOT_EMPTY ,
205+                     db_sync .Table .CONSTITUTION : TableCondition .NOT_EMPTY ,
206+                     db_sync .Table .DELEGATION_VOTE : TableCondition .NOT_EMPTY ,
207+                     db_sync .Table .DREP_DISTR : TableCondition .NOT_EMPTY ,
208+                     db_sync .Table .DREP_REGISTRATION : TableCondition .NOT_EMPTY ,
209+                     db_sync .Table .EPOCH_STATE : TableCondition .NOT_EMPTY ,
210+                     db_sync .Table .GOV_ACTION_PROPOSAL : TableCondition .NOT_EMPTY ,
211+                     db_sync .Table .OFF_CHAIN_VOTE_DATA : TableCondition .NOT_EMPTY ,
212+                     db_sync .Table .OFF_CHAIN_VOTE_DREP_DATA : TableCondition .NOT_EMPTY ,
213+                     db_sync .Table .OFF_CHAIN_VOTE_EXTERNAL_UPDATE : TableCondition .NOT_EMPTY ,
214+                     db_sync .Table .OFF_CHAIN_VOTE_FETCH_ERROR : TableCondition .NOT_EMPTY ,
215+                     db_sync .Table .OFF_CHAIN_VOTE_GOV_ACTION_DATA : TableCondition .NOT_EMPTY ,
216+                     db_sync .Table .OFF_CHAIN_VOTE_REFERENCE : TableCondition .NOT_EMPTY ,
217+                     db_sync .Table .VOTING_ANCHOR : TableCondition .NOT_EMPTY ,
218+                     db_sync .Table .VOTING_PROCEDURE : TableCondition .NOT_EMPTY ,
219+                     db_sync .Table .TREASURY_WITHDRAWAL : TableCondition .NOT_EMPTY ,
220+                 }
221+             )
222+ 
223+             db_sync_manager .restart_with_config (
224+                 custom_config = db_config .with_governance (value = db_sync .SettingState .DISABLE )
225+             )
226+             check_dbsync_state (
227+                 expected_state = {
228+                     db_sync .Table .COMMITTEE_DE_REGISTRATION : TableCondition .EMPTY ,
229+                     db_sync .Table .COMMITTEE_MEMBER : TableCondition .EMPTY ,
230+                     db_sync .Table .COMMITTEE_REGISTRATION : TableCondition .EMPTY ,
231+                     db_sync .Table .COMMITTEE : TableCondition .EMPTY ,
232+                     db_sync .Table .CONSTITUTION : TableCondition .EMPTY ,
233+                     db_sync .Table .DELEGATION_VOTE : TableCondition .EMPTY ,
234+                     db_sync .Table .DREP_DISTR : TableCondition .EMPTY ,
235+                     db_sync .Table .DREP_REGISTRATION : TableCondition .EMPTY ,
236+                     db_sync .Table .EPOCH_STATE : TableCondition .EMPTY ,
237+                     db_sync .Table .GOV_ACTION_PROPOSAL : TableCondition .EMPTY ,
238+                     db_sync .Table .OFF_CHAIN_VOTE_DATA : TableCondition .EMPTY ,
239+                     db_sync .Table .OFF_CHAIN_VOTE_DREP_DATA : TableCondition .EMPTY ,
240+                     db_sync .Table .OFF_CHAIN_VOTE_EXTERNAL_UPDATE : TableCondition .EMPTY ,
241+                     db_sync .Table .OFF_CHAIN_VOTE_FETCH_ERROR : TableCondition .EMPTY ,
242+                     db_sync .Table .OFF_CHAIN_VOTE_GOV_ACTION_DATA : TableCondition .EMPTY ,
243+                     db_sync .Table .OFF_CHAIN_VOTE_REFERENCE : TableCondition .EMPTY ,
244+                     db_sync .Table .VOTING_ANCHOR : TableCondition .EMPTY ,
245+                     db_sync .Table .VOTING_PROCEDURE : TableCondition .EMPTY ,
246+                     db_sync .Table .TREASURY_WITHDRAWAL : TableCondition .EMPTY ,
247+                 }
248+             )
249+ 
250+         yield  governance 
251+ 
180252        def  tx_cbor_value_enable (
181253            db_sync_manager : db_sync .DBSyncManager ,
182254        ):
0 commit comments