|
14 | 14 | from cardano_node_tests.utils import cluster_nodes
|
15 | 15 | from cardano_node_tests.utils import configuration
|
16 | 16 | from cardano_node_tests.utils import dbsync_service_manager as db_sync
|
| 17 | +from cardano_node_tests.utils import dbsync_queries |
17 | 18 | from cardano_node_tests.utils import dbsync_utils
|
18 | 19 | from cardano_node_tests.utils import helpers
|
19 | 20 |
|
@@ -177,6 +178,125 @@ def basic_tx_out(
|
177 | 178 |
|
178 | 179 | yield basic_tx_out
|
179 | 180 |
|
| 181 | + def governance( |
| 182 | + db_sync_manager: db_sync.DBSyncManager, |
| 183 | + ): |
| 184 | + """Test `governance` option.""" |
| 185 | + db_config = db_sync_manager.get_config_builder() |
| 186 | + |
| 187 | + # Test governance : enable |
| 188 | + db_sync_manager.restart_with_config( |
| 189 | + custom_config=db_config.with_governance( |
| 190 | + value=db_sync.SettingState.ENABLE |
| 191 | + ) |
| 192 | + ) |
| 193 | + # Offchain vote data is inserted into database few minutes after start of a cluster |
| 194 | + def _query_func(): |
| 195 | + off_chain_vote_data = next( |
| 196 | + iter(dbsync_queries.query_off_chain_vote_data()), None |
| 197 | + ) |
| 198 | + if off_chain_vote_data is None: |
| 199 | + msg = f"no any off-chain vota data record found id db-sync database" |
| 200 | + raise dbsync_utils.DbSyncNoResponseError(msg) |
| 201 | + return off_chain_vote_data |
| 202 | + # Left temporarirly for debugging purposes |
| 203 | + off_chain_vote_data_content = dbsync_utils.retry_query(query_func=_query_func, timeout=360) |
| 204 | + from IPython import embed; embed() |
| 205 | + |
| 206 | + check_dbsync_state( |
| 207 | + expected_state={ |
| 208 | + db_sync.Table.COMMITTEE_DE_REGISTRATION: TableCondition.EXISTS, |
| 209 | + db_sync.Table.COMMITTEE_DE_REGISTRATION: TableCondition.NOT_EMPTY, |
| 210 | + db_sync.Table.COMMITTEE_MEMBER: TableCondition.EXISTS, |
| 211 | + db_sync.Table.COMMITTEE_MEMBER: TableCondition.NOT_EMPTY, |
| 212 | + db_sync.Table.COMMITTEE_REGISTRATION: TableCondition.EXISTS, |
| 213 | + db_sync.Table.COMMITTEE_REGISTRATION: TableCondition.NOT_EMPTY, |
| 214 | + db_sync.Table.COMMITTEE: TableCondition.EXISTS, |
| 215 | + db_sync.Table.COMMITTEE: TableCondition.NOT_EMPTY, |
| 216 | + db_sync.Table.CONSTITUTION: TableCondition.EXISTS, |
| 217 | + db_sync.Table.CONSTITUTION: TableCondition.NOT_EMPTY, |
| 218 | + db_sync.Table.DELEGATION_VOTE: TableCondition.EXISTS, |
| 219 | + db_sync.Table.DELEGATION_VOTE: TableCondition.NOT_EMPTY, |
| 220 | + db_sync.Table.DREP_DISTR: TableCondition.EXISTS, |
| 221 | + db_sync.Table.DREP_DISTR: TableCondition.NOT_EMPTY, |
| 222 | + db_sync.Table.DREP_REGISTRATION: TableCondition.EXISTS, |
| 223 | + db_sync.Table.DREP_REGISTRATION: TableCondition.NOT_EMPTY, |
| 224 | + db_sync.Table.EPOCH_STATE: TableCondition.EXISTS, |
| 225 | + db_sync.Table.EPOCH_STATE: TableCondition.NOT_EMPTY, |
| 226 | + db_sync.Table.GOV_ACTION_PROPOSAL: TableCondition.EXISTS, |
| 227 | + db_sync.Table.GOV_ACTION_PROPOSAL: TableCondition.NOT_EMPTY, |
| 228 | + db_sync.Table.OFF_CHAIN_VOTE_DATA: TableCondition.EXISTS, |
| 229 | + db_sync.Table.OFF_CHAIN_VOTE_DATA: TableCondition.NOT_EMPTY, |
| 230 | + db_sync.Table.OFF_CHAIN_VOTE_DREP_DATA: TableCondition.EXISTS, |
| 231 | + db_sync.Table.OFF_CHAIN_VOTE_DREP_DATA: TableCondition.NOT_EMPTY, |
| 232 | + db_sync.Table.OFF_CHAIN_VOTE_EXTERNAL_UPDATE: TableCondition.EXISTS, |
| 233 | + db_sync.Table.OFF_CHAIN_VOTE_EXTERNAL_UPDATE: TableCondition.NOT_EMPTY, |
| 234 | + db_sync.Table.OFF_CHAIN_VOTE_FETCH_ERROR: TableCondition.EXISTS, |
| 235 | + db_sync.Table.OFF_CHAIN_VOTE_FETCH_ERROR: TableCondition.NOT_EMPTY, |
| 236 | + db_sync.Table.OFF_CHAIN_VOTE_GOV_ACTION_DATA: TableCondition.EXISTS, |
| 237 | + db_sync.Table.OFF_CHAIN_VOTE_GOV_ACTION_DATA: TableCondition.NOT_EMPTY, |
| 238 | + db_sync.Table.OFF_CHAIN_VOTE_REFERENCE: TableCondition.EXISTS, |
| 239 | + db_sync.Table.OFF_CHAIN_VOTE_REFERENCE: TableCondition.NOT_EMPTY, |
| 240 | + db_sync.Table.VOTING_ANCHOR: TableCondition.EXISTS, |
| 241 | + db_sync.Table.VOTING_ANCHOR: TableCondition.NOT_EMPTY, |
| 242 | + db_sync.Table.VOTING_PROCEDURE: TableCondition.EXISTS, |
| 243 | + db_sync.Table.VOTING_PROCEDURE: TableCondition.NOT_EMPTY, |
| 244 | + db_sync.Table.TREASURY_WITHDRAWAL: TableCondition.EXISTS, |
| 245 | + db_sync.Table.TREASURY_WITHDRAWAL: TableCondition.NOT_EMPTY, |
| 246 | + } |
| 247 | + ) |
| 248 | + |
| 249 | + # Test governance : disable |
| 250 | + db_sync_manager.restart_with_config( |
| 251 | + custom_config=db_config.with_governance( |
| 252 | + value=db_sync.SettingState.DISABLE |
| 253 | + ) |
| 254 | + ) |
| 255 | + check_dbsync_state( |
| 256 | + expected_state={ |
| 257 | + db_sync.Table.COMMITTEE_DE_REGISTRATION: TableCondition.EXISTS, |
| 258 | + db_sync.Table.COMMITTEE_DE_REGISTRATION: TableCondition.EMPTY, |
| 259 | + db_sync.Table.COMMITTEE_MEMBER: TableCondition.EXISTS, |
| 260 | + db_sync.Table.COMMITTEE_MEMBER: TableCondition.EMPTY, |
| 261 | + db_sync.Table.COMMITTEE_REGISTRATION: TableCondition.EXISTS, |
| 262 | + db_sync.Table.COMMITTEE_REGISTRATION: TableCondition.EMPTY, |
| 263 | + db_sync.Table.COMMITTEE: TableCondition.EXISTS, |
| 264 | + db_sync.Table.COMMITTEE: TableCondition.EMPTY, |
| 265 | + db_sync.Table.CONSTITUTION: TableCondition.EXISTS, |
| 266 | + db_sync.Table.CONSTITUTION: TableCondition.EMPTY, |
| 267 | + db_sync.Table.DELEGATION_VOTE: TableCondition.EXISTS, |
| 268 | + db_sync.Table.DELEGATION_VOTE: TableCondition.EMPTY, |
| 269 | + db_sync.Table.DREP_DISTR: TableCondition.EXISTS, |
| 270 | + db_sync.Table.DREP_DISTR: TableCondition.EMPTY, |
| 271 | + db_sync.Table.DREP_REGISTRATION: TableCondition.EXISTS, |
| 272 | + db_sync.Table.DREP_REGISTRATION: TableCondition.EMPTY, |
| 273 | + db_sync.Table.EPOCH_STATE: TableCondition.EXISTS, |
| 274 | + db_sync.Table.EPOCH_STATE: TableCondition.EMPTY, |
| 275 | + db_sync.Table.GOV_ACTION_PROPOSAL: TableCondition.EXISTS, |
| 276 | + db_sync.Table.GOV_ACTION_PROPOSAL: TableCondition.EMPTY, |
| 277 | + db_sync.Table.OFF_CHAIN_VOTE_DATA: TableCondition.EXISTS, |
| 278 | + db_sync.Table.OFF_CHAIN_VOTE_DATA: TableCondition.EMPTY, |
| 279 | + db_sync.Table.OFF_CHAIN_VOTE_DREP_DATA: TableCondition.EXISTS, |
| 280 | + db_sync.Table.OFF_CHAIN_VOTE_DREP_DATA: TableCondition.EMPTY, |
| 281 | + db_sync.Table.OFF_CHAIN_VOTE_EXTERNAL_UPDATE: TableCondition.EXISTS, |
| 282 | + db_sync.Table.OFF_CHAIN_VOTE_EXTERNAL_UPDATE: TableCondition.EMPTY, |
| 283 | + db_sync.Table.OFF_CHAIN_VOTE_FETCH_ERROR: TableCondition.EXISTS, |
| 284 | + db_sync.Table.OFF_CHAIN_VOTE_FETCH_ERROR: TableCondition.EMPTY, |
| 285 | + db_sync.Table.OFF_CHAIN_VOTE_GOV_ACTION_DATA: TableCondition.EXISTS, |
| 286 | + db_sync.Table.OFF_CHAIN_VOTE_GOV_ACTION_DATA: TableCondition.EMPTY, |
| 287 | + db_sync.Table.OFF_CHAIN_VOTE_REFERENCE: TableCondition.EXISTS, |
| 288 | + db_sync.Table.OFF_CHAIN_VOTE_REFERENCE: TableCondition.EMPTY, |
| 289 | + db_sync.Table.VOTING_ANCHOR: TableCondition.EXISTS, |
| 290 | + db_sync.Table.VOTING_ANCHOR: TableCondition.EMPTY, |
| 291 | + db_sync.Table.VOTING_PROCEDURE: TableCondition.EXISTS, |
| 292 | + db_sync.Table.VOTING_PROCEDURE: TableCondition.EMPTY, |
| 293 | + db_sync.Table.TREASURY_WITHDRAWAL: TableCondition.EXISTS, |
| 294 | + db_sync.Table.TREASURY_WITHDRAWAL: TableCondition.EMPTY, |
| 295 | + } |
| 296 | + ) |
| 297 | + |
| 298 | + yield governance |
| 299 | + |
180 | 300 | def tx_cbor_value_enable(
|
181 | 301 | db_sync_manager: db_sync.DBSyncManager,
|
182 | 302 | ):
|
|
0 commit comments