Skip to content

Commit 4283489

Browse files
refactor(dbsync-config-test): refactor governance test
- Extract `GOVERNANCE_TABLES` constant. - Use `GOVERNANCE_TABLES` to dynamically construct `expected_state` dictionaries. - Remove redundant `tables_to_check` variable in `_query_func`.
1 parent 261f065 commit 4283489

File tree

1 file changed

+25
-65
lines changed

1 file changed

+25
-65
lines changed

cardano_node_tests/tests/test_dbsync_config.py

Lines changed: 25 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,28 @@ class ColumnCondition(str, enum.Enum):
4646
IS_NULL = "column_condition:IS NULL"
4747

4848

49+
GOVERNANCE_TABLES = [
50+
db_sync.Table.COMMITTEE_DE_REGISTRATION,
51+
db_sync.Table.COMMITTEE_MEMBER,
52+
db_sync.Table.COMMITTEE_REGISTRATION,
53+
db_sync.Table.COMMITTEE,
54+
db_sync.Table.CONSTITUTION,
55+
db_sync.Table.DELEGATION_VOTE,
56+
db_sync.Table.DREP_DISTR,
57+
db_sync.Table.DREP_REGISTRATION,
58+
db_sync.Table.EPOCH_STATE,
59+
db_sync.Table.GOV_ACTION_PROPOSAL,
60+
db_sync.Table.OFF_CHAIN_VOTE_DATA,
61+
db_sync.Table.OFF_CHAIN_VOTE_DREP_DATA,
62+
db_sync.Table.OFF_CHAIN_VOTE_EXTERNAL_UPDATE,
63+
db_sync.Table.OFF_CHAIN_VOTE_FETCH_ERROR,
64+
db_sync.Table.OFF_CHAIN_VOTE_GOV_ACTION_DATA,
65+
db_sync.Table.OFF_CHAIN_VOTE_REFERENCE,
66+
db_sync.Table.VOTING_ANCHOR,
67+
db_sync.Table.VOTING_PROCEDURE,
68+
db_sync.Table.TREASURY_WITHDRAWAL,
69+
]
70+
4971
def check_dbsync_state(
5072
expected_state: dict[tp.Union[str, db_sync.Table], TableCondition | ColumnCondition],
5173
) -> None:
@@ -190,30 +212,8 @@ def governance(
190212

191213
# Off-chain data is inserted into the DB a few minutes after the restart of db-sync
192214
def _query_func():
193-
tables_to_check = [
194-
db_sync.Table.COMMITTEE_DE_REGISTRATION,
195-
db_sync.Table.COMMITTEE_MEMBER,
196-
db_sync.Table.COMMITTEE_REGISTRATION,
197-
db_sync.Table.COMMITTEE,
198-
db_sync.Table.CONSTITUTION,
199-
db_sync.Table.DELEGATION_VOTE,
200-
db_sync.Table.DREP_DISTR,
201-
db_sync.Table.DREP_REGISTRATION,
202-
db_sync.Table.EPOCH_STATE,
203-
db_sync.Table.GOV_ACTION_PROPOSAL,
204-
db_sync.Table.OFF_CHAIN_VOTE_DATA,
205-
db_sync.Table.OFF_CHAIN_VOTE_DREP_DATA,
206-
db_sync.Table.OFF_CHAIN_VOTE_EXTERNAL_UPDATE,
207-
db_sync.Table.OFF_CHAIN_VOTE_FETCH_ERROR,
208-
db_sync.Table.OFF_CHAIN_VOTE_GOV_ACTION_DATA,
209-
db_sync.Table.OFF_CHAIN_VOTE_REFERENCE,
210-
db_sync.Table.VOTING_ANCHOR,
211-
db_sync.Table.VOTING_PROCEDURE,
212-
db_sync.Table.TREASURY_WITHDRAWAL,
213-
]
214-
215215
empty_tables = [
216-
table for table in tables_to_check
216+
table for table in GOVERNANCE_TABLES
217217
if dbsync_utils.table_empty(table)
218218
]
219219

@@ -226,54 +226,14 @@ def _query_func():
226226
dbsync_utils.retry_query(query_func=_query_func, timeout=600)
227227

228228
check_dbsync_state(
229-
expected_state={
230-
db_sync.Table.COMMITTEE_DE_REGISTRATION: TableCondition.NOT_EMPTY,
231-
db_sync.Table.COMMITTEE_MEMBER: TableCondition.NOT_EMPTY,
232-
db_sync.Table.COMMITTEE_REGISTRATION: TableCondition.NOT_EMPTY,
233-
db_sync.Table.COMMITTEE: TableCondition.NOT_EMPTY,
234-
db_sync.Table.CONSTITUTION: TableCondition.NOT_EMPTY,
235-
db_sync.Table.DELEGATION_VOTE: TableCondition.NOT_EMPTY,
236-
db_sync.Table.DREP_DISTR: TableCondition.NOT_EMPTY,
237-
db_sync.Table.DREP_REGISTRATION: TableCondition.NOT_EMPTY,
238-
db_sync.Table.EPOCH_STATE: TableCondition.NOT_EMPTY,
239-
db_sync.Table.GOV_ACTION_PROPOSAL: TableCondition.NOT_EMPTY,
240-
db_sync.Table.OFF_CHAIN_VOTE_DATA: TableCondition.NOT_EMPTY,
241-
db_sync.Table.OFF_CHAIN_VOTE_DREP_DATA: TableCondition.NOT_EMPTY,
242-
db_sync.Table.OFF_CHAIN_VOTE_EXTERNAL_UPDATE: TableCondition.NOT_EMPTY,
243-
db_sync.Table.OFF_CHAIN_VOTE_FETCH_ERROR: TableCondition.NOT_EMPTY,
244-
db_sync.Table.OFF_CHAIN_VOTE_GOV_ACTION_DATA: TableCondition.NOT_EMPTY,
245-
db_sync.Table.OFF_CHAIN_VOTE_REFERENCE: TableCondition.NOT_EMPTY,
246-
db_sync.Table.VOTING_ANCHOR: TableCondition.NOT_EMPTY,
247-
db_sync.Table.VOTING_PROCEDURE: TableCondition.NOT_EMPTY,
248-
db_sync.Table.TREASURY_WITHDRAWAL: TableCondition.NOT_EMPTY,
249-
}
229+
expected_state={t: TableCondition.NOT_EMPTY for t in GOVERNANCE_TABLES}
250230
)
251231

252232
db_sync_manager.restart_with_config(
253233
custom_config=db_config.with_governance(value=db_sync.SettingState.DISABLE)
254234
)
255235
check_dbsync_state(
256-
expected_state={
257-
db_sync.Table.COMMITTEE_DE_REGISTRATION: TableCondition.EMPTY,
258-
db_sync.Table.COMMITTEE_MEMBER: TableCondition.EMPTY,
259-
db_sync.Table.COMMITTEE_REGISTRATION: TableCondition.EMPTY,
260-
db_sync.Table.COMMITTEE: TableCondition.EMPTY,
261-
db_sync.Table.CONSTITUTION: TableCondition.EMPTY,
262-
db_sync.Table.DELEGATION_VOTE: TableCondition.EMPTY,
263-
db_sync.Table.DREP_DISTR: TableCondition.EMPTY,
264-
db_sync.Table.DREP_REGISTRATION: TableCondition.EMPTY,
265-
db_sync.Table.EPOCH_STATE: TableCondition.EMPTY,
266-
db_sync.Table.GOV_ACTION_PROPOSAL: TableCondition.EMPTY,
267-
db_sync.Table.OFF_CHAIN_VOTE_DATA: TableCondition.EMPTY,
268-
db_sync.Table.OFF_CHAIN_VOTE_DREP_DATA: TableCondition.EMPTY,
269-
db_sync.Table.OFF_CHAIN_VOTE_EXTERNAL_UPDATE: TableCondition.EMPTY,
270-
db_sync.Table.OFF_CHAIN_VOTE_FETCH_ERROR: TableCondition.EMPTY,
271-
db_sync.Table.OFF_CHAIN_VOTE_GOV_ACTION_DATA: TableCondition.EMPTY,
272-
db_sync.Table.OFF_CHAIN_VOTE_REFERENCE: TableCondition.EMPTY,
273-
db_sync.Table.VOTING_ANCHOR: TableCondition.EMPTY,
274-
db_sync.Table.VOTING_PROCEDURE: TableCondition.EMPTY,
275-
db_sync.Table.TREASURY_WITHDRAWAL: TableCondition.EMPTY,
276-
}
236+
expected_state={t: TableCondition.EMPTY for t in GOVERNANCE_TABLES}
277237
)
278238

279239
yield governance

0 commit comments

Comments
 (0)