chartbastan/backend/venv/Lib/site-packages/update_checker_test.py
2026-02-01 09:31:38 +01:00

77 lines
2.4 KiB
Python

from unittest import mock
import requests
from update_checker import UpdateChecker, update_check
PACKAGE = "praw"
def mock_response(response, latest_version="5.0.0"):
response.json = mock.Mock(
return_value={"releases": {"0.0.1": [], latest_version: []}}
)
response.status_code = 200
@mock.patch("requests.get")
def test_checker_check__no_update_to_beta_version(mock_get):
mock_response(mock_get.return_value, "3.7.0b1")
checker = UpdateChecker(bypass_cache=True)
assert checker.check(PACKAGE, "3.6") is None
@mock.patch("requests.get")
def test_checker_check__update_to_beta_version_from_beta_version(mock_get):
mock_response(mock_get.return_value, "4.0.0b5")
checker = UpdateChecker(bypass_cache=True)
result = checker.check(PACKAGE, "4.0.0b4")
assert result.available_version == "4.0.0b5"
@mock.patch("requests.get")
def test_checker_check__update_to_rc_version_from_beta_version(mock_get):
mock_response(mock_get.return_value, "4.0.0rc1")
checker = UpdateChecker(bypass_cache=True)
result = checker.check(PACKAGE, "4.0.0b4")
assert result.available_version == "4.0.0rc1"
@mock.patch("requests.get")
def test_checker_check__successful(mock_get):
mock_response(mock_get.return_value)
checker = UpdateChecker(bypass_cache=True)
result = checker.check(PACKAGE, "1.0.0")
assert result.available_version == "5.0.0"
@mock.patch("requests.get")
def test_checker_check__unsuccessful(mock_get):
mock_get.side_effect = requests.exceptions.RequestException
checker = UpdateChecker(bypass_cache=True)
assert checker.check(PACKAGE, "1.0.0") is None
@mock.patch("requests.get")
def test_update_check__successful__has_no_update(mock_get, capsys):
mock_response(mock_get.return_value, "0.0.2")
update_check(PACKAGE, "0.0.2", bypass_cache=True)
assert "" == capsys.readouterr().err
@mock.patch("requests.get")
def test_update_check__successful__has_update(mock_get, capsys):
mock_response(mock_get.return_value)
update_check(PACKAGE, "0.0.1", bypass_cache=True)
assert (
"Version 0.0.1 of praw is outdated. Version 5.0.0 is available.\n"
== capsys.readouterr().err
)
@mock.patch("requests.get")
def test_update_check__unsuccessful(mock_get, capsys):
mock_get.side_effect = requests.exceptions.RequestException
update_check(PACKAGE, "0.0.1", bypass_cache=True)
assert "" == capsys.readouterr().err