38 lines
1.2 KiB
Python
38 lines
1.2 KiB
Python
import os
|
|
from unittest.mock import patch
|
|
|
|
from minitor.main import call_output
|
|
from minitor.main import Minitor
|
|
|
|
|
|
class TestMinitor(object):
|
|
def test_call_output(self):
|
|
# valid command should have result and no exception
|
|
output, ex = call_output(["echo", "test"])
|
|
assert output == b"test"
|
|
assert ex is None
|
|
|
|
output, ex = call_output(["ls", "--not-a-real-flag"])
|
|
assert output.startswith(b"ls: ")
|
|
assert ex is not None
|
|
|
|
def test_run(self):
|
|
"""Doesn't really check much, but a simple integration sanity test"""
|
|
test_loop_count = 5
|
|
os.environ.update(
|
|
{
|
|
"MAILGUN_API_KEY": "test-mg-key",
|
|
"AVAILABLE_NUMBER": "555-555-5050",
|
|
"MY_PHONE": "555-555-0505",
|
|
"ACCOUNT_SID": "test-account-id",
|
|
"AUTH_TOKEN": "test-account-token",
|
|
}
|
|
)
|
|
args = "--config ./sample-config.yml".split(" ")
|
|
minitor = Minitor()
|
|
with patch.object(minitor, "_loop"):
|
|
minitor.run(args)
|
|
# Skip the loop, but run a single check
|
|
for _ in range(test_loop_count):
|
|
minitor._check()
|