def test_update_txn_author_agreement(taa_handler, write_manager, taa_input_data, taa_expected_state_data, taa_expected_digests): """ `update_txn_author_agreement` updates state properly """ state = write_manager.database_manager.get_state(CONFIG_LEDGER_ID) written = [] def _check_state(version): digest = taa_expected_digests[version] _digest = state.get( WriteRequestManager._state_path_taa_version(version), isCommitted=False) _data = state.get(WriteRequestManager._state_path_taa_digest(digest), isCommitted=False) if version in written: assert _digest == digest.encode() assert (config_state_serializer.deserialize(_data) == taa_expected_state_data[version]) else: assert _digest is None assert _data is None for data in taa_input_data: taa_handler._update_txn_author_agreement(data.text, data.version, data.seq_no, data.txn_time) written.append(data.version) digest = taa_expected_digests[data.version] assert state.get(WriteRequestManager._state_path_taa_latest(), isCommitted=False) == digest.encode() for version in taa_expected_state_data: _check_state(version)
def test_state_path_taa_latest(): assert WriteRequestManager._state_path_taa_latest() == b'2:latest'