mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2025-08-29 15:06:26 +02:00
Added gid to applications to make them posix group ldap compatible
This commit is contained in:
0
tests/unit/__init__.py
Normal file
0
tests/unit/__init__.py
Normal file
62
tests/unit/test_application_gid.py
Normal file
62
tests/unit/test_application_gid.py
Normal file
@@ -0,0 +1,62 @@
|
||||
import os
|
||||
import sys
|
||||
import tempfile
|
||||
import shutil
|
||||
import unittest
|
||||
import yaml
|
||||
|
||||
dir_path = os.path.abspath(
|
||||
os.path.join(os.path.dirname(__file__), '../../lookup_plugins')
|
||||
)
|
||||
sys.path.insert(0, dir_path)
|
||||
|
||||
from application_gid import LookupModule
|
||||
|
||||
|
||||
class TestApplicationGidLookup(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
# Create a temporary roles directory
|
||||
self.temp_dir = tempfile.mkdtemp()
|
||||
self.roles_dir = os.path.join(self.temp_dir, "roles")
|
||||
os.mkdir(self.roles_dir)
|
||||
|
||||
# Define mock application_ids
|
||||
self.applications = {
|
||||
"nextcloud": "docker-nextcloud",
|
||||
"moodle": "docker-moodle",
|
||||
"wordpress": "docker-wordpress",
|
||||
"taiga": "docker-taiga"
|
||||
}
|
||||
|
||||
# Create fake role dirs and vars/main.yml
|
||||
for app_id, dirname in self.applications.items():
|
||||
role_path = os.path.join(self.roles_dir, dirname, "vars")
|
||||
os.makedirs(role_path)
|
||||
with open(os.path.join(role_path, "main.yml"), "w") as f:
|
||||
yaml.dump({"application_id": app_id}, f)
|
||||
|
||||
self.lookup = LookupModule()
|
||||
|
||||
def tearDown(self):
|
||||
shutil.rmtree(self.temp_dir)
|
||||
|
||||
def test_gid_lookup(self):
|
||||
# The sorted application_ids: [moodle, nextcloud, taiga, wordpress]
|
||||
expected_order = ["moodle", "nextcloud", "taiga", "wordpress"]
|
||||
for i, app_id in enumerate(expected_order):
|
||||
result = self.lookup.run([app_id], roles_dir=self.roles_dir)
|
||||
self.assertEqual(result, [10000 + i])
|
||||
|
||||
def test_custom_base_gid(self):
|
||||
result = self.lookup.run(["taiga"], roles_dir=self.roles_dir, base_gid=20000)
|
||||
self.assertEqual(result, [20002]) # 2nd index in sorted list
|
||||
|
||||
def test_application_id_not_found(self):
|
||||
with self.assertRaises(Exception) as context:
|
||||
self.lookup.run(["unknownapp"], roles_dir=self.roles_dir)
|
||||
self.assertIn("Application ID 'unknownapp' not found", str(context.exception))
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
Reference in New Issue
Block a user