def test_appending_tree(): section = ExperimentSection(make_tree(['session', 'block', 'trial'], {}), ChainMap()) assert section.local_levels == {'block'} section.append_design_tree(make_tree(['block-test', 'trial-test'], {'foo': 'bar'}), to_start=True) assert section.local_levels == {'block', 'block-test'} assert len(section) == 10 assert len(section[1]) == 4 assert len(section[5]) == 6 assert section[1].level == 'block-test' assert section[1][1].level == 'trial-test' assert section[1].data['foo'] == 'bar' assert section[1][1].data['foo'] == 'bar' assert section[1][1].data['trial-test'] == 1 assert section[5].data['block'] == 1 section.append_design_tree(make_tree(['block', 'trial'], {'foo': 'bar'}), to_start=True) assert section[9].data['block'] == 5 with pytest.raises(ValueError): section.append_design_tree(make_tree(['session', 'block', 'trial'], {}), ChainMap())