personal memory agent
0

Configure Feed

Select the types of activity you want to include in your feed.

solstone / tests / test_transcribe_resource.py
5.0 kB 172 lines
1# SPDX-License-Identifier: AGPL-3.0-only 2# Copyright (c) 2026 sol pbc 3 4from __future__ import annotations 5 6import pytest 7 8from solstone.observe.transcribe import resource 9 10 11def test_stt_floor_constants_are_exact_gibibytes() -> None: 12 assert resource.STT_LOCAL_FLOOR_LINUX_BYTES == 4 * 1024**3 13 assert resource.STT_LOCAL_FLOOR_DARWIN_BYTES == 2 * 1024**3 14 15 16@pytest.mark.parametrize( 17 ("system", "machine", "expected"), 18 [ 19 ("Darwin", "arm64", resource.STT_LOCAL_FLOOR_DARWIN_BYTES), 20 ("Linux", "x86_64", resource.STT_LOCAL_FLOOR_LINUX_BYTES), 21 ("Linux", "aarch64", resource.STT_LOCAL_FLOOR_LINUX_BYTES), 22 ("Linux", "arm64", resource.STT_LOCAL_FLOOR_LINUX_BYTES), 23 ("Windows", "AMD64", None), 24 ], 25) 26def test_stt_local_floor_bytes_platform_mapping( 27 monkeypatch: pytest.MonkeyPatch, 28 system: str, 29 machine: str, 30 expected: int | None, 31) -> None: 32 monkeypatch.setattr(resource.platform, "system", lambda: system) 33 monkeypatch.setattr(resource.platform, "machine", lambda: machine) 34 35 assert resource.stt_local_floor_bytes() == expected 36 37 38@pytest.mark.parametrize( 39 ("system", "machine", "expected"), 40 [ 41 ("Darwin", "arm64", "parakeet"), 42 ("Linux", "x86_64", "parakeet"), 43 ("Linux", "aarch64", "parakeet"), 44 ("Linux", "arm64", "parakeet"), 45 ("Windows", "AMD64", None), 46 ], 47) 48def test_local_stt_backend_platform_mapping( 49 monkeypatch: pytest.MonkeyPatch, 50 system: str, 51 machine: str, 52 expected: str | None, 53) -> None: 54 monkeypatch.setattr(resource.platform, "system", lambda: system) 55 monkeypatch.setattr(resource.platform, "machine", lambda: machine) 56 57 assert resource.local_stt_backend() == expected 58 59 60@pytest.mark.parametrize( 61 ( 62 "explicit_backend", 63 "available_bytes", 64 "floor_bytes", 65 "local_backend", 66 "confidential_lane_active", 67 "confidential_audio_enabled", 68 "expected", 69 ), 70 [ 71 ("parakeet", 1, 4 * 1024**3, "parakeet", True, True, "parakeet"), 72 ( 73 "parakeet-cpp", 74 1, 75 4 * 1024**3, 76 "parakeet", 77 True, 78 True, 79 "parakeet-cpp", 80 ), 81 ("confidential", 1, 4 * 1024**3, "parakeet", True, True, "confidential"), 82 ("confidential", 1, 4 * 1024**3, "parakeet", True, False, "parakeet"), 83 ( 84 "confidential", 85 1, 86 4 * 1024**3, 87 None, 88 True, 89 False, 90 resource.STT_SURFACE, 91 ), 92 ("confidential", 1, 4 * 1024**3, "parakeet", False, True, "parakeet"), 93 ( 94 "confidential", 95 1, 96 4 * 1024**3, 97 None, 98 False, 99 True, 100 resource.STT_SURFACE, 101 ), 102 (None, 1, 4 * 1024**3, "parakeet", True, True, "confidential"), 103 (None, 1, 4 * 1024**3, "parakeet", True, False, "parakeet"), 104 ( 105 None, 106 1, 107 4 * 1024**3, 108 None, 109 True, 110 False, 111 resource.STT_SURFACE, 112 ), 113 (None, 4 * 1024**3, 4 * 1024**3, "parakeet", False, True, "parakeet"), 114 (None, 5 * 1024**3, 4 * 1024**3, "parakeet", False, True, "parakeet"), 115 ( 116 None, 117 3 * 1024**3, 118 4 * 1024**3, 119 "parakeet", 120 False, 121 True, 122 resource.STT_SURFACE, 123 ), 124 (None, None, 4 * 1024**3, "parakeet", False, True, resource.STT_SURFACE), 125 (None, 3 * 1024**3, None, None, False, True, resource.STT_SURFACE), 126 ( 127 None, 128 None, 129 4 * 1024**3, 130 "parakeet", 131 False, 132 True, 133 resource.STT_SURFACE, 134 ), 135 (None, 3 * 1024**3, None, None, False, True, resource.STT_SURFACE), 136 ], 137) 138def test_resolve_stt_backend_choice_matrix( 139 explicit_backend: str | None, 140 available_bytes: int | None, 141 floor_bytes: int | None, 142 local_backend: str | None, 143 confidential_lane_active: bool, 144 confidential_audio_enabled: bool, 145 expected: str, 146) -> None: 147 assert ( 148 resource.resolve_stt_backend_choice( 149 explicit_backend, 150 available_bytes, 151 floor_bytes=floor_bytes, 152 local_backend=local_backend, 153 confidential_lane_active=confidential_lane_active, 154 confidential_audio_enabled=confidential_audio_enabled, 155 ) 156 == expected 157 ) 158 159 160def test_resolve_stt_backend_choice_is_deterministic() -> None: 161 args = { 162 "explicit_backend": None, 163 "available_bytes": 3 * 1024**3, 164 "floor_bytes": 4 * 1024**3, 165 "local_backend": "parakeet", 166 "confidential_lane_active": False, 167 "confidential_audio_enabled": True, 168 } 169 170 assert resource.resolve_stt_backend_choice( 171 **args 172 ) == resource.resolve_stt_backend_choice(**args)