def test_match_rule_claim_channels_color(channel): """Test channel claiming.""" ch_color = channel("color", 0x300) ch_level = channel("level", 8) ch_onoff = channel("on_off", 6) rule = registries.MatchRule(channel_names="on_off", aux_channels={"color", "level"}) claimed = rule.claim_channels([ch_color, ch_level, ch_onoff]) assert {"color", "level", "on_off"} == set([ch.name for ch in claimed])
dev.manufacturer = MANUFACTURER dev.model = MODEL return dev @pytest.fixture def channels(channel): """Return a mock of channels.""" return [channel("level", 8), channel("on_off", 6)] @pytest.mark.parametrize( "rule, matched", [ (registries.MatchRule(), False), (registries.MatchRule(channel_names={"level"}), True), (registries.MatchRule(channel_names={"level", "no match"}), False), (registries.MatchRule(channel_names={"on_off"}), True), (registries.MatchRule(channel_names={"on_off", "no match"}), False), (registries.MatchRule(channel_names={"on_off", "level"}), True), (registries.MatchRule(channel_names={"on_off", "level", "no match"}), False), # test generic_id matching (registries.MatchRule(generic_ids={"channel_0x0006"}), True), (registries.MatchRule(generic_ids={"channel_0x0008"}), True), (registries.MatchRule( generic_ids={"channel_0x0006", "channel_0x0008"}), True), ( registries.MatchRule(generic_ids={ "channel_0x0006", "channel_0x0008", "channel_0x0009"
def channels(): """Return a mock of channels.""" def channel(name, chan_id): ch = mock.MagicMock() ch.name = name ch.generic_id = chan_id return ch return [channel("level", "channel_0x0008"), channel("on_off", "channel_0x0006")] @pytest.mark.parametrize( "rule, matched", [ (registries.MatchRule(), False), (registries.MatchRule(channel_names={"level"}), True), (registries.MatchRule(channel_names={"level", "no match"}), False), (registries.MatchRule(channel_names={"on_off"}), True), (registries.MatchRule(channel_names={"on_off", "no match"}), False), (registries.MatchRule(channel_names={"on_off", "level"}), True), (registries.MatchRule(channel_names={"on_off", "level", "no match"}), False), # test generic_id matching (registries.MatchRule(generic_ids={"channel_0x0006"}), True), (registries.MatchRule(generic_ids={"channel_0x0008"}), True), (registries.MatchRule(generic_ids={"channel_0x0006", "channel_0x0008"}), True), ( registries.MatchRule( generic_ids={"channel_0x0006", "channel_0x0008", "channel_0x0009"} ), False,