36 lines
1.3 KiB
Python
36 lines
1.3 KiB
Python
#!/usr/bin/env python3
|
|
import importlib.util
|
|
from datetime import date
|
|
from pathlib import Path
|
|
|
|
|
|
MODULE_PATH = Path(__file__).with_name("aw-worktime-influx-exporter.py")
|
|
SPEC = importlib.util.spec_from_file_location("aw_worktime_influx_exporter", MODULE_PATH)
|
|
MODULE = importlib.util.module_from_spec(SPEC)
|
|
SPEC.loader.exec_module(MODULE)
|
|
|
|
|
|
def test_build_lines_for_day_emits_daily_hourly_and_summary(monkeypatch):
|
|
bounds = MODULE.WORKTIME.get_report_bounds(date(2026, 5, 14))
|
|
events = [
|
|
{
|
|
"timestamp": "2026-05-14T06:00:00Z",
|
|
"duration": 0.0,
|
|
"data": {
|
|
"username": "user5",
|
|
"userId": "WORKGROUP\\user5",
|
|
"sessionId": 4,
|
|
"state": "Активно",
|
|
"active": True,
|
|
"sampleSeconds": 1800,
|
|
},
|
|
}
|
|
]
|
|
|
|
monkeypatch.setattr(MODULE.WORKTIME, "fetch_events_for_date", lambda host, report_date: (bounds, events))
|
|
lines = MODULE.build_lines_for_day("SHARKON2025", date(2026, 5, 14))
|
|
|
|
assert any(line.startswith("aw_rdp_worktime_daily,") for line in lines)
|
|
assert any(line.startswith("aw_rdp_worktime_hourly,") for line in lines)
|
|
assert any(line.startswith("aw_rdp_worktime_summary_daily,") for line in lines)
|