Beispiel #1
0
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'
Beispiel #2
0
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'
Beispiel #3
0
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'
Beispiel #4
0
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'