mirror of
https://github.com/YunoHost-Apps/pyinventory_ynh.git
synced 2024-09-03 20:16:09 +02:00
Test if current package version is the latest github tag
This commit is contained in:
parent
7157df1b36
commit
9416f4bd84
1 changed files with 18 additions and 0 deletions
|
@ -4,10 +4,12 @@ import shutil
|
|||
import subprocess
|
||||
from pathlib import Path
|
||||
|
||||
import requests
|
||||
import tomli
|
||||
from django_tools.serve_media_app.utils import clean_filename
|
||||
from django_tools.unittest_utils.assertments import assert_is_dir, assert_is_file
|
||||
from django_tools.unittest_utils.project_setup import check_editor_config
|
||||
from packaging.version import Version
|
||||
|
||||
import inventory
|
||||
|
||||
|
@ -23,8 +25,24 @@ def assert_file_contains_string(file_path, string):
|
|||
raise AssertionError(f'File {file_path} does not contain {string!r} !')
|
||||
|
||||
|
||||
def get_github_version_tag(github_project_url):
|
||||
api_url = github_project_url.replace('github.com', 'api.github.com/repos')
|
||||
tags = requests.get(f'{api_url}/tags').json()
|
||||
for tag in tags:
|
||||
version_str = tag['name']
|
||||
ver_obj = Version(version_str)
|
||||
if ver_obj.base_version and not ver_obj.is_prerelease:
|
||||
return ver_obj
|
||||
|
||||
|
||||
def test_version():
|
||||
upstream_version = inventory.__version__
|
||||
current_ver_obj = Version(upstream_version)
|
||||
|
||||
github_ver = get_github_version_tag(github_project_url='https://github.com/jedie/PyInventory')
|
||||
assert (
|
||||
github_ver == current_ver_obj
|
||||
), f'Current version from github is: {github_ver} but current package version is: {current_ver_obj}'
|
||||
|
||||
pyproject_toml_path = Path(PACKAGE_ROOT, 'pyproject.toml')
|
||||
pyproject_toml = tomli.loads(pyproject_toml_path.read_text(encoding='UTF-8'))
|
||||
|
|
Loading…
Reference in a new issue