tg-ws-proxy/tests/test_update_check.py

58 lines
1.9 KiB
Python

import unittest
from proxy import __version__
from utils import update_check
class UpdateCheckTests(unittest.TestCase):
def setUp(self):
self._orig_state = dict(update_check._state)
def tearDown(self):
update_check._state.clear()
update_check._state.update(self._orig_state)
def test_apply_release_tag_marks_update_available(self):
version_parts = [int(part) for part in __version__.split(".")]
version_parts[-1] += 1
next_version = ".".join(str(part) for part in version_parts)
update_check._apply_release_tag(
tag=f"v{next_version}",
html_url="https://example.com/release",
current_version=__version__,
)
status = update_check.get_status()
self.assertTrue(status["has_update"])
self.assertFalse(status["ahead_of_release"])
self.assertEqual(status["latest"], next_version)
self.assertEqual(status["html_url"], "https://example.com/release")
def test_apply_release_tag_marks_ahead_of_release(self):
update_check._apply_release_tag(
tag="v1.2.1",
html_url="https://example.com/release",
current_version=__version__,
)
status = update_check.get_status()
self.assertFalse(status["has_update"])
self.assertTrue(status["ahead_of_release"])
self.assertEqual(status["latest"], "1.2.1")
def test_apply_release_tag_marks_latest_when_versions_match(self):
update_check._apply_release_tag(
tag=f"v{__version__}",
html_url="https://example.com/release",
current_version=__version__,
)
status = update_check.get_status()
self.assertFalse(status["has_update"])
self.assertFalse(status["ahead_of_release"])
self.assertEqual(status["latest"], __version__)
if __name__ == "__main__":
unittest.main()