diff --git a/readme.md b/readme.md index 1e53a80..bee538a 100644 --- a/readme.md +++ b/readme.md @@ -14,6 +14,7 @@ Update the file "tests/main.py", line 29, set your addon name. All unit tests call docker image [stilobique/blender:latest](https://hub.docker.com/repository/docker/stilobique/blender). # Addons/Plugins dependency -Update json file `tests/dependency.json` with name, archive and repository Github path. +Update json file `tests/dependency.json` with name, archive and repository Github path. Each entry requiert `archive +name`, the repository url path '{owner}/{repo}' and optional parameter if the release needed to be a prerelease. > ⛔ The `moderlab_plugin` need to be on last entry. diff --git a/tests/dependency.json b/tests/dependency.json index 2b91c4d..a449c26 100644 --- a/tests/dependency.json +++ b/tests/dependency.json @@ -1,6 +1,6 @@ { "blender": { - "moderlab_type": ["moderlab_type.zip", "Moderlab-Production/BlenderObjectType"], + "moderlab_type": ["moderlab_type.zip", "Moderlab-Production/BlenderObjectType", "prerelease"], "moderlab_pie": ["moderlab_plugin.zip", "Moderlab-Production/BlenderPieMenu"], "moderlab_plugin": ["moderlab_plugin.zip", "Moderlab-Production/BlenderPlugin"] }, diff --git a/tests/main.py b/tests/main.py index 10092e3..04f9b93 100644 --- a/tests/main.py +++ b/tests/main.py @@ -43,7 +43,6 @@ if __name__ == '__main__': test_list = [] items = arg.replace('--test=', '').split(',') for item in items: - print('Launch this test : ', item) test_list.append(item) # Launch Unit Test diff --git a/tests/utils/blender.py b/tests/utils/blender.py index 1e7d5f4..99c3bc3 100644 --- a/tests/utils/blender.py +++ b/tests/utils/blender.py @@ -13,5 +13,9 @@ def get_b3d_addon_dependency(archive: list): b3d_dependency = data['blender'] for key, value in b3d_dependency.items(): - get_release_file(value[0], value[1]) + if 'prerelease' in value: + prerelease = True + else: + prerelease = False + get_release_file(value[0], value[1], prerelease=prerelease) archive.append(value[0]) diff --git a/tests/utils/forge.py b/tests/utils/forge.py index c5b51c6..d364ef1 100644 --- a/tests/utils/forge.py +++ b/tests/utils/forge.py @@ -13,13 +13,23 @@ def read_token(): return token -def get_release_file(filename: str, repo: str): +def get_release_file(filename: str, repo: str, prerelease: bool = False): """Download from Github the latest release files""" g = Github(read_token()) repository = g.get_repo(repo) - latest = repository.get_latest_release() - latest.get_assets() - for file in latest.get_assets(): + all_releases = repository.get_releases() + assets_release = None + + for release in all_releases: + print(f'Get "{filename}", with a prerelease value to "{prerelease}" ') + if release.prerelease is prerelease: + assets_release = release.get_assets() + break + else: + assets_release = release.get_assets() + break + + for file in assets_release: if file.name == filename: dl_file(file.url, file.name)