uptime-kuma-api/tests/test_notification.py

58 lines
2.1 KiB
Python
Raw Normal View History

2022-08-02 23:47:56 +02:00
import unittest
2022-08-03 12:35:48 +02:00
2022-08-02 23:47:56 +02:00
from uptime_kuma_api import UptimeKumaException
2022-08-03 12:35:48 +02:00
from uptime_kuma_test_case import UptimeKumaTestCase
2022-08-02 23:47:56 +02:00
class TestNotification(UptimeKumaTestCase):
def test_notification(self):
expected_notification = {
"name": "notification 1",
"default": True,
2022-08-03 11:56:02 +02:00
"applyExisting": True,
"type": "PushByTechulus",
"pushAPIKey": "123456789"
2022-08-02 23:47:56 +02:00
}
# test notification
with self.assertRaisesRegex(UptimeKumaException, r'Invalid API key'):
self.api.test_notification(**expected_notification)
# add notification
r = self.api.add_notification(**expected_notification)
self.assertEqual(r["msg"], "Saved")
notification_id = r["id"]
# get notification
notification = self.api.get_notification(notification_id)
self.compare(notification, expected_notification)
# get notifications
notifications = self.api.get_notifications()
notification = self.find_by_id(notifications, notification_id)
self.assertIsNotNone(notification)
self.compare(notification, expected_notification)
# edit notification
expected_notification["name"] = "notification 1 new"
expected_notification["default"] = False
2022-08-03 11:56:02 +02:00
expected_notification["applyExisting"] = False
expected_notification["type"] = "PushDeer"
expected_notification["pushdeerKey"] = "987654321"
del expected_notification["pushAPIKey"]
2022-08-02 23:47:56 +02:00
r = self.api.edit_notification(notification_id, **expected_notification)
self.assertEqual(r["msg"], "Saved")
notification = self.api.get_notification(notification_id)
self.compare(notification, expected_notification)
2022-08-03 11:56:02 +02:00
self.assertIsNone(notification.get("pushAPIKey"))
2022-08-02 23:47:56 +02:00
# delete notification
r = self.api.delete_notification(notification_id)
self.assertEqual(r["msg"], "Deleted")
with self.assertRaises(UptimeKumaException):
self.api.delete_notification(notification_id)
if __name__ == '__main__':
unittest.main()