Skip to content

Commit 841eb42

Browse files
committed
Add unit tests for SwanlabMonitor functionality
1 parent 0ed5969 commit 841eb42

File tree

2 files changed

+41
-1
lines changed

2 files changed

+41
-1
lines changed

tests/utils/swanlab_test.py

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
import os
2+
import unittest
3+
4+
5+
class TestSwanlabMonitor(unittest.TestCase):
6+
@classmethod
7+
def setUpClass(cls):
8+
# Ensure an env-based key path is exercised (uses dummy if not provided)
9+
cls.env_keys = ["SWANLAB_API_KEY", "SWANLAB_APIKEY", "SWANLAB_KEY", "SWANLAB_TOKEN"]
10+
cls._original_env = {k: os.environ.get(k) for k in cls.env_keys}
11+
if not any(os.getenv(k) for k in cls.env_keys):
12+
os.environ["SWANLAB_API_KEY"] = "dummy_key_for_smoke_test"
13+
14+
@classmethod
15+
def tearDownClass(cls):
16+
# Restore original environment variables
17+
for k, v in cls._original_env.items():
18+
if v is None:
19+
os.environ.pop(k, None)
20+
else:
21+
os.environ[k] = v
22+
23+
def test_swanlab_monitor_smoke(self):
24+
from trinity.utils.monitor import SwanlabMonitor
25+
26+
# Try creating the monitor; if swanlab isn't installed, __init__ will assert
27+
mon = SwanlabMonitor(
28+
project="trinity-smoke",
29+
group="cradle",
30+
name="swanlab-env",
31+
role="tester",
32+
)
33+
34+
# Log a minimal metric to verify basic flow
35+
mon.log({"smoke/metric": 1.0}, step=1)
36+
mon.close()
37+
38+
39+
if __name__ == "__main__":
40+
unittest.main()

trinity/utils/monitor.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -308,7 +308,7 @@ def __init__(
308308
"mode": monitor_args.get("mode") or "cloud",
309309
"settings": monitor_args.get("settings"),
310310
"id": monitor_args.get("id"),
311-
"config": config.flatten(),
311+
"config": config.flatten() if config is not None else None,
312312
"resume": monitor_args.get("resume"),
313313
"reinit": monitor_args.get("reinit"),
314314
}

0 commit comments

Comments
 (0)