Coverage report: 93%

Files Functions Classes

coverage.py v7.15.2, created at 2026-09-06 02:59 +0000

      Statements   Branches   Total
File class   coverage statements missing excluded   coverage branches partial   coverage
src/footman/__init__.py (no class)   100% 64 0 104   100% 32 0   100%
src/footman/__main__.py (no class)   100% 1 0 2   100% 0 0   100%
src/footman/_app.py Discovery   100% 0 0 0   100% 0 0   100%
src/footman/_app.py (no class)   95% 1220 66 0   92% 558 40   94%
src/footman/_binder.py (no class)   93% 122 9 0   89% 74 8   91%
src/footman/_coerce.py Peeled   100% 0 0 0   100% 0 0   100%
src/footman/_coerce.py _Markers   100% 0 0 0   100% 0 0   100%
src/footman/_coerce.py Group   100% 5 0 0   100% 2 0   100%
src/footman/_coerce.py Field   100% 0 0 0   100% 0 0   100%
src/footman/_coerce.py EnumContractError   100% 0 0 0   100% 0 0   100%
src/footman/_coerce.py EnumFace   100% 0 0 0   100% 0 0   100%
src/footman/_coerce.py (no class)   97% 478 15 0   92% 260 20   95%
src/footman/_complete.py _Segment   100% 11 0 0   100% 2 0   100%
src/footman/_complete.py (no class)   96% 464 18 4   93% 236 16   95%
src/footman/_config.py ConfigError   100% 0 0 0   100% 0 0   100%
src/footman/_config.py CascadeError   100% 0 0 0   100% 0 0   100%
src/footman/_config.py BuiltinError   100% 0 0 0   100% 0 0   100%
src/footman/_config.py (no class)   95% 177 8 0   93% 60 4   95%
src/footman/_describe.py (no class)   92% 525 40 0   88% 304 28   91%
src/footman/_discover.py TasksImportError   100% 6 0 0   100% 2 0   100%
src/footman/_discover.py HookError   100% 8 0 0   100% 2 0   100%
src/footman/_discover.py AliasError   100% 0 0 0   100% 0 0   100%
src/footman/_discover.py (no class)   99% 120 1 0   98% 46 1   99%
src/footman/_encoding.py (no class)   100% 8 0 0   100% 4 0   100%
src/footman/_executor.py TaskResult   100% 2 0 0   100% 0 0   100%
src/footman/_executor.py _SiblingView   92% 13 1 0   100% 6 0   95%
src/footman/_executor.py _PlanParam   100% 0 0 0   100% 0 0   100%
src/footman/_executor.py _CallPlan   100% 0 0 0   100% 0 0   100%
src/footman/_executor.py Unavailable   100% 0 0 0   100% 0 0   100%
src/footman/_executor.py HookFailed   100% 0 0 0   100% 0 0   100%
src/footman/_executor.py _HookPlugin   100% 0 0 0   100% 0 0   100%
src/footman/_executor.py _Lifecycle   100% 0 0 0   100% 0 0   100%
src/footman/_executor.py TaskHandle   91% 35 3 0   75% 8 2   88%
src/footman/_executor.py ResultView   100% 3 0 0   100% 0 0   100%
src/footman/_executor.py (no class)   95% 1144 57 0   89% 488 40   93%
src/footman/_fetch.py FetchError   100% 0 0 0   100% 0 0   100%
src/footman/_fetch.py (no class)   98% 222 4 0   92% 78 6   97%
src/footman/_futures.py _Settled   100% 12 0 0   100% 2 0   100%
src/footman/_futures.py _Cell   100% 4 0 0   100% 0 0   100%
src/footman/_futures.py _Session   100% 5 0 0   100% 0 0   100%
src/footman/_futures.py (no class)   95% 329 16 3   87% 110 12   93%
src/footman/_gc.py (no class)   98% 92 2 0   96% 48 2   97%
src/footman/_globals.py _ArgvProxy   69% 59 18 0   38% 8 3   66%
src/footman/_globals.py _GuardedStdin   79% 14 3 0   100% 2 0   81%
src/footman/_globals.py Lane   67% 3 1 0   100% 0 0   67%
src/footman/_globals.py (no class)   96% 541 23 0   84% 158 21   93%
src/footman/_manifest.py ManifestError   100% 0 0 0   100% 0 0   100%
src/footman/_manifest.py CompleterError   100% 0 0 0   100% 0 0   100%
src/footman/_manifest.py SpecError   100% 0 0 0   100% 0 0   100%
src/footman/_manifest.py _Undescribable   100% 0 0 0   100% 0 0   100%
src/footman/_manifest.py (no class)   96% 584 22 0   93% 340 23   95%
src/footman/_notes.py Note   100% 0 0 0   100% 0 0   100%
src/footman/_notes.py BannedNotes   100% 0 0 0   100% 0 0   100%
src/footman/_notes.py (no class)   96% 118 5 2   93% 44 3   95%
src/footman/_paths.py LocationError   100% 0 0 0   100% 0 0   100%
src/footman/_paths.py (no class)   98% 192 4 3   98% 42 1   98%
src/footman/_progress.py Estimate   100% 0 0 0   100% 0 0   100%
src/footman/_progress.py StatusLine   97% 109 3 0   88% 34 4   95%
src/footman/_progress.py (no class)   98% 108 2 0   90% 20 2   97%
src/footman/_refresh.py (no class)   92% 107 9 2   86% 28 4   90%
src/footman/_schedule.py _Node   100% 0 0 0   100% 0 0   100%
src/footman/_schedule.py NotConfirmed   100% 1 0 0   100% 0 0   100%
src/footman/_schedule.py (no class)   94% 507 30 0   88% 198 15   92%
src/footman/_script.py (no class)   94% 141 8 0   96% 52 2   95%
src/footman/_shellcomp.py InstallError   100% 0 0 0   100% 0 0   100%
src/footman/_shellcomp.py (no class)   92% 207 16 0   92% 74 4   92%
src/footman/_signals.py Stop   100% 3 0 0   100% 0 0   100%
src/footman/_signals.py (no class)   100% 72 0 0   95% 22 1   99%
src/footman/_split.py ChainError   100% 0 0 0   100% 0 0   100%
src/footman/_split.py _CoreOption   100% 9 0 0   100% 2 0   100%
src/footman/_split.py Segment   100% 0 0 0   100% 0 0   100%
src/footman/_split.py (no class)   94% 545 32 0   90% 266 22   93%
src/footman/_step.py WorkItem   100% 11 0 0   100% 2 0   100%
src/footman/_step.py StepFn   100% 24 0 0   100% 8 0   100%
src/footman/_step.py _StepBlock   100% 14 0 0   100% 2 0   100%
src/footman/_step.py (no class)   93% 202 15 11   92% 74 6   92%
src/footman/_suggest.py (no class)   90% 96 10 4   74% 42 11   85%
src/footman/app.py Brand   100% 6 0 0   100% 0 0   100%
src/footman/app.py App   87% 30 4 0   88% 8 1   87%
src/footman/app.py (no class)   98% 42 1 0   75% 8 2   94%
src/footman/compose.py (no class)   93% 342 24 0   91% 186 9   92%
src/footman/context.py AuditEntry   100% 0 0 0   100% 0 0   100%
src/footman/context.py Argv   100% 2 0 0   100% 0 0   100%
src/footman/context.py Result   100% 36 0 0   100% 2 0   100%
src/footman/context.py ResultView   86% 28 4 0   100% 0 0   86%
src/footman/context.py Context   100% 8 0 0   100% 4 0   100%
src/footman/context.py Section   100% 0 0 0   100% 0 0   100%
src/footman/context.py _SectionTimer   100% 7 0 0   100% 0 0   100%
src/footman/context.py Stream   100% 13 0 2   100% 6 0   100%
src/footman/context.py RunFailed   100% 2 0 0   100% 0 0   100%
src/footman/context.py RunTimeout   100% 3 0 0   100% 0 0   100%
src/footman/context.py CommandNotFound   100% 2 0 0   100% 0 0   100%
src/footman/context.py Failed   100% 3 0 0   100% 0 0   100%
src/footman/context.py TimedOut   92% 12 1 0   75% 4 1   88%
src/footman/context.py Status   100% 0 0 8   100% 0 0   100%
src/footman/context.py _Router   82% 17 3 0   75% 4 1   81%
src/footman/context.py _Answers   96% 46 2 0   100% 30 0   97%
src/footman/context.py Invocation   100% 8 0 0   100% 4 0   100%
src/footman/context.py Pending   40% 5 3 0   100% 0 0   40%
src/footman/context.py Fanout   98% 43 1 0   88% 8 1   96%
src/footman/context.py (no class)   95% 1275 64 75   89% 390 36   94%
src/footman/docstrings.py Docstring   100% 0 0 0   100% 0 0   100%
src/footman/docstrings.py (no class)   99% 223 3 0   97% 104 3   98%
src/footman/env_files.py (no class)   100% 24 0 0   88% 8 1   97%
src/footman/invocation.py Frozen   100% 0 0 0   100% 0 0   100%
src/footman/invocation.py Invocation   91% 23 2 0   100% 2 0   92%
src/footman/invocation.py (no class)   100% 15 0 2   100% 0 0   100%
src/footman/markdown.py (no class)   99% 166 2 0   95% 66 3   98%
src/footman/params.py Secret   100% 2 0 0   100% 0 0   100%
src/footman/params.py suggest   100% 2 0 0   100% 0 0   100%
src/footman/params.py default   100% 2 0 0   100% 0 0   100%
src/footman/params.py NoSplitMarker   0% 1 1 0   100% 0 0   0%
src/footman/params.py HiddenMarker   0% 1 1 0   100% 0 0   0%
src/footman/params.py ForwardMarker   0% 1 1 0   100% 0 0   0%
src/footman/params.py ArgMarker   0% 1 1 0   100% 0 0   0%
src/footman/params.py PathRequirement   67% 3 1 0   100% 0 0   67%
src/footman/params.py matching   50% 4 2 0   50% 2 1   50%
src/footman/params.py between   100% 2 0 0   100% 0 0   100%
src/footman/params.py env   100% 1 0 0   100% 0 0   100%
src/footman/params.py stdin   100% 4 0 0   100% 2 0   100%
src/footman/params.py StdoutMarker   0% 1 1 0   100% 0 0   0%
src/footman/params.py check   100% 1 0 0   100% 0 0   100%
src/footman/params.py doc   100% 1 0 0   100% 0 0   100%
src/footman/params.py ask   100% 2 0 0   100% 0 0   100%
src/footman/params.py (no class)   98% 105 2 18   100% 0 0   98%
src/footman/profile.py (no class)   94% 136 8 0   85% 46 5   92%
src/footman/pytest_plugin.py _TraceRecorder   100% 25 0 0   100% 6 0   100%
src/footman/pytest_plugin.py (no class)   100% 34 0 5   100% 2 0   100%
src/footman/registry.py GlobalOption   90% 39 4 0   80% 10 2   88%
src/footman/registry.py RegistrationError   100% 0 0 0   100% 0 0   100%
src/footman/registry.py TaskOpts   100% 0 0 0   100% 0 0   100%
src/footman/registry.py _Opted   100% 27 0 0   100% 4 0   100%
src/footman/registry.py _TaskFn   80% 10 2 0   100% 0 0   80%
src/footman/registry.py TaskFn   100% 0 0 8   100% 0 0   100%
src/footman/registry.py TaskDecorator   100% 0 0 2   100% 0 0   100%
src/footman/registry.py GroupFactory   100% 0 0 1   100% 0 0   100%
src/footman/registry.py HookRegistrar   100% 0 0 1   100% 0 0   100%
src/footman/registry.py Group   95% 194 10 5   89% 62 7   93%
src/footman/registry.py TaskView   92% 37 3 0   100% 2 0   92%
src/footman/registry.py Tasks   100% 10 0 0   100% 4 0   100%
src/footman/registry.py (no class)   91% 657 60 80   91% 158 7   91%
src/footman/tasks/__init__.py (no class)   100% 1 0 0   100% 0 0   100%
src/footman/tasks/docs.py Send   100% 0 0 0   100% 0 0   100%
src/footman/tasks/docs.py _Descs   75% 8 2 0   50% 2 1   70%
src/footman/tasks/docs.py (no class)   95% 528 25 2   89% 176 20   94%
src/footman/tasks/new.py (no class)   92% 13 1 0   50% 2 1   87%
src/footman/tasks/self_.py (no class)   89% 131 15 0   85% 48 3   88%
src/footman/testing.py InvokeResult   100% 1 0 0   100% 0 0   100%
src/footman/testing.py Runner   100% 21 0 0   100% 6 0   100%
src/footman/testing.py (no class)   100% 55 0 0   100% 6 0   100%
tasks.py CoverageReport   100% 0 0 0   100% 0 0   100%
tasks.py ToolInput   100% 0 0 0   100% 0 0   100%
tasks.py HookEvent   100% 0 0 0   100% 0 0   100%
tasks.py (no class)   87% 405 54 269   85% 92 6   86%
Total     94% 13584 749 613   90% 5204 412   93%

No items found using the specified filter.