Coverage report

|  |  | Statements |  | Branches |  | Total
--- | --- | --- | --- | --- | --- | --- | ---
File | class |  | coverage | statements | missing | excluded |  | coverage | branches | partial |  | coverage
src / beautyspot / __init__.py | (no class) |  | 91% | 53 | 5 | 0 |  | 80% | 10 | 2 |  | 89%
src / beautyspot / _version.py | (no class) |  | 0% | 13 | 13 | 5 |  | 100% | 0 | 0 |  | 0%
src / beautyspot / cache.py | HerdWaitResult |  | 100% | 0 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / beautyspot / cache.py | CacheManager |  | 91% | 165 | 15 | 0 |  | 79% | 80 | 11 |  | 87%
src / beautyspot / cache.py | (no class) |  | 100% | 42 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / beautyspot / cachekey.py | Strategy |  | 100% | 0 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / beautyspot / cachekey.py | KeyGenPolicy |  | 82% | 22 | 4 | 0 |  | 88% | 8 | 1 |  | 83%
src / beautyspot / cachekey.py | KeyGen |  | 40% | 43 | 26 | 0 |  | 30% | 10 | 3 |  | 38%
src / beautyspot / cachekey.py | (no class) |  | 75% | 149 | 37 | 0 |  | 56% | 34 | 7 |  | 72%
src / beautyspot / cli.py | (no class) |  | 75% | 398 | 98 | 0 |  | 63% | 150 | 31 |  | 72%
src / beautyspot / content_types.py | ContentType |  | 100% | 0 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / beautyspot / content_types.py | (no class) |  | 100% | 10 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / beautyspot / core.py | _ExecutionContext |  | 100% | 0 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / beautyspot / core.py | _BackgroundLoop |  | 67% | 54 | 18 | 0 |  | 71% | 14 | 2 |  | 68%
src / beautyspot / core.py | Spot |  | 91% | 318 | 30 | 4 |  | 81% | 108 | 18 |  | 88%
src / beautyspot / core.py | (no class) |  | 100% | 84 | 0 | 20 |  | 100% | 0 | 0 |  | 100%
src / beautyspot / dashboard.py | (no class) |  | 0% | 118 | 118 | 0 |  | 0% | 46 | 0 |  | 0%
src / beautyspot / db.py | TaskDBCore |  | 100% | 0 | 0 | 4 |  | 100% | 0 | 0 |  | 100%
src / beautyspot / db.py | Flushable |  | 100% | 0 | 0 | 1 |  | 100% | 0 | 0 |  | 100%
src / beautyspot / db.py | Shutdownable |  | 100% | 0 | 0 | 1 |  | 100% | 0 | 0 |  | 100%
src / beautyspot / db.py | Maintenable |  | 100% | 0 | 0 | 7 |  | 100% | 0 | 0 |  | 100%
src / beautyspot / db.py | TaskDBMaintenable |  | 100% | 0 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / beautyspot / db.py | _ReadConnWrapper |  | 88% | 17 | 2 | 0 |  | 83% | 6 | 1 |  | 87%
src / beautyspot / db.py | _WriteTask |  | 100% | 13 | 0 | 0 |  | 83% | 6 | 1 |  | 95%
src / beautyspot / db.py | TaskDBBase |  | 0% | 15 | 15 | 0 |  | 100% | 0 | 0 |  | 0%
src / beautyspot / db.py | WriterTaintedError |  | 100% | 0 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / beautyspot / db.py | SQLiteTaskDB |  | 73% | 334 | 91 | 0 |  | 63% | 128 | 35 |  | 70%
src / beautyspot / db.py | (no class) |  | 99% | 93 | 1 | 43 |  | 75% | 4 | 1 |  | 98%
src / beautyspot / exceptions.py | BeautySpotError |  | 100% | 0 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / beautyspot / exceptions.py | CacheCorruptedError |  | 100% | 0 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / beautyspot / exceptions.py | SerializationError |  | 100% | 0 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / beautyspot / exceptions.py | ConfigurationError |  | 100% | 0 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / beautyspot / exceptions.py | ValidationError |  | 100% | 0 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / beautyspot / exceptions.py | IncompatibleProviderError |  | 100% | 0 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / beautyspot / exceptions.py | (no class) |  | 100% | 6 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / beautyspot / hooks.py | HookBase |  | 100% | 0 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / beautyspot / hooks.py | ThreadSafeHookBase |  | 62% | 8 | 3 | 0 |  | 50% | 6 | 1 |  | 57%
src / beautyspot / hooks.py | (no class) |  | 100% | 21 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / beautyspot / lifecycle.py | _ForeverSentinel |  | 100% | 7 | 0 | 0 |  | 75% | 4 | 1 |  | 91%
src / beautyspot / lifecycle.py | Retention |  | 100% | 0 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / beautyspot / lifecycle.py | Rule |  | 100% | 0 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / beautyspot / lifecycle.py | LifecyclePolicy |  | 94% | 16 | 1 | 0 |  | 93% | 14 | 1 |  | 93%
src / beautyspot / lifecycle.py | (no class) |  | 100% | 56 | 0 | 0 |  | 96% | 24 | 1 |  | 99%
src / beautyspot / limiter.py | LimiterProtocol |  | 100% | 0 | 0 | 2 |  | 100% | 0 | 0 |  | 100%
src / beautyspot / limiter.py | Gcra |  | 92% | 26 | 2 | 0 |  | 86% | 14 | 2 |  | 90%
src / beautyspot / limiter.py | (no class) |  | 100% | 11 | 0 | 3 |  | 100% | 0 | 0 |  | 100%
src / beautyspot / maintenance.py | MaintenanceService |  | 85% | 163 | 24 | 0 |  | 75% | 72 | 16 |  | 82%
src / beautyspot / maintenance.py | (no class) |  | 100% | 33 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / beautyspot / serializer.py | SerializerProtocol |  | 100% | 0 | 0 | 2 |  | 100% | 0 | 0 |  | 100%
src / beautyspot / serializer.py | TypeRegistryProtocol |  | 100% | 0 | 0 | 1 |  | 100% | 0 | 0 |  | 100%
src / beautyspot / serializer.py | MsgpackSerializer |  | 86% | 88 | 12 | 0 |  | 77% | 30 | 7 |  | 84%
src / beautyspot / serializer.py | (no class) |  | 100% | 19 | 0 | 10 |  | 100% | 0 | 0 |  | 100%
src / beautyspot / storage.py | StoragePolicyProtocol |  | 100% | 0 | 0 | 1 |  | 100% | 0 | 0 |  | 100%
src / beautyspot / storage.py | ThresholdStoragePolicy |  | 100% | 1 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / beautyspot / storage.py | WarningOnlyPolicy |  | 100% | 3 | 0 | 0 |  | 100% | 2 | 0 |  | 100%
src / beautyspot / storage.py | AlwaysBlobPolicy |  | 100% | 1 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / beautyspot / storage.py | BlobStorageCore |  | 100% | 0 | 0 | 3 |  | 100% | 0 | 0 |  | 100%
src / beautyspot / storage.py | Maintenable |  | 100% | 0 | 0 | 2 |  | 100% | 0 | 0 |  | 100%
src / beautyspot / storage.py | BlobStorageMaintenable |  | 100% | 0 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / beautyspot / storage.py | BlobStorageBase |  | 0% | 5 | 5 | 0 |  | 100% | 0 | 0 |  | 0%
src / beautyspot / storage.py | LocalStorage |  | 69% | 94 | 29 | 0 |  | 72% | 36 | 8 |  | 70%
src / beautyspot / storage.py | S3Storage |  | 0% | 43 | 43 | 0 |  | 0% | 10 | 0 |  | 0%
src / beautyspot / storage.py | (no class) |  | 95% | 73 | 4 | 11 |  | 50% | 2 | 1 |  | 93%
src / beautyspot / types.py | TaskRecord |  | 100% | 0 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / beautyspot / types.py | SaveErrorContext |  | 100% | 0 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / beautyspot / types.py | HookContextBase |  | 100% | 2 | 0 | 0 |  | 50% | 2 | 1 |  | 75%
src / beautyspot / types.py | PreExecuteContext |  | 100% | 0 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / beautyspot / types.py | CacheHitContext |  | 100% | 0 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / beautyspot / types.py | CacheMissContext |  | 100% | 0 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / beautyspot / types.py | (no class) |  | 100% | 40 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
Total |  |  | 78% | 2657 | 596 | 120 |  | 67% | 820 | 152 |  | 75%

No items found using the specified filter.