mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2025-07-17 22:14:25 +02:00
42 lines
1.2 KiB
Python
42 lines
1.2 KiB
Python
import unittest
|
|
import tempfile
|
|
import shutil
|
|
import os
|
|
import json
|
|
from cli.build import tree
|
|
|
|
|
|
class TestTreeMain(unittest.TestCase):
|
|
def setUp(self):
|
|
# Create a temporary roles directory with a fake role
|
|
self.temp_dir = tempfile.mkdtemp()
|
|
self.role_name = "testrole"
|
|
self.role_path = os.path.join(self.temp_dir, self.role_name)
|
|
os.makedirs(os.path.join(self.role_path, "meta"))
|
|
|
|
meta_path = os.path.join(self.role_path, "meta", "main.yml")
|
|
with open(meta_path, 'w') as f:
|
|
f.write("galaxy_info:\n author: test\n run_after: []\ndependencies: []\n")
|
|
|
|
def tearDown(self):
|
|
shutil.rmtree(self.temp_dir)
|
|
|
|
def test_find_roles(self):
|
|
roles = list(tree.find_roles(self.temp_dir))
|
|
self.assertEqual(len(roles), 1)
|
|
self.assertEqual(roles[0][0], self.role_name)
|
|
|
|
def test_main_execution_does_not_raise(self):
|
|
# Mocking sys.argv and running main should not raise
|
|
import sys
|
|
old_argv = sys.argv
|
|
sys.argv = ['tree.py', '-d', self.temp_dir, '-p']
|
|
try:
|
|
tree.main()
|
|
finally:
|
|
sys.argv = old_argv
|
|
|
|
|
|
if __name__ == '__main__':
|
|
unittest.main()
|