|
|
|
@ -10,17 +10,21 @@ CONDITION = {
|
|
|
|
|
'labels': ['o', 'os'],
|
|
|
|
|
'modifier': 1,
|
|
|
|
|
},
|
|
|
|
|
'distro': {
|
|
|
|
|
'labels': ['d', 'distro'],
|
|
|
|
|
'modifier': 2,
|
|
|
|
|
},
|
|
|
|
|
'class': {
|
|
|
|
|
'labels': ['c', 'class'],
|
|
|
|
|
'modifier': 2,
|
|
|
|
|
'modifier': 4,
|
|
|
|
|
},
|
|
|
|
|
'hostname': {
|
|
|
|
|
'labels': ['h', 'hostname'],
|
|
|
|
|
'modifier': 4,
|
|
|
|
|
'modifier': 8,
|
|
|
|
|
},
|
|
|
|
|
'user': {
|
|
|
|
|
'labels': ['u', 'user'],
|
|
|
|
|
'modifier': 8,
|
|
|
|
|
'modifier': 16,
|
|
|
|
|
},
|
|
|
|
|
}
|
|
|
|
|
TEMPLATE_LABELS = ['t', 'template', 'yadm']
|
|
|
|
@ -44,24 +48,35 @@ def calculate_score(filename):
|
|
|
|
|
if value == 'testsystem':
|
|
|
|
|
score += 1000 + CONDITION['system']['modifier']
|
|
|
|
|
else:
|
|
|
|
|
return 0
|
|
|
|
|
score = 0
|
|
|
|
|
break
|
|
|
|
|
elif label in CONDITION['distro']['labels']:
|
|
|
|
|
if value == 'testdistro':
|
|
|
|
|
score += 1000 + CONDITION['distro']['modifier']
|
|
|
|
|
else:
|
|
|
|
|
score = 0
|
|
|
|
|
break
|
|
|
|
|
elif label in CONDITION['class']['labels']:
|
|
|
|
|
if value == 'testclass':
|
|
|
|
|
score += 1000 + CONDITION['class']['modifier']
|
|
|
|
|
else:
|
|
|
|
|
return 0
|
|
|
|
|
score = 0
|
|
|
|
|
break
|
|
|
|
|
elif label in CONDITION['hostname']['labels']:
|
|
|
|
|
if value == 'testhost':
|
|
|
|
|
score += 1000 + CONDITION['hostname']['modifier']
|
|
|
|
|
else:
|
|
|
|
|
return 0
|
|
|
|
|
score = 0
|
|
|
|
|
break
|
|
|
|
|
elif label in CONDITION['user']['labels']:
|
|
|
|
|
if value == 'testuser':
|
|
|
|
|
score += 1000 + CONDITION['user']['modifier']
|
|
|
|
|
else:
|
|
|
|
|
return 0
|
|
|
|
|
score = 0
|
|
|
|
|
break
|
|
|
|
|
elif label in TEMPLATE_LABELS:
|
|
|
|
|
return 0
|
|
|
|
|
score = 0
|
|
|
|
|
break
|
|
|
|
|
return score
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -69,6 +84,8 @@ def calculate_score(filename):
|
|
|
|
|
'default', ['default', None], ids=['default', 'no-default'])
|
|
|
|
|
@pytest.mark.parametrize(
|
|
|
|
|
'system', ['system', None], ids=['system', 'no-system'])
|
|
|
|
|
@pytest.mark.parametrize(
|
|
|
|
|
'distro', ['distro', None], ids=['distro', 'no-distro'])
|
|
|
|
|
@pytest.mark.parametrize(
|
|
|
|
|
'cla', ['class', None], ids=['class', 'no-class'])
|
|
|
|
|
@pytest.mark.parametrize(
|
|
|
|
@ -76,11 +93,12 @@ def calculate_score(filename):
|
|
|
|
|
@pytest.mark.parametrize(
|
|
|
|
|
'user', ['user', None], ids=['user', 'no-user'])
|
|
|
|
|
def test_score_values(
|
|
|
|
|
runner, yadm, default, system, cla, host, user):
|
|
|
|
|
runner, yadm, default, system, distro, cla, host, user):
|
|
|
|
|
"""Test score results"""
|
|
|
|
|
# pylint: disable=too-many-branches
|
|
|
|
|
local_class = 'testclass'
|
|
|
|
|
local_system = 'testsystem'
|
|
|
|
|
local_distro = 'testdistro'
|
|
|
|
|
local_host = 'testhost'
|
|
|
|
|
local_user = 'testuser'
|
|
|
|
|
filenames = {'filename##': 0}
|
|
|
|
@ -105,6 +123,18 @@ def test_score_values(
|
|
|
|
|
local_system if match else 'badsys'
|
|
|
|
|
])
|
|
|
|
|
filenames[newfile] = calculate_score(newfile)
|
|
|
|
|
if distro:
|
|
|
|
|
for filename in list(filenames):
|
|
|
|
|
for match in [True, False]:
|
|
|
|
|
for label in CONDITION[distro]['labels']:
|
|
|
|
|
newfile = filename
|
|
|
|
|
if not newfile.endswith('##'):
|
|
|
|
|
newfile += ','
|
|
|
|
|
newfile += '.'.join([
|
|
|
|
|
label,
|
|
|
|
|
local_distro if match else 'baddistro'
|
|
|
|
|
])
|
|
|
|
|
filenames[newfile] = calculate_score(newfile)
|
|
|
|
|
if cla:
|
|
|
|
|
for filename in list(filenames):
|
|
|
|
|
for match in [True, False]:
|
|
|
|
@ -147,6 +177,7 @@ def test_score_values(
|
|
|
|
|
score=0
|
|
|
|
|
local_class={local_class}
|
|
|
|
|
local_system={local_system}
|
|
|
|
|
local_distro={local_distro}
|
|
|
|
|
local_host={local_host}
|
|
|
|
|
local_user={local_user}
|
|
|
|
|
"""
|
|
|
|
@ -169,6 +200,7 @@ def test_score_values_templates(runner, yadm):
|
|
|
|
|
"""Test score results"""
|
|
|
|
|
local_class = 'testclass'
|
|
|
|
|
local_system = 'testsystem'
|
|
|
|
|
local_distro = 'testdistro'
|
|
|
|
|
local_host = 'testhost'
|
|
|
|
|
local_user = 'testuser'
|
|
|
|
|
filenames = {'filename##': 0}
|
|
|
|
@ -186,6 +218,7 @@ def test_score_values_templates(runner, yadm):
|
|
|
|
|
score=0
|
|
|
|
|
local_class={local_class}
|
|
|
|
|
local_system={local_system}
|
|
|
|
|
local_distro={local_distro}
|
|
|
|
|
local_host={local_host}
|
|
|
|
|
local_user={local_user}
|
|
|
|
|
"""
|
|
|
|
|