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
@@ -127,7 +128,7 @@ def db_sync_manager(
127128 manager .restart_with_config ()
128129
129130
130- @pytest .mark .order (- 1 )
131+ @pytest .mark .order (- 10 )
131132class TestDBSyncConfig :
132133 """Tests for DB-Sync Config."""
133134
@@ -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,83 @@ 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+ db_sync_manager .restart_with_config (
226+ custom_config = db_config .with_governance (
227+ value = db_sync .SettingState .DISABLE
228+ )
229+ )
230+ check_dbsync_state (
231+ expected_state = {
232+ db_sync .Table .COMMITTEE_DE_REGISTRATION : TableCondition .EMPTY ,
233+ db_sync .Table .COMMITTEE_MEMBER : TableCondition .EMPTY ,
234+ db_sync .Table .COMMITTEE_REGISTRATION : TableCondition .EMPTY ,
235+ db_sync .Table .COMMITTEE : TableCondition .EMPTY ,
236+ db_sync .Table .CONSTITUTION : TableCondition .EMPTY ,
237+ db_sync .Table .DELEGATION_VOTE : TableCondition .EMPTY ,
238+ db_sync .Table .DREP_DISTR : TableCondition .EMPTY ,
239+ db_sync .Table .DREP_REGISTRATION : TableCondition .EMPTY ,
240+ db_sync .Table .EPOCH_STATE : TableCondition .EMPTY ,
241+ db_sync .Table .GOV_ACTION_PROPOSAL : TableCondition .EMPTY ,
242+ db_sync .Table .OFF_CHAIN_VOTE_DATA : TableCondition .EMPTY ,
243+ db_sync .Table .OFF_CHAIN_VOTE_DREP_DATA : TableCondition .EMPTY ,
244+ db_sync .Table .OFF_CHAIN_VOTE_EXTERNAL_UPDATE : TableCondition .EMPTY ,
245+ db_sync .Table .OFF_CHAIN_VOTE_FETCH_ERROR : TableCondition .EMPTY ,
246+ db_sync .Table .OFF_CHAIN_VOTE_GOV_ACTION_DATA : TableCondition .EMPTY ,
247+ db_sync .Table .OFF_CHAIN_VOTE_REFERENCE : TableCondition .EMPTY ,
248+ db_sync .Table .VOTING_ANCHOR : TableCondition .EMPTY ,
249+ db_sync .Table .VOTING_PROCEDURE : TableCondition .EMPTY ,
250+ db_sync .Table .TREASURY_WITHDRAWAL : TableCondition .EMPTY ,
251+ }
252+ )
253+
254+ yield governance
255+
180256 def tx_cbor_value_enable (
181257 db_sync_manager : db_sync .DBSyncManager ,
182258 ):
0 commit comments