Bugfix: tests on master (#1465)

This commit is contained in:
Kim Neunert 2021-11-09 14:36:35 +01:00 committed by GitHub
parent 51369bdb4a
commit 659baad94f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 30 additions and 19 deletions

View file

@ -76,22 +76,7 @@ class VersionChecker:
logger.warning(
"We're checking here for a different binary than specter-desktop. We're hopefully in a pytest"
)
try:
if self.specter:
requests_session = self.specter.requests_session(force_tor=False)
else:
requests_session = requests.Session()
releases = requests_session.get(
f"https://api.github.com/repos/cryptoadvance/specter-desktop/releases"
).json()
for release in releases:
if release["prerelease"] or release["draft"]:
continue
latest = release["name"]
break
except Exception as e:
logger.exception(e)
latest = "unknown"
latest = VersionChecker._get_latest_version_from_github(self.specter)
return current, latest
def _get_pip_version(self):
@ -149,6 +134,25 @@ class VersionChecker:
self.stop()
return current, latest, False
@classmethod
def _get_latest_version_from_github(cls, specter):
try:
if specter:
requests_session = specter.requests_session(force_tor=False)
else:
requests_session = requests.Session()
releases = (
requests_session.get(f"https://pypi.org/pypi/{self.name}/json")
.json()["releases"]
.keys()
)
latest = list(releases)[-1]
except Exception as e:
logger.exception(e)
latest = "unknown"
return latest
@classmethod
def _version_txt_content(cls):
version_file = "version.txt"

View file

@ -5,6 +5,9 @@ from cryptoadvance.specter.util.version import VersionChecker
from mock import Mock, patch, PropertyMock
@patch(
"cryptoadvance.specter.util.version.VersionChecker._get_latest_version_from_github"
)
@patch(
"cryptoadvance.specter.util.version.VersionChecker.installation_type",
new_callable=PropertyMock,
@ -12,8 +15,12 @@ from mock import Mock, patch, PropertyMock
@patch("cryptoadvance.specter.util.version.importlib_metadata.version")
@patch("cryptoadvance.specter.util.version.VersionChecker._version_txt_content")
def test_VersionChecker(
VersionChecker_version_txt_content, imp_lib_mock, mock_installation_type
VersionChecker_version_txt_content,
imp_lib_mock,
mock_installation_type,
mock_latest,
):
mock_latest.return_value = "v9.10.21"
imp_lib_mock.return_value = "1.2.3"
VersionChecker_version_txt_content.return_value = "2.3.4"
mock_installation_type.return_value = "pip"
@ -27,7 +34,7 @@ def test_VersionChecker(
assert vc._get_binary_version() == (
"1.2.3",
"v1.7.0",
"v9.10.21",
) # will break with a new release
# assert vc._get_pip_version() == ("1.2.3", "v5.3.0") # Might break anytime
# assert vc.info == "h"
@ -40,7 +47,7 @@ def test_VersionChecker(
assert vc._get_binary_version() == (
"2.3.4",
"v1.7.0",
"v9.10.21",
)