# limitations under the License.
# ==================================================================================
import json
+import pytest
import time
from ricxappframe.alarm import alarm
-from ricxappframe.alarm.alarm import AlarmAction, AlarmDetail, AlarmManager, AlarmSeverity
+from ricxappframe.alarm.alarm import AlarmAction, AlarmDetail, AlarmManager, AlarmSeverity, ALARM_MGR_SERVICE_NAME_ENV, ALARM_MGR_SERVICE_PORT_ENV
+from ricxappframe.alarm.exceptions import InitFailed
from ricxappframe.rmr import rmr
MRC_SEND = None
test alarm module teardown
"""
rmr.rmr_close(MRC_SEND)
+ rmr.rmr_close(MRC_RCV)
-def test_alarm_set_get():
+def test_alarm_set_get(monkeypatch):
"""
test set functions
"""
assert det[alarm.KEY_IDENTIFYING_INFO] == "4"
assert det[alarm.KEY_ADDITIONAL_INFO] == "5"
+ # missing environment variables
+ with pytest.raises(InitFailed):
+ alarm.AlarmManager(MRC_SEND, "missing", "envvars")
+
+ # invalid environment variables
+ monkeypatch.setenv(ALARM_MGR_SERVICE_NAME_ENV, "0")
+ monkeypatch.setenv(ALARM_MGR_SERVICE_PORT_ENV, "a")
+ with pytest.raises(InitFailed):
+ alarm.AlarmManager(MRC_SEND, "bogus", "envvars")
+
+ # good environment variables
+ monkeypatch.setenv(ALARM_MGR_SERVICE_NAME_ENV, "127.0.0.1") # do NOT use localhost
+ monkeypatch.setenv(ALARM_MGR_SERVICE_PORT_ENV, "4567") # any int is ok here
mgr = alarm.AlarmManager(MRC_SEND, "moid2", "appid2")
assert mgr is not None
assert mgr.managed_object_id == "moid2"
assert data[alarm.KEY_ALARM_ACTION] == action.name
-def test_alarm_manager():
+def test_alarm_manager(monkeypatch):
"""
test send functions and ensure a message arrives
"""
+ monkeypatch.setenv(ALARM_MGR_SERVICE_NAME_ENV, "127.0.0.1") # do NOT use localhost
+ monkeypatch.setenv(ALARM_MGR_SERVICE_PORT_ENV, "4567") # must match rcv port above
mgr = AlarmManager(MRC_SEND, "moid", "appid")
assert mgr is not None