25592fa6c2
ci / test (push) Successful in 6m14s
History-free snapshot of the private development repository at 77a82eb. Code, docs and the public catalogue only: no plant or job knowledge layers, no client, job or producer names (tools/scrub.py clean against the widened term list; a second word-level grep clean). The intro deck is left out because its slide images cannot be checked for job drawings.
38 lines
1.8 KiB
Python
38 lines
1.8 KiB
Python
# -*- coding: utf-8 -*-
|
|
"""A job layer may spell its role map flat ('panel.design_number: X');
|
|
`_nest_dotted_parameters` folds it into the nested tree `param_names`
|
|
walks, and the flat (later-layer) value beats a nested None placeholder."""
|
|
from vibe import knowledge
|
|
|
|
|
|
def test_flat_keys_fold_into_the_nested_tree():
|
|
merged = {'parameters': {'panel.design_number': 'DESIGN_NO_PARAM',
|
|
'sheet.fc': 'FC_PARAM'}}
|
|
knowledge._nest_dotted_parameters(merged)
|
|
assert merged['parameters'] == {'panel': {'design_number': 'DESIGN_NO_PARAM'},
|
|
'sheet': {'fc': 'FC_PARAM'}}
|
|
assert knowledge.param_names(merged, 'panel.design_number') == ['DESIGN_NO_PARAM']
|
|
|
|
|
|
def test_flat_value_overwrites_a_nested_placeholder():
|
|
merged = {'parameters': {'panel': {'design_number': None, 'length': 'LENGTH_PARAM'},
|
|
'panel.design_number': 'DESIGN_NO_PARAM'}}
|
|
knowledge._nest_dotted_parameters(merged)
|
|
assert merged['parameters']['panel'] == {'design_number': 'DESIGN_NO_PARAM',
|
|
'length': 'LENGTH_PARAM'}
|
|
assert 'panel.design_number' not in merged['parameters']
|
|
|
|
|
|
def test_nested_only_tree_is_untouched():
|
|
merged = {'parameters': {'panel': {'design_number': 'D'}, 'not_applicable': ['x']}}
|
|
before = {'panel': {'design_number': 'D'}, 'not_applicable': ['x']}
|
|
knowledge._nest_dotted_parameters(merged)
|
|
assert merged['parameters'] == before
|
|
|
|
|
|
def test_no_parameters_or_odd_shapes_never_raise():
|
|
for merged in ({}, {'parameters': None}, {'parameters': 'x'},
|
|
{'parameters': {'panel': 'flat-string', 'panel.design_number': 'D'}}):
|
|
knowledge._nest_dotted_parameters(merged)
|
|
assert merged['parameters']['panel'] == {'design_number': 'D'}
|