mirror of
https://github.com/kuhyx/utils.git
synced 2026-11-12 23:10:59 +01:00
Some checks are pending
crdt_sync_dart tests / test (push) Waiting to run
crdt_sync_flutter tests / test (push) Waiting to run
crdt-sync pre-commit / pre-commit (push) Waiting to run
crdt-sync tests / test (push) Waiting to run
dependency freshness / dependencies on newest stable (push) Waiting to run
design_system tests / test (push) Waiting to run
file length / file-length (push) Waiting to run
md-naming / markdown naming convention (push) Waiting to run
palette drift / palette (push) Waiting to run
repo-contract / repo contract (push) Waiting to run
shared gate tests / gate unit tests (push) Waiting to run
sync_settings_ui tests / test (push) Waiting to run
Byte-compatible with crdt_sync_dart 0.14.0, proven by golden vectors in both directions. EncryptingStore, -e2e layout, one-time copy, and open_encrypted_client for the Python daemons. Dev pins bumped. Todo: fda71ed1 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
33 lines
938 B
Python
33 lines
938 B
Python
# Copyright (c) 2026 Krzysztof Rudnicki
|
|
"""A peer whose log cannot be decrypted is skipped, not fatal."""
|
|
|
|
from __future__ import annotations
|
|
|
|
import logging
|
|
from typing import TYPE_CHECKING
|
|
from unittest.mock import MagicMock
|
|
|
|
from crdt_sync import (
|
|
E2eDecryptError,
|
|
GitHubSyncClient,
|
|
LogCodec,
|
|
SyncTarget,
|
|
dump_log,
|
|
load_log,
|
|
sync_log,
|
|
)
|
|
|
|
if TYPE_CHECKING:
|
|
import pytest
|
|
|
|
|
|
def test_undecryptable_peer_is_skipped(caplog: pytest.LogCaptureFixture) -> None:
|
|
client = MagicMock(spec=GitHubSyncClient)
|
|
client.list_directory.return_value = ["phone"]
|
|
client.get_file_text.side_effect = E2eDecryptError("wrong key")
|
|
codec = LogCodec(encode=dump_log, decode=load_log, filename="log.json")
|
|
with caplog.at_level(logging.WARNING):
|
|
merged = sync_log(SyncTarget(client, "pc", "devices"), {}, codec)
|
|
assert merged == {}
|
|
assert "Undecryptable log from device 'phone'" in caplog.text
|