Files
BlenderTemplate/tests/utils/blender_addon.py
T
2022-05-19 15:54:14 +02:00

59 lines
1.6 KiB
Python

import os
import bpy
import pathlib
import json
import shutil
def b3d_install_addon():
"""Function to install addon with the blender locally set"""
env_name = 'FOLDER_TEST'
dependency = pathlib.Path(os.environ[env_name], "tests", "dependency.json")
with open(dependency) as f:
data = json.load(f)
b3d_dependency = data['blender']
try:
if not os.environ.get(env_name):
raise KeyError
env_path = pathlib.Path(os.environ[env_name])
if not env_path.exists():
raise FileNotFoundError
for key, value in b3d_dependency.items():
bpy.ops.preferences.addon_install(filepath=f'{env_path}/{value[0]}')
bpy.ops.preferences.addon_enable(module=key)
bpy.ops.wm.save_userpref()
except KeyError:
print(f'Env. "{env_name}" doesn\'t exist')
exit(1)
except FileNotFoundError:
print('Wrong path to execute this Unit Test')
exit(1)
def b3d_install_preset():
"""If the folder preset exist, add all preset inside the moderlab dedicated folder"""
env_name = 'FOLDER_TEST'
try:
if not os.environ.get(env_name):
raise KeyError
path_preset = pathlib.Path(bpy.utils.preset_paths("")[0])
path_locally = pathlib.Path(os.environ.get(env_name), "presets")
if path_locally.exists():
shutil.copytree(path_locally, path_preset.joinpath("moderlab", "props"))
except KeyError:
print(f'Env. "{env_name}" doesn\'t exist')
exit(1)
if __name__ == '__main__':
b3d_install_addon()
b3d_install_preset()