uptime-kuma-api/tests/uptime_kuma_test_case.py

75 lines
2 KiB
Python
Raw Normal View History

import json
2022-08-02 23:47:56 +02:00
import unittest
2022-08-03 12:35:48 +02:00
from uptime_kuma_api import UptimeKumaApi, Event, MonitorType
2022-08-02 23:47:56 +02:00
token = None
2022-08-26 14:04:43 +02:00
def compare(subset, superset):
for key, value in subset.items():
value2 = superset.get(key)
if type(value) == list:
for i in range(len(value)):
if not value2 or not compare(value[i], value2[i]):
return False
elif type(value) == dict:
if not compare(value, value2):
return False
else:
if value != value2:
return False
return True
2022-08-02 23:47:56 +02:00
class UptimeKumaTestCase(unittest.TestCase):
api = None
url = "http://127.0.0.1:3001"
username = "admin"
password = "secret123"
2022-08-02 23:47:56 +02:00
def setUp(self):
self.api = UptimeKumaApi(self.url)
global token
if not token:
if self.api.need_setup():
self.api.setup(self.username, self.password)
r = self.api.login(self.username, self.password)
token = r["token"]
self.api.login_by_token(token)
data = {
"version": "1.17.1",
"notificationList": [],
"monitorList": [],
"proxyList": []
}
data_str = json.dumps(data)
r = self.api.upload_backup(data_str, "overwrite")
self.assertEqual(r["msg"], "Backup successfully restored.")
self.api._event_data[Event.MONITOR_LIST] = {}
2022-08-02 23:47:56 +02:00
def tearDown(self):
self.api.disconnect()
2022-08-02 23:47:56 +02:00
def compare(self, superset, subset):
2022-08-26 14:04:43 +02:00
self.assertTrue(compare(subset, superset))
2022-08-02 23:47:56 +02:00
def find_by_id(self, objects, value, key="id"):
for obj in objects:
if obj[key] == value:
return obj
2022-08-03 12:35:48 +02:00
def add_monitor(self):
2022-08-26 14:04:43 +02:00
r = self.api.add_monitor(type=MonitorType.HTTP, name="monitor 1", url="http://127.0.0.1")
2022-08-03 12:35:48 +02:00
monitor_id = r["monitorID"]
return monitor_id
def add_tag(self):
r = self.api.add_tag(name="tag 1", color="#ffffff")
tag_id = r["id"]
return tag_id