import importlib.util import sys from pathlib import Path MODULE_DIR = ( Path(__file__).resolve().parents[2] / "cronjobs" / "team-workflow" / "daily-oncall-metrics" ) def load_module(module_name: str, filename: str): """Load a module from the daily-oncall-metrics directory.""" sys.path.insert(0, str(MODULE_DIR)) try: sys.modules.pop(module_name, None) spec = importlib.util.spec_from_file_location(module_name, MODULE_DIR / filename) module = importlib.util.module_from_spec(spec) assert spec.loader is not None spec.loader.exec_module(module) return module finally: sys.path.pop(0) def test_jira_sync_summary_counts_only_new_tcoc(monkeypatch): jira_ticket_sync = load_module("jira_ticket_sync_test_sync", "jira_ticket_sync.py") processed = {} monkeypatch.setattr(jira_ticket_sync, "query_tcoc", lambda date_str=None: [{"key": "TCOC-1"}]) monkeypatch.setattr( jira_ticket_sync, "query_open_tcoc_for_status_sync", lambda: [{"key": "TCOC-9"}], ) def fake_process_tcoc(issues, date_str=None): processed["tcoc_keys"] = [issue["key"] for issue in issues] return {"added": 1, "updated": 1} monkeypatch.setattr(jira_ticket_sync, "process_tcoc_issues", fake_process_tcoc) monkeypatch.setattr( jira_ticket_sync, "query_alerts", lambda date_str=None: [{"key": "O11Y-1"}, {"key": "O11Y-2"}], ) monkeypatch.setattr( jira_ticket_sync, "process_alert_issues", lambda issues, date_str=None: {"added": len(issues), "updated": 0}, ) result = jira_ticket_sync.sync("20260330") assert processed["tcoc_keys"] == ["TCOC-1", "TCOC-9"] assert result["tcoc"] == 1 assert result["alert"] == 2 def test_query_tcoc_uses_documented_components(monkeypatch): jira_ticket_sync = load_module("jira_ticket_sync_test_tcoc_jql", "jira_ticket_sync.py") captured = {} def fake_query_jira(jql, fields=""): captured["jql"] = jql return {"issues": [], "total": 0} monkeypatch.setattr(jira_ticket_sync, "query_jira", fake_query_jira) jira_ticket_sync.query_tcoc("20260330") assert "Cloud Import" in captured["jql"] assert "TiCDC" in captured["jql"] assert "Dataservice" not in captured["jql"] def test_query_alerts_matches_documented_filter(monkeypatch): jira_ticket_sync = load_module("jira_ticket_sync_test_alert_jql", "jira_ticket_sync.py") captured = {} def fake_query_jira(jql, fields=""): captured["jql"] = jql return {"issues": [], "total": 0} monkeypatch.setattr(jira_ticket_sync, "query_jira", fake_query_jira) jira_ticket_sync.query_alerts("20260330") assert 'component IN (br, import-controller, tcidm-regional, ticdc, ticdc-kernel)' in captured["jql"] assert '"Engineer Leader" != 623304991c09d2007014ce4f' in captured["jql"] assert "lightning" not in captured["jql"] assert " DM," not in captured["jql"]