Coverage report: 100%

Files Functions Classes

coverage.py v7.8.0, created at 2025-09-23 21:54 +0000

File class statements missing excluded branches partial coverage
src/prosemark/__init__.py (no class) 0 0 0 0 0 100%
src/prosemark/adapters/__init__.py (no class) 11 0 0 0 0 100%
src/prosemark/adapters/binder_repo_fs.py BinderRepoFs 48 0 0 10 0 100%
src/prosemark/adapters/binder_repo_fs.py (no class) 15 0 2 0 0 100%
src/prosemark/adapters/binder_scaffold.py (no class) 34 0 3 8 0 100%
src/prosemark/adapters/clock_system.py ClockSystem 1 0 0 0 0 100%
src/prosemark/adapters/clock_system.py (no class) 4 0 0 0 0 100%
src/prosemark/adapters/console_pretty.py ConsolePretty 18 0 0 10 0 100%
src/prosemark/adapters/console_pretty.py (no class) 10 0 2 0 0 100%
src/prosemark/adapters/daily_repo_fs.py DailyRepoFs 22 0 0 2 0 100%
src/prosemark/adapters/daily_repo_fs.py (no class) 10 0 0 0 0 100%
src/prosemark/adapters/editor_launcher_system.py EditorLauncherSystem 49 0 0 22 0 100%
src/prosemark/adapters/editor_launcher_system.py (no class) 18 0 0 0 0 100%
src/prosemark/adapters/fake_clock.py FakeClock 2 0 0 0 0 100%
src/prosemark/adapters/fake_clock.py (no class) 4 0 0 0 0 100%
src/prosemark/adapters/fake_config.py FakeConfigPort 4 0 0 0 0 100%
src/prosemark/adapters/fake_config.py (no class) 7 0 0 0 0 100%
src/prosemark/adapters/fake_console.py FakeConsolePort 8 0 4 0 0 100%
src/prosemark/adapters/fake_console.py (no class) 11 0 2 0 0 100%
src/prosemark/adapters/fake_id_generator.py FakeIdGenerator 7 0 31 0 0 100%
src/prosemark/adapters/fake_id_generator.py (no class) 6 0 3 0 0 100%
src/prosemark/adapters/fake_logger.py FakeLogger 36 0 8 14 0 100%
src/prosemark/adapters/fake_logger.py (no class) 25 0 0 0 0 100%
src/prosemark/adapters/fake_node_repo.py FakeNodeRepo 50 0 52 10 0 100%
src/prosemark/adapters/fake_node_repo.py (no class) 24 0 4 0 0 100%
src/prosemark/adapters/fake_storage.py FakeBinderRepo 4 0 3 0 0 100%
src/prosemark/adapters/fake_storage.py (no class) 8 0 2 0 0 100%
src/prosemark/adapters/frontmatter_codec.py FrontmatterCodec 54 0 0 28 0 100%
src/prosemark/adapters/frontmatter_codec.py (no class) 18 0 0 0 0 100%
src/prosemark/adapters/id_generator.py SimpleIdGenerator 1 0 0 0 0 100%
src/prosemark/adapters/id_generator.py (no class) 4 0 0 0 0 100%
src/prosemark/adapters/id_generator_uuid7.py IdGeneratorUuid7 1 0 0 0 0 100%
src/prosemark/adapters/id_generator_uuid7.py (no class) 4 0 0 0 0 100%
src/prosemark/adapters/logger_stdout.py LoggerStdout 6 0 6 0 0 100%
src/prosemark/adapters/logger_stdout.py (no class) 10 0 0 0 0 100%
src/prosemark/adapters/markdown_binder_parser.py MarkdownBinderParser 67 0 2 34 0 100%
src/prosemark/adapters/markdown_binder_parser.py (no class) 24 0 0 0 0 100%
src/prosemark/adapters/node_repo_fs.py NodeRepoFs 118 0 2 38 0 100%
src/prosemark/adapters/node_repo_fs.py (no class) 24 0 0 0 0 100%
src/prosemark/app/__init__.py (no class) 2 0 0 0 0 100%
src/prosemark/app/add_node.py AddNode 34 0 0 14 0 100%
src/prosemark/app/add_node.py (no class) 7 0 7 0 0 100%
src/prosemark/app/audit_project.py PlaceholderIssue 0 0 0 0 0 100%
src/prosemark/app/audit_project.py MissingIssue 0 0 0 0 0 100%
src/prosemark/app/audit_project.py OrphanIssue 0 0 0 0 0 100%
src/prosemark/app/audit_project.py MismatchIssue 0 0 0 0 0 100%
src/prosemark/app/audit_project.py AuditReport 1 0 0 0 0 100%
src/prosemark/app/audit_project.py AuditProject 72 0 3 40 0 100%
src/prosemark/app/audit_project.py (no class) 37 0 5 0 0 100%
src/prosemark/app/init_project.py InitProject 14 0 0 2 0 100%
src/prosemark/app/init_project.py (no class) 6 0 4 0 0 100%
src/prosemark/app/materialize_all_placeholders.py MaterializeAllPlaceholders 70 0 0 30 0 100%
src/prosemark/app/materialize_all_placeholders.py (no class) 19 0 7 0 0 100%
src/prosemark/app/materialize_node.py MaterializeNode 28 0 3 6 0 100%
src/prosemark/app/materialize_node.py (no class) 8 0 7 0 0 100%
src/prosemark/app/move_node.py MoveNode 42 0 7 20 0 100%
src/prosemark/app/move_node.py (no class) 10 0 4 0 0 100%
src/prosemark/app/remove_node.py RemoveNode 38 0 0 20 0 100%
src/prosemark/app/remove_node.py (no class) 8 0 5 0 0 100%
src/prosemark/app/use_cases.py PlaceholderIssue 0 0 0 0 0 100%
src/prosemark/app/use_cases.py MissingIssue 0 0 0 0 0 100%
src/prosemark/app/use_cases.py OrphanIssue 0 0 0 0 0 100%
src/prosemark/app/use_cases.py MismatchIssue 0 0 0 0 0 100%
src/prosemark/app/use_cases.py AuditReport 23 0 0 10 0 100%
src/prosemark/app/use_cases.py InitProject 25 0 0 2 0 100%
src/prosemark/app/use_cases.py AddNode 33 0 1 8 0 100%
src/prosemark/app/use_cases.py EditPart 19 0 0 4 0 100%
src/prosemark/app/use_cases.py MoveNode 71 0 2 36 0 100%
src/prosemark/app/use_cases.py RemoveNode 50 0 1 26 0 100%
src/prosemark/app/use_cases.py WriteFreeform 20 0 0 2 0 100%
src/prosemark/app/use_cases.py ShowStructure 69 0 0 30 0 100%
src/prosemark/app/use_cases.py MaterializeNode 33 0 4 10 0 100%
src/prosemark/app/use_cases.py AuditBinder 106 0 5 30 0 100%
src/prosemark/app/use_cases.py (no class) 89 0 10 0 0 100%
src/prosemark/cli/__init__.py (no class) 11 0 0 0 0 100%
src/prosemark/cli/add.py (no class) 60 0 0 6 0 100%
src/prosemark/cli/audit.py (no class) 66 0 0 36 0 100%
src/prosemark/cli/edit.py (no class) 41 0 0 4 0 100%
src/prosemark/cli/init.py FileSystemConfigPort 3 0 0 0 0 100%
src/prosemark/cli/init.py (no class) 42 0 0 0 0 100%
src/prosemark/cli/main.py MaterializationResult 0 0 0 0 0 100%
src/prosemark/cli/main.py FileSystemConfigPort 3 0 0 0 0 100%
src/prosemark/cli/main.py (no class) 459 0 2 112 0 100%
src/prosemark/cli/materialize.py (no class) 37 0 0 0 0 100%
src/prosemark/cli/move.py (no class) 37 0 0 4 0 100%
src/prosemark/cli/remove.py (no class) 41 0 0 4 0 100%
src/prosemark/cli/structure.py (no class) 38 0 2 8 0 100%
src/prosemark/cli/write.py (no class) 30 0 0 0 0 100%
src/prosemark/domain/__init__.py (no class) 0 0 0 0 0 100%
src/prosemark/domain/batch_materialize_result.py BatchMaterializeResult 22 0 3 10 0 100%
src/prosemark/domain/batch_materialize_result.py (no class) 21 0 0 2 0 100%
src/prosemark/domain/binder.py Item 0 0 0 0 0 100%
src/prosemark/domain/binder.py (no class) 7 0 0 0 0 100%
src/prosemark/domain/entities.py Node 45 0 0 18 0 100%
src/prosemark/domain/entities.py FreeformContent 93 0 0 30 0 100%
src/prosemark/domain/entities.py (no class) 63 0 0 0 0 100%
src/prosemark/domain/materialize_failure.py MaterializeFailure 21 0 0 10 0 100%
src/prosemark/domain/materialize_failure.py (no class) 18 0 0 0 0 100%
src/prosemark/domain/materialize_result.py MaterializeResult 26 0 0 10 0 100%
src/prosemark/domain/materialize_result.py (no class) 20 0 0 0 0 100%
src/prosemark/domain/models.py NodeId 32 0 3 6 0 100%
src/prosemark/domain/models.py BinderItem 42 0 0 16 0 100%
src/prosemark/domain/models.py Binder 55 0 0 32 0 100%
src/prosemark/domain/models.py NodeMetadata 23 0 0 10 0 100%
src/prosemark/domain/models.py (no class) 61 0 0 0 0 100%
src/prosemark/domain/placeholder_summary.py PlaceholderSummary 26 0 0 12 0 100%
src/prosemark/domain/placeholder_summary.py (no class) 18 0 0 0 0 100%
src/prosemark/domain/policies.py (no class) 29 0 8 18 0 100%
src/prosemark/exceptions.py ProsemarkError 0 0 0 0 0 100%
src/prosemark/exceptions.py BinderIntegrityError 0 0 0 0 0 100%
src/prosemark/exceptions.py NodeIdentityError 0 0 0 0 0 100%
src/prosemark/exceptions.py BinderNotFoundError 0 0 0 0 0 100%
src/prosemark/exceptions.py NodeNotFoundError 0 0 0 0 0 100%
src/prosemark/exceptions.py BinderFormatError 0 0 0 0 0 100%
src/prosemark/exceptions.py FileSystemError 0 0 0 0 0 100%
src/prosemark/exceptions.py ProsemarkFileExistsError 0 0 0 0 0 100%
src/prosemark/exceptions.py EditorLaunchError 0 0 0 0 0 100%
src/prosemark/exceptions.py PlaceholderNotFoundError 0 0 0 0 0 100%
src/prosemark/exceptions.py AlreadyMaterializedError 0 0 0 0 0 100%
src/prosemark/exceptions.py EditorNotFoundError 0 0 0 0 0 100%
src/prosemark/exceptions.py FreeformContentValidationError 0 0 0 0 0 100%
src/prosemark/exceptions.py NodeValidationError 0 0 0 0 0 100%
src/prosemark/exceptions.py NodeAlreadyExistsError 0 0 0 0 0 100%
src/prosemark/exceptions.py FrontmatterFormatError 0 0 0 0 0 100%
src/prosemark/exceptions.py InvalidPartError 0 0 0 0 0 100%
src/prosemark/exceptions.py EditorError 0 0 0 0 0 100%
src/prosemark/exceptions.py (no class) 18 0 0 0 0 100%
src/prosemark/ports/__init__.py (no class) 10 0 0 0 0 100%
src/prosemark/ports/binder_repo.py BinderRepo 0 0 0 0 0 100%
src/prosemark/ports/binder_repo.py (no class) 7 0 2 0 0 100%
src/prosemark/ports/clock.py Clock 0 0 2 0 0 100%
src/prosemark/ports/clock.py (no class) 4 0 0 0 0 100%
src/prosemark/ports/config_port.py ProsemarkConfig 0 0 0 0 0 100%
src/prosemark/ports/config_port.py ConfigPort 0 0 6 0 0 100%
src/prosemark/ports/config_port.py (no class) 14 0 0 0 0 100%
src/prosemark/ports/console_port.py ConsolePort 14 0 2 6 0 100%
src/prosemark/ports/console_port.py (no class) 11 0 2 0 0 100%
src/prosemark/ports/daily_repo.py DailyRepo 0 0 0 0 0 100%
src/prosemark/ports/daily_repo.py (no class) 4 0 0 0 0 100%
src/prosemark/ports/editor_port.py EditorPort 0 0 1 0 0 100%
src/prosemark/ports/editor_port.py (no class) 4 0 0 0 0 100%
src/prosemark/ports/id_generator.py IdGenerator 0 0 2 0 0 100%
src/prosemark/ports/id_generator.py (no class) 5 0 2 0 0 100%
src/prosemark/ports/logger.py Logger 0 0 10 0 0 100%
src/prosemark/ports/logger.py (no class) 12 0 0 0 0 100%
src/prosemark/ports/node_repo.py NodeRepo 0 0 0 0 0 100%
src/prosemark/ports/node_repo.py (no class) 17 0 2 0 0 100%
Total   3311 0 250 820 0 100%

No items found using the specified filter.