def test_selection_rule_sevr_options_before_val_options(widget, get_renderer): widget.add_rule( rules.SelectionRule('test_property', 'dummy_pv', val_options=[('1', 'val_one'), ('2', 'val_two')], sevr_options=[('-1', 'sevr_one'), ('-2', 'sevr_two')])) renderer = get_renderer(widget) renderer.assemble() rule_element = renderer.get_node().find('./rules/rule') assert rule_element.find('./pv').text == 'dummy_pv' assert rule_element.attrib['prop_id'] == 'test_property' exp_elements = rule_element.findall('./exp') assert len(exp_elements) == 4 assert exp_elements[0].attrib['bool_exp'] == 'pvSev0 == -1' value_element = exp_elements[0].find('./value') assert value_element.text == 'sevr_one' assert exp_elements[1].attrib['bool_exp'] == 'pvSev0 == -2' value_element = exp_elements[1].find('./value') assert value_element.text == 'sevr_two' assert exp_elements[2].attrib['bool_exp'] == 'pv0 == 1' value_element = exp_elements[2].find('./value') assert value_element.text == 'val_one' assert exp_elements[3].attrib['bool_exp'] == 'pv0 == 2' value_element = exp_elements[3].find('./value') assert value_element.text == 'val_two'
def test_selection_rule_sets_else_condition_when_specified( widget, get_renderer): col = colors.Color(rgb=(64, 128, 32), name="murky green") red = colors.Color(rgb=(255, 0, 0), name="red") widget.add_rule( rules.SelectionRule('test_property', 'dummy_pv', val_options=[(1, col)], else_val=red)) renderer = get_renderer(widget) renderer.assemble() rule_element = renderer.get_node().find('./rules/rule') assert rule_element.find('./pv').text == 'dummy_pv' assert rule_element.attrib['prop_id'] == 'test_property' exp_elements = rule_element.findall('./exp') assert len(exp_elements) == 2 assert exp_elements[0].attrib['bool_exp'] == 'pv0 == 1' assert exp_elements[1].attrib['bool_exp'] == 'true' color_element = exp_elements[0].find('./value/color') assert color_element.attrib['red'] == '64' assert color_element.attrib['green'] == '128' assert color_element.attrib['blue'] == '32' assert color_element.attrib['name'] == 'murky green' color_element = exp_elements[1].find('./value/color') assert color_element.attrib['red'] == '255' assert color_element.attrib['green'] == '0' assert color_element.attrib['blue'] == '0' assert color_element.attrib['name'] == 'red'
def test_selection_rule_default_name(widget, get_renderer): widget.add_rule( rules.SelectionRule('test_property', 'dummy_pv', val_options=[('1', 'strval')])) renderer = get_renderer(widget) renderer.assemble() rule_element = renderer.get_node().find('./rules/rule') assert rule_element.attrib['name'] == 'SelectionRule'
def test_selection_rule_one_string_value_numeric_test(widget, get_renderer): widget.add_rule( rules.SelectionRule('test_property', 'dummy_pv', val_options=[(1, 'val_one')])) renderer = get_renderer(widget) renderer.assemble() rule_element = renderer.get_node().find('./rules/rule') assert rule_element.find('./pv').text == 'dummy_pv' assert rule_element.attrib['prop_id'] == 'test_property' exp_elements = rule_element.findall('./exp') assert len(exp_elements) == 1 assert exp_elements[0].attrib['bool_exp'] == 'pv0 == 1' value_element = exp_elements[0].find('./value') assert value_element.text == 'val_one'