Skip to content

Commit

Permalink
feat: drop support for Uptime Kuma versions < 1.21.3
Browse files Browse the repository at this point in the history
BREAKING CHANGE: Uptime Kuma versions < 1.21.3 are not supported in uptime-kuma-api 1.x.x
  • Loading branch information
lucasheld committed May 20, 2023
1 parent 77630e9 commit f0c5f2b
Show file tree
Hide file tree
Showing 10 changed files with 59 additions and 179 deletions.
9 changes: 1 addition & 8 deletions tests/test_api_key.py
Original file line number Diff line number Diff line change
@@ -1,17 +1,10 @@
import unittest
from packaging.version import parse as parse_version

from uptime_kuma_api import DockerType, UptimeKumaException
from uptime_kuma_api import UptimeKumaException
from uptime_kuma_test_case import UptimeKumaTestCase


class TestApiKey(UptimeKumaTestCase):
def setUp(self):
super(TestApiKey, self).setUp()
if parse_version(self.api.version) < parse_version("1.21"):
super(TestApiKey, self).tearDown()
self.skipTest("Unsupported in this Uptime Kuma version")

def test_api_key(self):
# get empty list to make sure that future accesses will also work
self.api.get_api_keys()
Expand Down
7 changes: 0 additions & 7 deletions tests/test_docker_host.py
Original file line number Diff line number Diff line change
@@ -1,17 +1,10 @@
import unittest
from packaging.version import parse as parse_version

from uptime_kuma_api import DockerType, UptimeKumaException
from uptime_kuma_test_case import UptimeKumaTestCase


class TestDockerHost(UptimeKumaTestCase):
def setUp(self):
super(TestDockerHost, self).setUp()
if parse_version(self.api.version) < parse_version("1.18"):
super(TestDockerHost, self).tearDown()
self.skipTest("Unsupported in this Uptime Kuma version")

def test_docker_host(self):
# get empty list to make sure that future accesses will also work
self.api.get_docker_hosts()
Expand Down
8 changes: 0 additions & 8 deletions tests/test_game_list.py
Original file line number Diff line number Diff line change
@@ -1,17 +1,9 @@
import unittest

from packaging.version import parse as parse_version

from uptime_kuma_test_case import UptimeKumaTestCase


class TestGameList(UptimeKumaTestCase):
def setUp(self):
super(TestGameList, self).setUp()
if parse_version(self.api.version) < parse_version("1.20"):
super(TestGameList, self).tearDown()
self.skipTest("Unsupported in this Uptime Kuma version")

def test_game_list(self):
game_list = self.api.get_game_list()
self.assertTrue("keys" in game_list[0])
Expand Down
19 changes: 2 additions & 17 deletions tests/test_maintenance.py
Original file line number Diff line number Diff line change
@@ -1,18 +1,10 @@
import unittest

from packaging.version import parse as parse_version

from uptime_kuma_api import UptimeKumaException, MaintenanceStrategy
from uptime_kuma_test_case import UptimeKumaTestCase


class TestMaintenance(UptimeKumaTestCase):
def setUp(self):
super(TestMaintenance, self).setUp()
if parse_version(self.api.version) < parse_version("1.19"):
super(TestMaintenance, self).tearDown()
self.skipTest("Unsupported in this Uptime Kuma version")

def test_maintenance(self):
expected_maintenance = {
"title": "maintenance 1",
Expand All @@ -25,14 +17,10 @@ def test_maintenance(self):
"2022-12-29 22:36:00"
],
"weekdays": [],
"daysOfMonth": []
"daysOfMonth": [],
"timezoneOption": "Europe/Berlin"
}

if parse_version(self.api.version) >= parse_version("1.21.2"):
expected_maintenance.update({
"timezoneOption": "Europe/Berlin"
})

# add maintenance
r = self.api.add_maintenance(**expected_maintenance)
self.assertEqual(r["msg"], "Added Successfully.")
Expand Down Expand Up @@ -225,9 +213,6 @@ def test_maintenance_strategy_recurring_day_of_month(self):
self.do_test_maintenance_strategy(expected_maintenance)

def test_maintenance_strategy_cron(self):
if parse_version(self.api.version) < parse_version("1.21.2"):
self.skipTest("Unsupported in this Uptime Kuma version")

expected_maintenance = {
"title": "test",
"description": "test",
Expand Down
60 changes: 14 additions & 46 deletions tests/test_monitor.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import unittest
from packaging.version import parse as parse_version

from uptime_kuma_api import UptimeKumaException, MonitorType, AuthMethod
from uptime_kuma_test_case import UptimeKumaTestCase
Expand All @@ -21,12 +20,9 @@ def test_monitor(self):
"maxretries": 0,
"notificationIDList": [notification_id_1, notification_id_2],
"upsideDown": False,
"url": "http://127.0.0.1"
"url": "http://127.0.0.1",
"resendInterval": 0
}
if parse_version(self.api.version) >= parse_version("1.18"):
expected_monitor.update({
"resendInterval": 0
})

# add monitor
r = self.api.add_monitor(**expected_monitor)
Expand Down Expand Up @@ -132,17 +128,16 @@ def test_monitor_auth_method(self):
}
self.do_test_monitor_type(expected_monitor)

if parse_version(self.api.version) >= parse_version("1.21"):
expected_monitor = {
"type": MonitorType.HTTP,
"name": "monitor 1",
"url": "http://127.0.0.1",
"authMethod": AuthMethod.MTLS,
"tlsCert": "cert",
"tlsKey": "key",
"tlsCa": "ca",
}
self.do_test_monitor_type(expected_monitor)
expected_monitor = {
"type": MonitorType.HTTP,
"name": "monitor 1",
"url": "http://127.0.0.1",
"authMethod": AuthMethod.MTLS,
"tlsCert": "cert",
"tlsKey": "key",
"tlsCa": "ca",
}
self.do_test_monitor_type(expected_monitor)

def test_monitor_type_port(self):
expected_monitor = {
Expand All @@ -157,12 +152,9 @@ def test_monitor_type_ping(self):
expected_monitor = {
"type": MonitorType.PING,
"name": "monitor 1",
"hostname": "127.0.0.1"
"hostname": "127.0.0.1",
"packetSize": 56
}
if parse_version(self.api.version) >= parse_version("1.20"):
expected_monitor.update({
"packetSize": 56
})
self.do_test_monitor_type(expected_monitor)

def test_monitor_type_keyword(self):
Expand All @@ -175,9 +167,6 @@ def test_monitor_type_keyword(self):
self.do_test_monitor_type(expected_monitor)

def test_monitor_type_grpc_keyword(self):
if parse_version(self.api.version) < parse_version("1.19"):
self.skipTest("Unsupported in this Uptime Kuma version")

expected_monitor = {
"type": MonitorType.GRPC_KEYWORD,
"name": "monitor 1",
Expand All @@ -200,9 +189,6 @@ def test_monitor_type_dns(self):
self.do_test_monitor_type(expected_monitor)

def test_monitor_type_docker(self):
if parse_version(self.api.version) < parse_version("1.18"):
self.skipTest("Unsupported in this Uptime Kuma version")

docker_host_id = self.add_docker_host()
expected_monitor = {
"type": MonitorType.DOCKER,
Expand Down Expand Up @@ -232,9 +218,6 @@ def test_monitor_type_steam(self):
self.do_test_monitor_type(expected_monitor)

def test_monitor_type_gamedig(self):
if parse_version(self.api.version) < parse_version("1.20"):
self.skipTest("Unsupported in this Uptime Kuma version")

game_list = self.api.get_game_list()
game = game_list[0]["keys"][0]
expected_monitor = {
Expand Down Expand Up @@ -270,9 +253,6 @@ def test_monitor_type_sqlserver(self):
self.do_test_monitor_type(expected_monitor)

def test_monitor_type_postgres(self):
if parse_version(self.api.version) < parse_version("1.18"):
self.skipTest("Unsupported in this Uptime Kuma version")

expected_monitor = {
"type": MonitorType.POSTGRES,
"name": "monitor 1",
Expand All @@ -282,9 +262,6 @@ def test_monitor_type_postgres(self):
self.do_test_monitor_type(expected_monitor)

def test_monitor_type_mysql(self):
if parse_version(self.api.version) < parse_version("1.19"):
self.skipTest("Unsupported in this Uptime Kuma version")

expected_monitor = {
"type": MonitorType.MYSQL,
"name": "monitor 1",
Expand All @@ -294,9 +271,6 @@ def test_monitor_type_mysql(self):
self.do_test_monitor_type(expected_monitor)

def test_monitor_type_mongodb(self):
if parse_version(self.api.version) < parse_version("1.20"):
self.skipTest("Unsupported in this Uptime Kuma version")

expected_monitor = {
"type": MonitorType.MONGODB,
"name": "monitor 1",
Expand All @@ -305,9 +279,6 @@ def test_monitor_type_mongodb(self):
self.do_test_monitor_type(expected_monitor)

def test_monitor_type_radius(self):
if parse_version(self.api.version) < parse_version("1.18"):
self.skipTest("Unsupported in this Uptime Kuma version")

expected_monitor = {
"type": MonitorType.RADIUS,
"name": "monitor 1",
Expand All @@ -320,9 +291,6 @@ def test_monitor_type_radius(self):
self.do_test_monitor_type(expected_monitor)

def test_monitor_type_redis(self):
if parse_version(self.api.version) < parse_version("1.20"):
self.skipTest("Unsupported in this Uptime Kuma version")

expected_monitor = {
"type": MonitorType.REDIS,
"name": "monitor 1",
Expand Down
17 changes: 4 additions & 13 deletions tests/test_settings.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import json
import unittest
from packaging.version import parse as parse_version

from uptime_kuma_test_case import UptimeKumaTestCase

Expand All @@ -16,20 +15,12 @@ def test_settings(self):
"primaryBaseURL": "",
"steamAPIKey": "",
"tlsExpiryNotifyDays": [7, 14, 21],
"disableAuth": False
"disableAuth": False,
"trustProxy": False,
"serverTimezone": "Europe/Berlin",
"dnsCache": True
}

if parse_version(self.api.version) >= parse_version("1.18"):
expected_settings.update({
"trustProxy": False
})

if parse_version(self.api.version) >= parse_version("1.19"):
expected_settings.update({
"serverTimezone": "Europe/Berlin",
"dnsCache": True,
})

# set settings
r = self.api.set_settings(self.password, **expected_settings)
self.assertEqual(r["msg"], "Saved")
Expand Down
9 changes: 2 additions & 7 deletions tests/test_status_page.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
import unittest

from packaging.version import parse as parse_version

from uptime_kuma_api import UptimeKumaException, IncidentStyle
from uptime_kuma_test_case import UptimeKumaTestCase

Expand Down Expand Up @@ -36,12 +34,9 @@ def test_status_page(self):
}
]
}
]
],
"googleAnalyticsId": ""
}
if parse_version(self.api.version) >= parse_version("1.20"):
expected_status_page.update({
"googleAnalyticsId": ""
})

# add status page
r = self.api.add_status_page(slug, expected_status_page["title"])
Expand Down
17 changes: 7 additions & 10 deletions tests/test_tag.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
import unittest

from packaging.version import parse as parse_version

from uptime_kuma_api import UptimeKumaException
from uptime_kuma_test_case import UptimeKumaTestCase

Expand All @@ -28,14 +26,13 @@ def test_tag(self):
self.assertIsNotNone(tag)
self.compare(tag, expected_tag)

if parse_version(self.api.version) >= parse_version("1.20"):
# edit tag
expected_tag["name"] = "tag 1 new"
expected_tag["color"] = "#000000"
r = self.api.edit_tag(tag_id, **expected_tag)
self.assertEqual(r["msg"], "Saved")
tag = self.api.get_tag(tag_id)
self.compare(tag, expected_tag)
# edit tag
expected_tag["name"] = "tag 1 new"
expected_tag["color"] = "#000000"
r = self.api.edit_tag(tag_id, **expected_tag)
self.assertEqual(r["msg"], "Saved")
tag = self.api.get_tag(tag_id)
self.compare(tag, expected_tag)

# delete tag
r = self.api.delete_tag(tag_id)
Expand Down
34 changes: 15 additions & 19 deletions tests/uptime_kuma_test_case.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
import unittest
import warnings
from packaging.version import parse as parse_version

from uptime_kuma_api import UptimeKumaApi, MonitorType, DockerType, UptimeKumaException
from uptime_kuma_api import UptimeKumaApi, MonitorType, DockerType

token = None

Expand Down Expand Up @@ -74,23 +73,20 @@ def setUp(self):
for status_page in status_pages:
self.api.delete_status_page(status_page["slug"])

if parse_version(self.api.version) >= parse_version("1.18"):
# delete docker hosts
docker_hosts = self.api.get_docker_hosts()
for docker_host in docker_hosts:
self.api.delete_docker_host(docker_host["id"])

if parse_version(self.api.version) >= parse_version("1.19"):
# delete maintenances
maintenances = self.api.get_maintenances()
for maintenance in maintenances:
self.api.delete_maintenance(maintenance["id"])

if parse_version(self.api.version) >= parse_version("1.21"):
# delete api keys
api_keys = self.api.get_api_keys()
for api_key in api_keys:
self.api.delete_api_key(api_key["id"])
# delete docker hosts
docker_hosts = self.api.get_docker_hosts()
for docker_host in docker_hosts:
self.api.delete_docker_host(docker_host["id"])

# delete maintenances
maintenances = self.api.get_maintenances()
for maintenance in maintenances:
self.api.delete_maintenance(maintenance["id"])

# delete api keys
api_keys = self.api.get_api_keys()
for api_key in api_keys:
self.api.delete_api_key(api_key["id"])

# login again to receive initial messages
self.api.disconnect()
Expand Down
Loading

0 comments on commit f0c5f2b

Please sign in to comment.