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