1414from  cardano_node_tests .utils  import  cluster_nodes 
1515from  cardano_node_tests .utils  import  configuration 
1616from  cardano_node_tests .utils  import  dbsync_service_manager  as  db_sync 
17+ from  cardano_node_tests .utils  import  dbsync_queries 
1718from  cardano_node_tests .utils  import  dbsync_utils 
1819from  cardano_node_tests .utils  import  helpers 
1920
@@ -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,84 @@ 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 (
187+                     value = db_sync .SettingState .ENABLE 
188+                 )
189+             )
190+             # Off-chain vote data is inserted into the database a few minutes after the restart of db-sync 
191+             def  _query_func ():
192+                 off_chain_vote_data  =  next (
193+                     iter (dbsync_queries .query_off_chain_vote_data ()), None 
194+                 )
195+                 if  off_chain_vote_data  is  None :
196+                     msg  =  f"no any off-chain vota data record found id db-sync database" 
197+                     raise  dbsync_utils .DbSyncNoResponseError (msg )
198+                 return  off_chain_vote_data 
199+             dbsync_utils .retry_query (query_func = _query_func , timeout = 360 )
200+             
201+             check_dbsync_state (
202+                 expected_state = {
203+                     db_sync .Table .COMMITTEE_DE_REGISTRATION : TableCondition .NOT_EMPTY ,
204+                     db_sync .Table .COMMITTEE_MEMBER : TableCondition .NOT_EMPTY ,
205+                     db_sync .Table .COMMITTEE_REGISTRATION : TableCondition .NOT_EMPTY ,
206+                     db_sync .Table .COMMITTEE : TableCondition .NOT_EMPTY ,
207+                     db_sync .Table .CONSTITUTION : TableCondition .NOT_EMPTY ,
208+                     db_sync .Table .DELEGATION_VOTE : TableCondition .NOT_EMPTY ,
209+                     db_sync .Table .DREP_DISTR : TableCondition .NOT_EMPTY ,
210+                     db_sync .Table .DREP_REGISTRATION : TableCondition .NOT_EMPTY ,
211+                     db_sync .Table .EPOCH_STATE : TableCondition .NOT_EMPTY ,
212+                     db_sync .Table .GOV_ACTION_PROPOSAL : TableCondition .NOT_EMPTY ,
213+                     db_sync .Table .OFF_CHAIN_VOTE_DATA : TableCondition .NOT_EMPTY ,
214+                     db_sync .Table .OFF_CHAIN_VOTE_DREP_DATA : TableCondition .NOT_EMPTY ,
215+                     db_sync .Table .OFF_CHAIN_VOTE_EXTERNAL_UPDATE : TableCondition .NOT_EMPTY ,
216+                     db_sync .Table .OFF_CHAIN_VOTE_FETCH_ERROR : TableCondition .NOT_EMPTY ,
217+                     db_sync .Table .OFF_CHAIN_VOTE_GOV_ACTION_DATA : TableCondition .NOT_EMPTY ,
218+                     db_sync .Table .OFF_CHAIN_VOTE_REFERENCE : TableCondition .NOT_EMPTY ,
219+                     db_sync .Table .VOTING_ANCHOR : TableCondition .NOT_EMPTY ,
220+                     db_sync .Table .VOTING_PROCEDURE : TableCondition .NOT_EMPTY ,
221+                     db_sync .Table .TREASURY_WITHDRAWAL : TableCondition .NOT_EMPTY ,
222+                 }
223+             )
224+ 
225+             # Test governance : disable 
226+             db_sync_manager .restart_with_config (
227+                 custom_config = db_config .with_governance (
228+                     value = db_sync .SettingState .DISABLE 
229+                 )
230+             )
231+             check_dbsync_state (
232+                 expected_state = {
233+                     db_sync .Table .COMMITTEE_DE_REGISTRATION : TableCondition .EMPTY ,
234+                     db_sync .Table .COMMITTEE_MEMBER : TableCondition .EMPTY ,
235+                     db_sync .Table .COMMITTEE_REGISTRATION : TableCondition .EMPTY ,
236+                     db_sync .Table .COMMITTEE : TableCondition .EMPTY ,
237+                     db_sync .Table .CONSTITUTION : TableCondition .EMPTY ,
238+                     db_sync .Table .DELEGATION_VOTE : TableCondition .EMPTY ,
239+                     db_sync .Table .DREP_DISTR : TableCondition .EMPTY ,
240+                     db_sync .Table .DREP_REGISTRATION : TableCondition .EMPTY ,
241+                     db_sync .Table .EPOCH_STATE : TableCondition .EMPTY ,
242+                     db_sync .Table .GOV_ACTION_PROPOSAL : TableCondition .EMPTY ,
243+                     db_sync .Table .OFF_CHAIN_VOTE_DATA : TableCondition .EMPTY , 
244+                     db_sync .Table .OFF_CHAIN_VOTE_DREP_DATA : TableCondition .EMPTY ,
245+                     db_sync .Table .OFF_CHAIN_VOTE_EXTERNAL_UPDATE : TableCondition .EMPTY ,
246+                     db_sync .Table .OFF_CHAIN_VOTE_FETCH_ERROR : TableCondition .EMPTY ,
247+                     db_sync .Table .OFF_CHAIN_VOTE_GOV_ACTION_DATA : TableCondition .EMPTY ,
248+                     db_sync .Table .OFF_CHAIN_VOTE_REFERENCE : TableCondition .EMPTY ,
249+                     db_sync .Table .VOTING_ANCHOR : TableCondition .EMPTY ,
250+                     db_sync .Table .VOTING_PROCEDURE : TableCondition .EMPTY ,
251+                     db_sync .Table .TREASURY_WITHDRAWAL : TableCondition .EMPTY ,
252+                 }
253+             )
254+ 
255+         yield  governance 
256+ 
180257        def  tx_cbor_value_enable (
181258            db_sync_manager : db_sync .DBSyncManager ,
182259        ):
0 commit comments