Coverage report:
9%
hide covered
Files
Functions
Classes
coverage.py v7.13.4
, created at 2026-03-02 17:44 +0800
File
class
statements
missing
excluded
coverage
health / __init__.py
(no class)
1
0
0
100%
health / analytics / __init__.py
(no class)
0
0
0
100%
health / analytics / engine.py
HealthAnalyst
87
87
0
0%
health / analytics / engine.py
(no class)
16
16
0
0%
health / analytics / weekly_report.py
WeeklyReportGenerator
201
201
0
0%
health / analytics / weekly_report.py
(no class)
18
18
0
0%
health / cli / __init__.py
(no class)
0
0
0
100%
health / cli / manual.py
(no class)
102
102
0
0%
health / cli / obsidian.py
(no class)
30
30
0
0%
health / cli / query.py
(no class)
302
302
0
0%
health / cli / sync.py
(no class)
150
150
0
0%
health / config.py
(no class)
27
3
0
89%
health / db / __init__.py
(no class)
0
0
0
100%
health / db / repository.py
HealthRepository
58
58
0
0%
health / db / repository.py
(no class)
20
20
0
0%
health / db / schema.py
(no class)
44
44
0
0%
health / models / __init__.py
(no class)
0
0
0
100%
health / models / activity.py
Activity
0
0
0
100%
health / models / activity.py
ActivityDetail
0
0
0
100%
health / models / activity.py
(no class)
33
0
0
100%
health / models / body_metrics.py
WeightData
0
0
0
100%
health / models / body_metrics.py
BodyComposition
0
0
0
100%
health / models / body_metrics.py
(no class)
25
0
0
100%
health / models / daily_metrics.py
StepsData
0
0
0
100%
health / models / daily_metrics.py
HeartRateData
0
0
0
100%
health / models / daily_metrics.py
SleepData
0
0
0
100%
health / models / daily_metrics.py
StressData
0
0
0
100%
health / models / daily_metrics.py
BodyBatteryData
0
0
0
100%
health / models / daily_metrics.py
SpO2Data
0
0
0
100%
health / models / daily_metrics.py
RespirationData
0
0
0
100%
health / models / daily_metrics.py
HydrationData
0
0
0
100%
health / models / daily_metrics.py
FloorsData
0
0
0
100%
health / models / daily_metrics.py
IntensityMinutesData
0
0
0
100%
health / models / daily_metrics.py
HRVData
0
0
0
100%
health / models / daily_metrics.py
RHRData
0
0
0
100%
health / models / daily_metrics.py
LifestyleLoggingData
0
0
0
100%
health / models / daily_metrics.py
(no class)
112
0
0
100%
health / models / manual_log.py
DietEntry
0
0
0
100%
health / models / manual_log.py
AlcoholEntry
0
0
0
100%
health / models / manual_log.py
SupplementEntry
0
0
0
100%
health / models / manual_log.py
BodyFeelingEntry
0
0
0
100%
health / models / manual_log.py
DailyManualLog
0
0
0
100%
health / models / manual_log.py
(no class)
43
43
0
0%
health / models / sync_metadata.py
SyncRecord
0
0
0
100%
health / models / sync_metadata.py
LastSyncState
0
0
0
100%
health / models / sync_metadata.py
(no class)
17
17
0
0%
health / services / __init__.py
(no class)
0
0
0
100%
health / services / data_sync.py
HealthDataSync
164
164
0
0%
health / services / data_sync.py
(no class)
21
21
0
0%
health / services / garmin_client.py
GarminHealthClient
293
271
0
8%
health / services / garmin_client.py
(no class)
33
0
0
100%
health / services / manual_log_storage.py
ManualLogStorage
68
68
0
0%
health / services / manual_log_storage.py
(no class)
19
19
0
0%
health / services / obsidian.py
ObsidianSyncService
78
78
0
0%
health / services / obsidian.py
(no class)
18
18
0
0%
health / services / query.py
HealthDataQuery
73
73
0
0%
health / services / query.py
(no class)
17
17
0
0%
health / services / storage.py
HealthStorage
81
81
0
0%
health / services / storage.py
(no class)
23
23
0
0%
health / utils / __init__.py
(no class)
0
0
0
100%
health / utils / date_utils.py
(no class)
22
22
0
0%
health / utils / env_loader.py
(no class)
14
1
0
93%
health / utils / exceptions.py
HealthSyncError
0
0
0
100%
health / utils / exceptions.py
GarminAuthError
0
0
0
100%
health / utils / exceptions.py
GarminAPIError
2
2
0
0%
health / utils / exceptions.py
DataValidationError
0
0
0
100%
health / utils / exceptions.py
StorageError
0
0
0
100%
health / utils / exceptions.py
SyncError
0
0
0
100%
health / utils / exceptions.py
RateLimitError
1
1
0
0%
health / utils / exceptions.py
(no class)
14
0
0
100%
health / utils / logging_config.py
(no class)
26
1
0
96%
health / utils / time_utils.py
(no class)
8
8
0
0%
slack_bot / __init__.py
(no class)
0
0
0
100%
slack_bot / dispatcher.py
MessageDispatcher
299
299
0
0%
slack_bot / dispatcher.py
(no class)
15
15
0
0%
slack_bot / llm / base.py
BaseLLM
2
2
0
0%
slack_bot / llm / base.py
(no class)
7
0
0
100%
slack_bot / main.py
(no class)
110
110
0
0%
slack_bot / obsidian / __init__.py
(no class)
0
0
0
100%
slack_bot / obsidian / cli.py
ObsidianShell
65
65
0
0%
slack_bot / obsidian / cli.py
(no class)
26
26
0
0%
slack_bot / obsidian / dispatcher.py
ObsidianContextStorage
17
17
0
0%
slack_bot / obsidian / dispatcher.py
ObsidianDispatcher
97
97
0
0%
slack_bot / obsidian / dispatcher.py
(no class)
23
23
0
0%
slack_bot / obsidian / generators.py
BaseGenerator
12
12
0
0%
slack_bot / obsidian / generators.py
WritingAssistant
22
22
0
0%
slack_bot / obsidian / generators.py
ReplyGenerator
17
17
0
0%
slack_bot / obsidian / generators.py
DecisionSupport
17
17
0
0%
slack_bot / obsidian / generators.py
SearchAnalyzer
37
37
0
0%
slack_bot / obsidian / generators.py
DeAIReviser
16
16
0
0%
slack_bot / obsidian / generators.py
ZhihuGenerator
24
24
0
0%
slack_bot / obsidian / generators.py
(no class)
25
25
0
0%
slack_bot / obsidian / indexer.py
ObsidianIndexer
95
95
0
0%
slack_bot / obsidian / indexer.py
(no class)
17
17
0
0%
slack_bot / shell / __init__.py
(no class)
0
0
0
100%
slack_bot / shell / help_text.py
(no class)
1
1
0
0%
slack_bot / shell / manager.py
ShellManager
11
11
0
0%
slack_bot / shell / manager.py
(no class)
10
10
0
0%
slack_bot / shell / session.py
ShellSession
49
49
0
0%
slack_bot / shell / session.py
(no class)
16
16
0
0%
slack_bot / shell_main.py
(no class)
119
119
0
0%
Total
3410
3101
0
9%
No items found using the specified filter.