Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def test_input_func_switch(self, mock):
"""Switch through all input functions of all tested receivers."""
mock.add_matcher(self.custom_matcher)
for receiver, zones in TESTING_RECEIVERS.items():
# Switch receiver and update to load new sample files
self._testing_receiver = receiver
self.denon = denonavr.DenonAVR(FAKE_IP, add_zones=zones)
# Switch through all functions and check if successful
for zone in self.denon.zones.values():
for input_func in zone.input_func_list:
self.denon.set_input_func(input_func)
self.assertEqual(
input_func, self.denon.input_func,
("Input function change to {func} "
"not successful").format(func=input_func))
new_hosts.append(NewHost(host=host, name=name))
# 3. option: discovery using denonavr library
if config.get(CONF_HOST) is None and discovery_info is None:
d_receivers = denonavr.discover()
# More than one receiver could be discovered by that method
for d_receiver in d_receivers:
host = d_receiver["host"]
name = d_receiver["friendlyName"]
new_hosts.append(NewHost(host=host, name=name))
for entry in new_hosts:
# Check if host not in cache, append it and save for later
# starting
if entry.host not in cache:
new_device = denonavr.DenonAVR(
host=entry.host,
name=entry.name,
show_all_inputs=show_all_sources,
timeout=timeout,
add_zones=add_zones,
)
for new_zone in new_device.zones.values():
receivers.append(DenonDevice(new_zone))
cache.add(host)
_LOGGER.info("Denon receiver at host %s initialized", host)
# Add all freshly discovered receivers
if receivers:
add_entities(receivers)
def discover():
"""
Discover all Denon AVR devices in LAN zone.
Returns a list of dictionaries which includes all discovered Denon AVR
devices with keys "host", "modelName", "friendlyName", "presentationURL".
By default SSDP broadcasts are sent up to 3 times with a 2 seconds timeout.
"""
return ssdp.identify_denonavr_receivers()
def init_all_receivers():
"""
Initialize all discovered Denon AVR receivers in LAN zone.
Returns a list of created Denon AVR instances.
By default SSDP broadcasts are sent up to 3 times with a 2 seconds timeout.
"""
receivers = discover()
init_receivers = []
for receiver in receivers:
init_receiver = DenonAVR(receiver["host"])
init_receivers.append(init_receiver)
return init_receivers
self._mute = STATE_ON
return True
else:
return False
else:
if self.send_get_command(self._urls.command_mute_off):
self._mute = STATE_OFF
return True
else:
return False
except requests.exceptions.RequestException:
_LOGGER.error("Connection error: mute command not sent.")
return False
class DenonAVRZones(DenonAVR):
"""Representing an additional zone of a Denon AVR Device."""
def __init__(self, parent_avr, zone, name):
"""
Initialize additional zones of DenonAVR.
:param parent_avr: Instance of parent DenonAVR.
:type parent_avr: denonavr.DenonAVR
:param zone: Zone name of this instance
:type zone: str
:param name: Device name, if None FriendlyName of device is used.
:type name: str
"""
self._parent_avr = parent_avr
def create_zones(self, add_zones):
"""Create instances of additional zones for the receiver."""
for zone, zname in add_zones.items():
# Name either set explicitly or name of Main Zone with suffix
zonename = "{} {}".format(self._name, zone) if (
zname is None) else zname
zone_inst = DenonAVRZones(self, zone, zonename)
self._zones[zone] = zone_inst
new_hosts = []
# 1. option: manual setting
if config.get(CONF_HOST) is not None:
host = config.get(CONF_HOST)
name = config.get(CONF_NAME)
new_hosts.append(NewHost(host=host, name=name))
# 2. option: discovery using netdisco
if discovery_info is not None:
host = discovery_info.get("host")
name = discovery_info.get("name")
new_hosts.append(NewHost(host=host, name=name))
# 3. option: discovery using denonavr library
if config.get(CONF_HOST) is None and discovery_info is None:
d_receivers = denonavr.discover()
# More than one receiver could be discovered by that method
for d_receiver in d_receivers:
host = d_receiver["host"]
name = d_receiver["friendlyName"]
new_hosts.append(NewHost(host=host, name=name))
for entry in new_hosts:
# Check if host not in cache, append it and save for later
# starting
if entry.host not in cache:
new_device = denonavr.DenonAVR(
host=entry.host,
name=entry.name,
show_all_inputs=show_all_sources,
timeout=timeout,
add_zones=add_zones,