8e6ee31596
ci / test (push) Successful in 6m18s
History-free snapshot of the private development repository at cbe45c5 (2026-09-09). Code, docs and public catalogue only; no plant or job knowledge layers, no client or job names (tools/scrub.py clean). The intro deck is left out of this snapshot because its slide images could not 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'}
|