Ejemplo n.º 1
0
def test_flag_property(context_mock):
    prop_base = PropertyBase(name="flag_prop", is_flag_property=True)
    prop_base.set_parent_path(DEFAULT_MODULE_NAME)
    prop_wrapper = PropertyWrapper(prop=prop_base,
                                   ctx=context_mock,
                                   allow_read=True,
                                   allow_write=True)
    assert (prop_base._lock.locked())

    prop_wrapper.set(True)
    assert (prop_wrapper.get() is True)
    context_mock.emit.assert_any_call(s(f"{prop_wrapper.prop.id()}:changed"),
                                      parents=None,
                                      wipe=True)
    context_mock.emit.assert_any_call(s(f"{prop_wrapper.prop.id()}:true"),
                                      parents=None,
                                      wipe=True)

    context_mock.emit.reset_mock()
    prop_wrapper.set(False)
    assert (prop_wrapper.get() is False)
    context_mock.emit.assert_any_call(s(f"{prop_wrapper.prop.id()}:changed"),
                                      parents=None,
                                      wipe=True)
    context_mock.emit.assert_any_call(s(f"{prop_wrapper.prop.id()}:false"),
                                      parents=None,
                                      wipe=True)

    context_mock.emit.reset_mock()
    prop_wrapper.set(None)
    assert (prop_wrapper.get() is None)
    context_mock.emit.assert_called_once_with(
        s(f"{prop_wrapper.prop.id()}:changed"), parents=None, wipe=True)
Ejemplo n.º 2
0
def context_with_property_fixture(mocker, context_fixture) -> Context:
    prop = PropertyBase(name=DEFAULT_PROPERTY_NAME,
                        default_value=DEFAULT_PROPERTY_VALUE)
    prop.set_parent_path(DEFAULT_MODULE_NAME)
    context_fixture.add_prop(prop=prop)
    mocker.patch.object(context_fixture, 'add_prop')
    return context_fixture
Ejemplo n.º 3
0
def test_property_illegal_push(context_mock):
    prop_no_push = PropertyBase(name=DEFAULT_PROPERTY_NAME,
                                default_value=DEFAULT_PROPERTY_VALUE,
                                allow_push=False)
    prop_no_push.set_parent_path(DEFAULT_MODULE_NAME)
    wrapper = PropertyWrapper(prop=prop_no_push,
                              ctx=context_mock,
                              allow_read=True,
                              allow_write=True)
    with LogCapture(attributes=strip_prefix) as log_capture:
        assert not wrapper.push(child=PropertyBase(name=CHILD_PROPERTY_NAME))
        log_capture.check(
            f'Unauthorized push in property {DEFAULT_MODULE_NAME}:{DEFAULT_PROPERTY_NAME}!',
        )
Ejemplo n.º 4
0
def default_property_base():
    prop = PropertyBase(name=DEFAULT_PROPERTY_NAME,
                        default_value=DEFAULT_PROPERTY_VALUE)
    prop.set_parent_path(DEFAULT_MODULE_NAME)
    return prop