mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2025-07-17 14:04:24 +02:00
Added additional unit test to debug html edge cas
This commit is contained in:
parent
25e4a50974
commit
5dcc13cb24
@ -1 +0,0 @@
|
||||
application_id: certbot
|
@ -0,0 +1,56 @@
|
||||
import os
|
||||
import yaml
|
||||
import unittest
|
||||
from filter_plugins.applications_if_group_and_deps import FilterModule
|
||||
|
||||
|
||||
def load_vars(role_name):
|
||||
# locate project root relative to this test file
|
||||
tests_dir = os.path.dirname(__file__)
|
||||
project_root = os.path.abspath(os.path.join(tests_dir, '..', '..', '..'))
|
||||
vars_path = os.path.join(project_root, 'roles', role_name, 'vars', 'main.yml')
|
||||
with open(vars_path) as f:
|
||||
data = yaml.safe_load(f) or {}
|
||||
return data
|
||||
|
||||
|
||||
class TestApplicationsIfGroupAndDeps(unittest.TestCase):
|
||||
def setUp(self):
|
||||
self.filter = FilterModule().applications_if_group_and_deps
|
||||
self.sample_apps = {
|
||||
'html': {},
|
||||
'legal': {},
|
||||
'file': {},
|
||||
'asset': {},
|
||||
'portfolio': {},
|
||||
'corporate-identity': {},
|
||||
}
|
||||
|
||||
def test_direct_group(self):
|
||||
result = self.filter(self.sample_apps, ['html'])
|
||||
self.assertIn('html', result)
|
||||
self.assertNotIn('legal', result)
|
||||
|
||||
def test_recursive_deps(self):
|
||||
# html -> depends on none, but corporate-identity pulls in web-svc-legal -> web-svc-html -> legal
|
||||
result = self.filter(self.sample_apps, ['util-srv-corporate-identity'])
|
||||
self.assertIn('corporate-identity', result)
|
||||
self.assertIn('legal', result) # via web-svc-legal
|
||||
self.assertIn('html', result) # via web-svc-legal -> html
|
||||
|
||||
def test_real_vars_files(self):
|
||||
# load real vars to get application_id
|
||||
corp_vars = load_vars('util-srv-corporate-identity')
|
||||
asset_vars = load_vars('web-svc-asset')
|
||||
# ensure IDs exist
|
||||
self.assertIn('application_id', corp_vars)
|
||||
self.assertIn('application_id', asset_vars)
|
||||
# run filter
|
||||
result = self.filter(self.sample_apps, ['util-srv-corporate-identity'])
|
||||
# ids from vars should appear
|
||||
self.assertIn(corp_vars['application_id'], result)
|
||||
self.assertIn(asset_vars['application_id'], result)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
Loading…
x
Reference in New Issue
Block a user