Coverage report: 95.3%
Files Functions Classes
coverage.py v7.15.2, created at 2026-07-28 08:17 +0000
coverage.py v7.15.2, created at 2026-07-28 08:17 +0000
| Statements | Branches | Total | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| File | class | coverage | statements | missing | excluded | coverage | branches | partial | coverage | |||
| src/ph/__init__.py | (no class) | 100.0% | 0 | 0 | 0 | 100.0% | 0 | 0 | 100.0% | |||
| src/ph/__main__.py | (no class) | 0.0% | 2 | 2 | 0 | 100.0% | 0 | 0 | 0.0% | |||
| src/ph/app.py | (no class) | 96.4% | 166 | 6 | 0 | 91.3% | 46 | 4 | 95.3% | |||
| src/ph/bittorrent.py | _PeerGate | 100.0% | 0 | 0 | 0 | 100.0% | 0 | 0 | 100.0% | |||
| src/ph/bittorrent.py | BitTorrentError | 100.0% | 0 | 0 | 0 | 100.0% | 0 | 0 | 100.0% | |||
| src/ph/bittorrent.py | BitTorrentCancelled | 100.0% | 0 | 0 | 0 | 100.0% | 0 | 0 | 100.0% | |||
| src/ph/bittorrent.py | TorrentFileChoice | 100.0% | 1 | 0 | 0 | 100.0% | 0 | 0 | 100.0% | |||
| src/ph/bittorrent.py | TorrentSelectionRequired | 100.0% | 7 | 0 | 0 | 100.0% | 0 | 0 | 100.0% | |||
| src/ph/bittorrent.py | BitTorrentSettings | 100.0% | 8 | 0 | 0 | 100.0% | 6 | 0 | 100.0% | |||
| src/ph/bittorrent.py | _BDecoder | 96.4% | 55 | 2 | 0 | 100.0% | 24 | 0 | 97.5% | |||
| src/ph/bittorrent.py | TorrentFile | 100.0% | 0 | 0 | 0 | 100.0% | 0 | 0 | 100.0% | |||
| src/ph/bittorrent.py | TorrentMetadata | 100.0% | 0 | 0 | 0 | 100.0% | 0 | 0 | 100.0% | |||
| src/ph/bittorrent.py | (no class) | 97.1% | 511 | 15 | 0 | 91.7% | 180 | 15 | 95.7% | |||
| src/ph/cache_policy.py | (no class) | 100.0% | 4 | 0 | 0 | 100.0% | 0 | 0 | 100.0% | |||
| src/ph/compatibility.py | CompatibilityError | 100.0% | 0 | 0 | 0 | 100.0% | 0 | 0 | 100.0% | |||
| src/ph/compatibility.py | CompatibilityInfo | 100.0% | 9 | 0 | 0 | 100.0% | 6 | 0 | 100.0% | |||
| src/ph/compatibility.py | GameCompatibilityClient | 99.0% | 103 | 1 | 0 | 95.5% | 22 | 1 | 98.4% | |||
| src/ph/compatibility.py | (no class) | 100.0% | 137 | 0 | 0 | 95.8% | 24 | 1 | 99.4% | |||
| src/ph/config.py | Config | 100.0% | 20 | 0 | 0 | 100.0% | 2 | 0 | 100.0% | |||
| src/ph/config.py | (no class) | 100.0% | 23 | 0 | 0 | 100.0% | 0 | 0 | 100.0% | |||
| src/ph/download_queue.py | RateLimitRetrySettings | 100.0% | 6 | 0 | 0 | 100.0% | 6 | 0 | 100.0% | |||
| src/ph/download_queue.py | DownloadState | 100.0% | 0 | 0 | 0 | 100.0% | 0 | 0 | 100.0% | |||
| src/ph/download_queue.py | DownloadJob | 100.0% | 0 | 0 | 0 | 100.0% | 0 | 0 | 100.0% | |||
| src/ph/download_queue.py | _QueuedDownload | 100.0% | 1 | 0 | 0 | 100.0% | 0 | 0 | 100.0% | |||
| src/ph/download_queue.py | DownloadQueue | 93.6% | 314 | 20 | 4 | 84.0% | 94 | 15 | 91.4% | |||
| src/ph/download_queue.py | (no class) | 95.6% | 160 | 7 | 0 | 70.0% | 20 | 6 | 92.8% | |||
| src/ph/downloader.py | DownloadError | 100.0% | 0 | 0 | 0 | 100.0% | 0 | 0 | 100.0% | |||
| src/ph/downloader.py | DownloadCancelled | 100.0% | 0 | 0 | 0 | 100.0% | 0 | 0 | 100.0% | |||
| src/ph/downloader.py | DownloadRateLimited | 100.0% | 2 | 0 | 0 | 100.0% | 0 | 0 | 100.0% | |||
| src/ph/downloader.py | DownloadSelectionRequired | 100.0% | 6 | 0 | 0 | 100.0% | 0 | 0 | 100.0% | |||
| src/ph/downloader.py | (no class) | 98.8% | 173 | 2 | 0 | 91.7% | 48 | 4 | 97.3% | |||
| src/ph/frontend.py | (no class) | 100.0% | 17 | 0 | 0 | 100.0% | 2 | 0 | 100.0% | |||
| src/ph/gamepad.py | InputAction | 100.0% | 0 | 0 | 0 | 100.0% | 0 | 0 | 100.0% | |||
| src/ph/gamepad.py | LinuxJoystick | 76.1% | 92 | 22 | 0 | 77.3% | 44 | 6 | 76.5% | |||
| src/ph/gamepad.py | (no class) | 100.0% | 74 | 0 | 0 | 100.0% | 0 | 0 | 100.0% | |||
| src/ph/hardware.py | DeviceTreeKey | 100.0% | 0 | 0 | 0 | 100.0% | 0 | 0 | 100.0% | |||
| src/ph/hardware.py | DeviceTreeInput | 100.0% | 0 | 0 | 0 | 100.0% | 0 | 0 | 100.0% | |||
| src/ph/hardware.py | HardwareProfile | 100.0% | 3 | 0 | 0 | 100.0% | 2 | 0 | 100.0% | |||
| src/ph/hardware.py | (no class) | 93.0% | 114 | 8 | 0 | 90.0% | 30 | 3 | 92.4% | |||
| src/ph/i18n.py | Language | 100.0% | 0 | 0 | 0 | 100.0% | 0 | 0 | 100.0% | |||
| src/ph/i18n.py | (no class) | 88.5% | 52 | 6 | 0 | 75.0% | 12 | 3 | 85.9% | |||
| src/ph/library.py | LibraryError | 100.0% | 0 | 0 | 0 | 100.0% | 0 | 0 | 100.0% | |||
| src/ph/library.py | (no class) | 98.4% | 128 | 2 | 0 | 94.0% | 50 | 3 | 97.2% | |||
| src/ph/logging_config.py | (no class) | 100.0% | 49 | 0 | 0 | 100.0% | 16 | 0 | 100.0% | |||
| src/ph/minerva_store.py | MinervaEntry | 100.0% | 0 | 0 | 0 | 100.0% | 0 | 0 | 100.0% | |||
| src/ph/minerva_store.py | _DirectoryParser | 100.0% | 34 | 0 | 0 | 86.4% | 22 | 3 | 94.6% | |||
| src/ph/minerva_store.py | MinervaStore | 100.0% | 97 | 0 | 0 | 100.0% | 40 | 0 | 100.0% | |||
| src/ph/minerva_store.py | (no class) | 100.0% | 61 | 0 | 0 | 100.0% | 0 | 0 | 100.0% | |||
| src/ph/models.py | Platform | 100.0% | 3 | 0 | 0 | 100.0% | 2 | 0 | 100.0% | |||
| src/ph/models.py | SearchResult | 100.0% | 0 | 0 | 0 | 100.0% | 0 | 0 | 100.0% | |||
| src/ph/models.py | DownloadResult | 100.0% | 0 | 0 | 0 | 100.0% | 0 | 0 | 100.0% | |||
| src/ph/models.py | MediaDownload | 100.0% | 0 | 0 | 0 | 100.0% | 0 | 0 | 100.0% | |||
| src/ph/models.py | InstalledGame | 100.0% | 0 | 0 | 0 | 100.0% | 0 | 0 | 100.0% | |||
| src/ph/models.py | (no class) | 100.0% | 24 | 0 | 0 | 100.0% | 0 | 0 | 100.0% | |||
| src/ph/organizer.py | OrganizeError | 100.0% | 0 | 0 | 0 | 100.0% | 0 | 0 | 100.0% | |||
| src/ph/organizer.py | (no class) | 92.5% | 120 | 9 | 0 | 92.5% | 40 | 3 | 92.5% | |||
| src/ph/platforms.py | (no class) | 93.2% | 44 | 3 | 0 | 94.4% | 18 | 1 | 93.5% | |||
| src/ph/preferences.py | PreferencesError | 100.0% | 0 | 0 | 0 | 100.0% | 0 | 0 | 100.0% | |||
| src/ph/preferences.py | Preferences | 100.0% | 0 | 0 | 0 | 100.0% | 0 | 0 | 100.0% | |||
| src/ph/preferences.py | (no class) | 98.4% | 125 | 2 | 0 | 92.1% | 38 | 3 | 96.9% | |||
| src/ph/retrobios.py | BiosError | 100.0% | 0 | 0 | 0 | 100.0% | 0 | 0 | 100.0% | |||
| src/ph/retrobios.py | BiosDownloadCancelled | 100.0% | 0 | 0 | 0 | 100.0% | 0 | 0 | 100.0% | |||
| src/ph/retrobios.py | BiosState | 100.0% | 0 | 0 | 0 | 100.0% | 0 | 0 | 100.0% | |||
| src/ph/retrobios.py | BiosRequirement | 100.0% | 0 | 0 | 0 | 100.0% | 0 | 0 | 100.0% | |||
| src/ph/retrobios.py | BiosSystem | 100.0% | 0 | 0 | 0 | 100.0% | 0 | 0 | 100.0% | |||
| src/ph/retrobios.py | BiosCheck | 100.0% | 0 | 0 | 0 | 100.0% | 0 | 0 | 100.0% | |||
| src/ph/retrobios.py | RetroBiosCatalog | 100.0% | 49 | 0 | 0 | 100.0% | 20 | 0 | 100.0% | |||
| src/ph/retrobios.py | RetroBiosRepository | 94.7% | 57 | 3 | 0 | 75.0% | 16 | 2 | 90.4% | |||
| src/ph/retrobios.py | (no class) | 98.9% | 284 | 3 | 0 | 95.7% | 94 | 4 | 98.1% | |||
| src/ph/store.py | StoreError | 100.0% | 2 | 0 | 0 | 100.0% | 0 | 0 | 100.0% | |||
| src/ph/store.py | GameStore | 100.0% | 23 | 0 | 0 | 100.0% | 8 | 0 | 100.0% | |||
| src/ph/store.py | (no class) | 100.0% | 35 | 0 | 0 | 100.0% | 0 | 0 | 100.0% | |||
| src/ph/store_cache.py | CatalogueCacheError | 100.0% | 0 | 0 | 0 | 100.0% | 0 | 0 | 100.0% | |||
| src/ph/store_cache.py | StoreCacheStatus | 100.0% | 0 | 0 | 0 | 100.0% | 0 | 0 | 100.0% | |||
| src/ph/store_cache.py | _CachedCatalogue | 100.0% | 0 | 0 | 0 | 100.0% | 0 | 0 | 100.0% | |||
| src/ph/store_cache.py | GameCatalogueCache | 100.0% | 50 | 0 | 0 | 100.0% | 10 | 0 | 100.0% | |||
| src/ph/store_cache.py | (no class) | 100.0% | 38 | 0 | 0 | 100.0% | 4 | 0 | 100.0% | |||
| src/ph/store_catalog.py | StoreCatalog | 100.0% | 5 | 0 | 0 | 100.0% | 0 | 0 | 100.0% | |||
| src/ph/store_catalog.py | (no class) | 100.0% | 12 | 0 | 0 | 100.0% | 0 | 0 | 100.0% | |||
| src/ph/targets.py | TargetError | 100.0% | 0 | 0 | 0 | 100.0% | 0 | 0 | 100.0% | |||
| src/ph/targets.py | LinuxTarget | 100.0% | 1 | 0 | 0 | 100.0% | 0 | 0 | 100.0% | |||
| src/ph/targets.py | (no class) | 100.0% | 17 | 0 | 0 | 100.0% | 2 | 0 | 100.0% | |||
| src/ph/translation_keys.py | TranslationKey | 100.0% | 0 | 0 | 0 | 100.0% | 0 | 0 | 100.0% | |||
| src/ph/translation_keys.py | (no class) | 100.0% | 383 | 0 | 0 | 100.0% | 0 | 0 | 100.0% | |||
| src/ph/translations/__init__.py | (no class) | 100.0% | 0 | 0 | 0 | 100.0% | 0 | 0 | 100.0% | |||
| src/ph/tui.py | KeyboardKey | 100.0% | 0 | 0 | 0 | 100.0% | 0 | 0 | 100.0% | |||
| src/ph/tui.py | SettingInputKind | 100.0% | 0 | 0 | 0 | 100.0% | 0 | 0 | 100.0% | |||
| src/ph/tui.py | TerminalTooSmall | 100.0% | 0 | 0 | 0 | 100.0% | 0 | 0 | 100.0% | |||
| src/ph/tui.py | DownloaderTui | 94.5% | 1231 | 68 | 0 | 89.2% | 498 | 38 | 92.9% | |||
| src/ph/tui.py | (no class) | 100.0% | 201 | 0 | 0 | 100.0% | 22 | 0 | 100.0% | |||
| src/ph/updater.py | UpdateError | 100.0% | 0 | 0 | 0 | 100.0% | 0 | 0 | 100.0% | |||
| src/ph/updater.py | UpdateCancelled | 100.0% | 0 | 0 | 0 | 100.0% | 0 | 0 | 100.0% | |||
| src/ph/updater.py | ReleaseUpdate | 100.0% | 0 | 0 | 0 | 100.0% | 0 | 0 | 100.0% | |||
| src/ph/updater.py | (no class) | 99.1% | 212 | 2 | 0 | 100.0% | 56 | 0 | 99.3% | |||
| src/ph/vimm_store.py | _Cell | 100.0% | 1 | 0 | 0 | 100.0% | 0 | 0 | 100.0% | |||
| src/ph/vimm_store.py | _SearchTableParser | 97.9% | 47 | 1 | 0 | 94.1% | 34 | 2 | 96.3% | |||
| src/ph/vimm_store.py | _DownloadFormParser | 94.7% | 19 | 1 | 0 | 75.0% | 12 | 3 | 87.1% | |||
| src/ph/vimm_store.py | VimmStore | 89.3% | 56 | 6 | 0 | 81.2% | 16 | 3 | 87.5% | |||
| src/ph/vimm_store.py | (no class) | 98.6% | 70 | 1 | 0 | 90.0% | 10 | 1 | 97.5% | |||
| Total | 96.5% | 5538 | 192 | 4 | 90.9% | 1596 | 124 | 95.3% | ||||
No items found using the specified filter.