def get_switch_test_device(): mock = MagicMock() mock.side_effect = [response("device_list"), "1"] fritz = Fritzhome("10.0.0.1", "user", "pass") fritz._request = mock element = fritz.get_device_element("08761 0000434") device = FritzhomeDevice(fritz=fritz, node=element) return device
def get_switch_test_device(): mock = MagicMock() mock.side_effect = [device_list_xml, '1'] fritz = Fritzhome('10.0.0.1', 'user', 'pass') fritz._request = mock element = fritz.get_device_element('08761 0000434') device = FritzhomeDevice(fritz=fritz, node=element) return device
def test_device_hkr_fw_03_54(self): mock = MagicMock() mock.side_effect = [ device_hkr_fw_03_54_xml, ] fritz = Fritzhome('10.0.0.1', 'user', 'pass') fritz._request = mock element = fritz.get_device_element('23456') device = FritzhomeDevice(node=element) eq_(device.ain, '23456') assert_true(device.present)
def test_device_init_no_devicelock_element(self): mock = MagicMock() mock.side_effect = [ device_no_devicelock_element_xml, ] fritz = Fritzhome('10.0.0.1', 'user', 'pass') fritz._request = mock element = fritz.get_device_element('08761 0373130') device = FritzhomeDevice(node=element) eq_(device.ain, '08761 0373130') assert_true(device.present)
def test_device_init_present_false(self): mock = MagicMock() mock.side_effect = [ device_not_present_xml, ] fritz = Fritzhome('10.0.0.1', 'user', 'pass') fritz._request = mock element = fritz.get_device_element('11960 0089208') device = FritzhomeDevice(node=element) eq_(device.ain, '11960 0089208') assert_false(device.present)
def test_hkr_without_temperature_values(self): mock = MagicMock() mock.side_effect = [ device_hkr_no_temp_values_xml, ] fritz = Fritzhome('10.0.0.1', 'user', 'pass') fritz._request = mock element = fritz.get_device_element('11960 0071472') device = FritzhomeDevice(node=element) eq_(device.ain, '11960 0071472') eq_(device.offset, None) eq_(device.temperature, None)
def test_device_alert_no_alertstate(self): mock = MagicMock() mock.side_effect = [ device_alert_no_alertstate_xml, ] fritz = Fritzhome('10.0.0.1', 'user', 'pass') fritz._request = mock element = fritz.get_device_element('05333 0077045-3') device = FritzhomeDevice(node=element) eq_(device.ain, '05333 0077045-3') assert_true(device.present) eq_(device.alert_state, None)
def test_device_update(self): mock = MagicMock() mock.side_effect = [ device_list_battery_ok_xml, device_list_battery_low_xml, ] fritz = Fritzhome('10.0.0.1', 'user', 'pass') fritz._request = mock element = fritz.get_device_element('11959 0171328') device = FritzhomeDevice(fritz=fritz, node=element) assert_false(device.battery_low) device.update() assert_true(device.battery_low)
def test_device_hkr_fw_03_50(self): mock = MagicMock() mock.side_effect = [ device_hkr_fw_03_50_xml, ] fritz = Fritzhome('10.0.0.1', 'user', 'pass') fritz._request = mock element = fritz.get_device_element('12345') device = FritzhomeDevice(node=element) eq_(device.ain, '12345') assert_true(device.present) eq_(device.device_lock, None) eq_(device.lock, None) eq_(device.error_code, None) eq_(device.battery_low, None)
def test_device_init(self): mock = MagicMock() mock.side_effect = [ device_list_xml, ] fritz = Fritzhome('10.0.0.1', 'user', 'pass') fritz._request = mock element = fritz.get_device_element('08761 0000434') device = FritzhomeDevice(node=element) eq_(device.ain, '08761 0000434') eq_(device.fw_version, '03.33') assert_true(device.present) assert_true(device.has_switch) assert_true(device.has_temperature_sensor) assert_true(device.has_powermeter)
class TestFritzhomeDeviceThermostat(object): def setup(self): self.mock = MagicMock() self.fritz = Fritzhome("10.0.0.1", "user", "pass") self.fritz._request = self.mock self.fritz._devices = {} def test_device_hkr_fw_03_50(self): self.mock.side_effect = [ Helper.response("thermostat/device_hkr_fw_03_50"), ] self.fritz.update_devices() device = self.fritz.get_device_by_ain("12345") assert_true(device.present) eq_(device.device_lock, None) eq_(device.lock, None) eq_(device.error_code, None) eq_(device.battery_low, None) def test_device_hkr_fw_03_54(self): self.mock.side_effect = [ Helper.response("thermostat/device_hkr_fw_03_54"), ] self.fritz.update_devices() device = self.fritz.get_device_by_ain("23456") assert_true(device.present) def test_get_target_temperature(self): self.mock.side_effect = [ Helper.response("thermostat/device_hkr_fritzos_7"), "38", ] self.fritz.update_devices() device = self.fritz.get_device_by_ain("12345") eq_(device.get_target_temperature(), 19.0) device._fritz._request.assert_called_with( "http://10.0.0.1/webservices/homeautoswitch.lua", { "ain": u"12345", "switchcmd": "gethkrtsoll", "sid": None }, ) def test_get_eco_temperature(self): self.mock.side_effect = [ Helper.response("thermostat/device_hkr_fritzos_7"), "40", ] self.fritz.update_devices() device = self.fritz.get_device_by_ain("12345") eq_(device.get_eco_temperature(), 20.0) device._fritz._request.assert_called_with( "http://10.0.0.1/webservices/homeautoswitch.lua", { "ain": u"12345", "switchcmd": "gethkrabsenk", "sid": None }, ) def test_get_comfort_temperature(self): self.mock.side_effect = [ Helper.response("thermostat/device_hkr_fritzos_7"), "41", ] self.fritz.update_devices() device = self.fritz.get_device_by_ain("12345") eq_(device.get_comfort_temperature(), 20.5) device._fritz._request.assert_called_with( "http://10.0.0.1/webservices/homeautoswitch.lua", { "ain": u"12345", "switchcmd": "gethkrkomfort", "sid": None }, ) def test_hkr_without_temperature_values(self): self.mock.side_effect = [ Helper.response("thermostat/device_hkr_no_temp_values"), ] element = self.fritz.get_device_element("11960 0071472") device = FritzhomeDevice(node=element) eq_(device.ain, "11960 0071472") eq_(device.offset, None) eq_(device.temperature, None) def test_hkr_get_state_on(self): self.mock.side_effect = [ Helper.response("thermostat/device_hkr_state_on"), Helper.response("thermostat/device_hkr_state_on"), ] self.fritz.update_devices() device = self.fritz.get_device_by_ain("12345") eq_(device.get_hkr_state(), "on") def test_hkr_get_state_off(self): self.mock.side_effect = [ Helper.response("thermostat/device_hkr_state_off"), Helper.response("thermostat/device_hkr_state_off"), ] self.fritz.update_devices() device = self.fritz.get_device_by_ain("12345") eq_(device.get_hkr_state(), "off") def test_hkr_get_state_eco(self): self.mock.side_effect = [ Helper.response("thermostat/device_hkr_state_eco"), Helper.response("thermostat/device_hkr_state_eco"), ] self.fritz.update_devices() device = self.fritz.get_device_by_ain("12345") eq_(device.get_hkr_state(), "eco") def test_hkr_get_state_comfort(self): self.mock.side_effect = [ Helper.response("thermostat/device_hkr_state_comfort"), Helper.response("thermostat/device_hkr_state_comfort"), ] self.fritz.update_devices() device = self.fritz.get_device_by_ain("12345") eq_(device.get_hkr_state(), "comfort") def test_hkr_get_state_manual(self): self.mock.side_effect = [ Helper.response("thermostat/device_hkr_state_manual"), Helper.response("thermostat/device_hkr_state_manual"), ] self.fritz.update_devices() device = self.fritz.get_device_by_ain("12345") eq_(device.get_hkr_state(), "manual") def test_hkr_set_state_on(self): self.mock.side_effect = [ Helper.response("thermostat/device_hkr_state_manual"), Helper.response("thermostat/device_hkr_state_manual"), ] self.fritz.update_devices() device = self.fritz.get_device_by_ain("12345") device.set_hkr_state("on") device._fritz._request.assert_called_with( "http://10.0.0.1/webservices/homeautoswitch.lua", { "ain": u"12345", "switchcmd": "sethkrtsoll", "param": 254, "sid": None }, ) def test_hkr_set_state_off(self): self.mock.side_effect = [ Helper.response("thermostat/device_hkr_state_manual"), Helper.response("thermostat/device_hkr_state_manual"), ] self.fritz.update_devices() device = self.fritz.get_device_by_ain("12345") device.set_hkr_state("off") device._fritz._request.assert_called_with( "http://10.0.0.1/webservices/homeautoswitch.lua", { "ain": u"12345", "switchcmd": "sethkrtsoll", "param": 253, "sid": None }, ) def test_hkr_battery_level(self): self.mock.side_effect = [ Helper.response("thermostat/device_hkr_fritzos_7") ] self.fritz.update_devices() device = self.fritz.get_device_by_ain("12345") eq_(device.battery_level, 70) def test_hkr_window_open(self): self.mock.side_effect = [ Helper.response("thermostat/device_hkr_fritzos_7") ] self.fritz.update_devices() device = self.fritz.get_device_by_ain("12345") eq_(device.window_open, False) def test_hkr_summer_active(self): self.mock.side_effect = [ Helper.response("thermostat/device_hkr_fritzos_7") ] self.fritz.update_devices() device = self.fritz.get_device_by_ain("12345") eq_(device.summer_active, True) def test_hkr_holiday_active(self): self.mock.side_effect = [ Helper.response("thermostat/device_hkr_fritzos_7") ] self.fritz.update_devices() device = self.fritz.get_device_by_ain("12345") eq_(device.holiday_active, False) def test_hkr_nextchange_endperiod(self): self.mock.side_effect = [ Helper.response("thermostat/device_hkr_fritzos_7") ] self.fritz.update_devices() device = self.fritz.get_device_by_ain("12345") eq_(device.nextchange_endperiod, 1538341200) def test_hkr_nextchange_temperature(self): self.mock.side_effect = [ Helper.response("thermostat/device_hkr_fritzos_7") ] self.fritz.update_devices() device = self.fritz.get_device_by_ain("12345") eq_(device.nextchange_temperature, 21.0)
class TestDevice(object): def setup(self): self.mock = MagicMock() self.fritz = Fritzhome('10.0.0.1', 'user', 'pass') self.fritz._request = self.mock def test_device_init(self): self.mock.side_effect = [ device_list_xml, ] device = self.fritz.get_device_by_ain('08761 0000434') eq_(device.ain, '08761 0000434') eq_(device.fw_version, '03.33') assert_true(device.present) assert_true(device.has_switch) assert_true(device.has_temperature_sensor) assert_true(device.has_powermeter) def test_device_init_present_false(self): self.mock.side_effect = [ device_not_present_xml, ] device = self.fritz.get_device_by_ain('11960 0089208') eq_(device.ain, '11960 0089208') assert_false(device.present) def test_device_init_no_devicelock_element(self): self.mock.side_effect = [ device_no_devicelock_element_xml, ] device = self.fritz.get_device_by_ain('08761 0373130') eq_(device.ain, '08761 0373130') assert_true(device.present) def test_device_umlaut(self): self.mock.side_effect = [ device_with_umlaut_in_name_xml, ] device = self.fritz.get_device_by_ain('08761 0373130') eq_(device.ain, '08761 0373130') eq_(device.name, u'äöü') def test_device_hkr_fw_03_50(self): self.mock.side_effect = [ device_hkr_fw_03_50_xml, ] device = self.fritz.get_device_by_ain('12345') assert_true(device.present) eq_(device.device_lock, None) eq_(device.lock, None) eq_(device.error_code, None) eq_(device.battery_low, None) def test_device_hkr_fw_03_54(self): self.mock.side_effect = [ device_hkr_fw_03_54_xml, ] device = self.fritz.get_device_by_ain('23456') assert_true(device.present) def test_device_alert_on(self): self.mock.side_effect = [ device_alert_on_xml, ] device = self.fritz.get_device_by_ain('05333 0077045-1') assert_true(device.present) eq_(device.alert_state, True) def test_device_alert_off(self): self.mock.side_effect = [ device_alert_off_xml, ] device = self.fritz.get_device_by_ain('05333 0077045-2') assert_true(device.present) eq_(device.alert_state, False) def test_device_alert_no_alertstate(self): self.mock.side_effect = [ device_alert_no_alertstate_xml, ] device = self.fritz.get_device_by_ain('05333 0077045-3') assert_true(device.present) eq_(device.alert_state, None) def test_device_update(self): self.mock.side_effect = [ device_list_battery_ok_xml, device_list_battery_low_xml, ] device = self.fritz.get_device_by_ain('11959 0171328') assert_false(device.battery_low) device.update() assert_true(device.battery_low) def test_get_device_present(self): self.mock.side_effect = ['1', '0'] device = get_switch_test_device() device._fritz._request = self.mock assert_true(device.get_present()) assert_false(device.get_present()) device._fritz._request.assert_called_with( 'http://10.0.0.1/webservices/homeautoswitch.lua', { 'ain': u'08761 0000434', 'switchcmd': 'getswitchpresent', 'sid': None }) def test_get_switch_state(self): self.mock.side_effect = ['1', '0'] device = get_switch_test_device() device._fritz._request = self.mock assert_true(device.get_switch_state()) assert_false(device.get_switch_state()) device._fritz._request.assert_called_with( 'http://10.0.0.1/webservices/homeautoswitch.lua', { 'ain': u'08761 0000434', 'switchcmd': 'getswitchstate', 'sid': None }) def test_set_switch_state(self): device = get_switch_test_device() device._fritz._request = self.mock device.set_switch_state_on() device._fritz._request.assert_called_with( 'http://10.0.0.1/webservices/homeautoswitch.lua', { 'ain': u'08761 0000434', 'switchcmd': 'setswitchon', 'sid': None }) device.set_switch_state_off() device._fritz._request.assert_called_with( 'http://10.0.0.1/webservices/homeautoswitch.lua', { 'ain': u'08761 0000434', 'switchcmd': 'setswitchoff', 'sid': None }) device.set_switch_state_toggle() device._fritz._request.assert_called_with( 'http://10.0.0.1/webservices/homeautoswitch.lua', { 'ain': u'08761 0000434', 'switchcmd': 'setswitchtoggle', 'sid': None }) def test_get_switch_power(self): self.mock.side_effect = [ '18000', ] device = get_switch_test_device() device._fritz._request = self.mock eq_(device.get_switch_power(), 18000) device._fritz._request.assert_called_with( 'http://10.0.0.1/webservices/homeautoswitch.lua', { 'ain': u'08761 0000434', 'switchcmd': 'getswitchpower', 'sid': None }) def test_get_switch_energy(self): self.mock.side_effect = [ '2000', ] device = get_switch_test_device() device._fritz._request = self.mock eq_(device.get_switch_energy(), 2000) device._fritz._request.assert_called_with( 'http://10.0.0.1/webservices/homeautoswitch.lua', { 'ain': u'08761 0000434', 'switchcmd': 'getswitchenergy', 'sid': None }) def test_get_temperature(self): self.mock.side_effect = [ '245', ] device = get_switch_test_device() device._fritz._request = self.mock eq_(device.get_temperature(), 24.5) device._fritz._request.assert_called_with( 'http://10.0.0.1/webservices/homeautoswitch.lua', { 'ain': u'08761 0000434', 'switchcmd': 'gettemperature', 'sid': None }) def test_get_target_temperature(self): self.mock.side_effect = [ '38', ] device = get_switch_test_device() device._fritz._request = self.mock eq_(device.get_target_temperature(), 19.0) device._fritz._request.assert_called_with( 'http://10.0.0.1/webservices/homeautoswitch.lua', { 'ain': u'08761 0000434', 'switchcmd': 'gethkrtsoll', 'sid': None }) def test_get_eco_temperature(self): self.mock.side_effect = [ '40', ] device = get_switch_test_device() device._fritz._request = self.mock eq_(device.get_eco_temperature(), 20.0) device._fritz._request.assert_called_with( 'http://10.0.0.1/webservices/homeautoswitch.lua', { 'ain': u'08761 0000434', 'switchcmd': 'gethkrabsenk', 'sid': None }) def test_get_comfort_temperature(self): self.mock.side_effect = [ '41', ] device = get_switch_test_device() device._fritz._request = self.mock eq_(device.get_comfort_temperature(), 20.5) device._fritz._request.assert_called_with( 'http://10.0.0.1/webservices/homeautoswitch.lua', { 'ain': u'08761 0000434', 'switchcmd': 'gethkrkomfort', 'sid': None }) def test_hkr_without_temperature_values(self): self.mock.side_effect = [ device_hkr_no_temp_values_xml, ] element = self.fritz.get_device_element('11960 0071472') device = FritzhomeDevice(node=element) eq_(device.ain, '11960 0071472') eq_(device.offset, None) eq_(device.temperature, None) def test_hkr_get_state_on(self): self.mock.side_effect = [ device_hkr_state_on_xml, device_hkr_state_on_xml, ] device = self.fritz.get_device_by_ain('12345') eq_(device.get_hkr_state(), 'on') def test_hkr_get_state_off(self): self.mock.side_effect = [ device_hkr_state_off_xml, device_hkr_state_off_xml, ] device = self.fritz.get_device_by_ain('12345') eq_(device.get_hkr_state(), 'off') def test_hkr_get_state_eco(self): self.mock.side_effect = [ device_hkr_state_eco_xml, device_hkr_state_eco_xml, ] device = self.fritz.get_device_by_ain('12345') eq_(device.get_hkr_state(), 'eco') def test_hkr_get_state_comfort(self): self.mock.side_effect = [ device_hkr_state_comfort_xml, device_hkr_state_comfort_xml, ] device = self.fritz.get_device_by_ain('12345') eq_(device.get_hkr_state(), 'comfort') def test_hkr_get_state_manual(self): self.mock.side_effect = [ device_hkr_state_manual_xml, device_hkr_state_manual_xml, ] device = self.fritz.get_device_by_ain('12345') eq_(device.get_hkr_state(), 'manual') def test_hkr_set_state_on(self): self.mock.side_effect = [ device_hkr_state_manual_xml, device_hkr_state_manual_xml, ] device = self.fritz.get_device_by_ain('12345') device.set_hkr_state('on') device._fritz._request.assert_called_with( 'http://10.0.0.1/webservices/homeautoswitch.lua', { 'ain': u'12345', 'switchcmd': 'sethkrtsoll', 'param': 254, 'sid': None }) def test_hkr_set_state_off(self): self.mock.side_effect = [ device_hkr_state_manual_xml, device_hkr_state_manual_xml, ] device = self.fritz.get_device_by_ain('12345') device.set_hkr_state('off') device._fritz._request.assert_called_with( 'http://10.0.0.1/webservices/homeautoswitch.lua', { 'ain': u'12345', 'switchcmd': 'sethkrtsoll', 'param': 253, 'sid': None }) def test_hkr_battery_level(self): self.mock.side_effect = [device_hkr_fritzos_7_xml] device = self.fritz.get_device_by_ain('12345') eq_(device.battery_level, 70) def test_hkr_window_open(self): self.mock.side_effect = [device_hkr_fritzos_7_xml] device = self.fritz.get_device_by_ain('12345') eq_(device.window_open, False) def test_hkr_summer_active(self): self.mock.side_effect = [device_hkr_fritzos_7_xml] device = self.fritz.get_device_by_ain('12345') eq_(device.summer_active, True) def test_hkr_holiday_active(self): self.mock.side_effect = [device_hkr_fritzos_7_xml] device = self.fritz.get_device_by_ain('12345') eq_(device.holiday_active, False) def test_magenta_smoke_alarm(self): self.mock.side_effect = [ device_magenta_smoke_alarm_xml, ] device = self.fritz.get_device_by_ain('11324 0244498-1') assert_true(device.present) eq_(device.alert_state, None)
class TestFritzhome(object): def setup(self): self.mock = MagicMock() self.fritz = Fritzhome("10.0.0.1", "user", "pass") self.fritz._request = self.mock @raises(LoginError) def test_login_fail(self): self.mock.side_effect = [ response("login_rsp_without_valid_sid"), response("login_rsp_without_valid_sid"), ] self.fritz.login() def test_login(self): self.mock.side_effect = [ response("login_rsp_without_valid_sid"), response("login_rsp_with_valid_sid"), ] self.fritz.login() def test_logout(self): self.fritz.logout() self.fritz._request.assert_called_with( "http://10.0.0.1/login_sid.lua", {"sid": None, "security:command/logout": "1"}, ) def test_aha_request(self): self.fritz._aha_request(cmd="testcmd") self.fritz._request.assert_called_with( "http://10.0.0.1/webservices/homeautoswitch.lua", {"sid": None, "switchcmd": "testcmd"}, ) self.fritz._aha_request(cmd="testcmd", ain="1") self.fritz._request.assert_called_with( "http://10.0.0.1/webservices/homeautoswitch.lua", {"sid": None, "switchcmd": "testcmd", "ain": "1"}, ) self.fritz._aha_request(cmd="testcmd", ain="1", param={"a": "1", "b": "2"}) self.fritz._request.assert_called_with( "http://10.0.0.1/webservices/homeautoswitch.lua", { "sid": None, "switchcmd": "testcmd", "ain": "1", "param": {"a": "1", "b": "2"}, }, ) @raises(InvalidError) def test_aha_request_invalid(self): self.mock.side_effect = [ "inval", ] self.fritz._aha_request(cmd="estcmd") def test_get_device_element(self): self.mock.side_effect = [ response("device_list"), response("device_list"), response("device_list"), ] element = self.fritz.get_device_element("08761 0000434") eq_(element.attrib["identifier"], "08761 0000434") eq_(element.attrib["fwversion"], "03.33") element = self.fritz.get_device_element("08761 1048079") eq_(element.attrib["identifier"], "08761 1048079") eq_(element.attrib["fwversion"], "03.44") element = self.fritz.get_device_element("unknown") eq_(element, None) def test_get_device_by_ain(self): self.mock.side_effect = [ response("device_list"), response("device_list"), ] device = self.fritz.get_device_by_ain("08761 0000434") eq_(device.ain, "08761 0000434") def test_aha_get_devices(self): self.mock.side_effect = [ response("device_list"), ] devices = self.fritz.get_devices() eq_(devices[0].name, "Steckdose") eq_(devices[1].name, "FRITZ!DECT Rep 100 #1") def test_get_device_name(self): self.mock.side_effect = ["testname"] eq_(self.fritz.get_device_name(ain="1234"), "testname") self.fritz._request.assert_called_with( "http://10.0.0.1/webservices/homeautoswitch.lua", {"sid": None, "ain": "1234", "switchcmd": "getswitchname"}, ) def test_set_target_temperature(self): self.fritz.set_target_temperature("1", 25.5) self.fritz._request.assert_called_with( "http://10.0.0.1/webservices/homeautoswitch.lua", {"sid": None, "ain": "1", "switchcmd": "sethkrtsoll", "param": 51}, ) self.fritz.set_target_temperature("1", 0.0) self.fritz._request.assert_called_with( "http://10.0.0.1/webservices/homeautoswitch.lua", {"sid": None, "ain": "1", "switchcmd": "sethkrtsoll", "param": 253}, ) self.fritz.set_target_temperature("1", 32.0) self.fritz._request.assert_called_with( "http://10.0.0.1/webservices/homeautoswitch.lua", {"sid": None, "ain": "1", "switchcmd": "sethkrtsoll", "param": 254}, ) def test_get_alert_state(self): self.mock.side_effect = [ response("device_list"), ] eq_(self.fritz.get_alert_state("05333 0077045-1"), True)
class TestDevice(object): def setup(self): self.mock = MagicMock() self.fritz = Fritzhome("10.0.0.1", "user", "pass") self.fritz._request = self.mock def test_device_init(self): self.mock.side_effect = [response("device_list")] device = self.fritz.get_device_by_ain("08761 0000434") eq_(device.ain, "08761 0000434") eq_(device.fw_version, "03.33") assert_true(device.present) assert_true(device.has_switch) assert_true(device.has_temperature_sensor) assert_true(device.has_powermeter) def test_device_init_present_false(self): self.mock.side_effect = [ response("device_not_present"), ] device = self.fritz.get_device_by_ain("11960 0089208") eq_(device.ain, "11960 0089208") assert_false(device.present) def test_device_init_no_devicelock_element(self): self.mock.side_effect = [ response("device_no_devicelock_element"), ] device = self.fritz.get_device_by_ain("08761 0373130") eq_(device.ain, "08761 0373130") assert_true(device.present) def test_device_umlaut(self): self.mock.side_effect = [ response("device_with_umlaut_in_name"), ] device = self.fritz.get_device_by_ain("08761 0373130") eq_(device.ain, "08761 0373130") eq_(device.name, u"äöü") def test_device_hkr_fw_03_50(self): self.mock.side_effect = [ response("device_hkr_fw_03_50"), ] device = self.fritz.get_device_by_ain("12345") assert_true(device.present) eq_(device.device_lock, None) eq_(device.lock, None) eq_(device.error_code, None) eq_(device.battery_low, None) def test_device_hkr_fw_03_54(self): self.mock.side_effect = [ response("device_hkr_fw_03_54"), ] device = self.fritz.get_device_by_ain("23456") assert_true(device.present) def test_device_alert_on(self): self.mock.side_effect = [ response("device_alert_on"), ] device = self.fritz.get_device_by_ain("05333 0077045-1") assert_true(device.present) eq_(device.alert_state, True) def test_device_alert_off(self): self.mock.side_effect = [ response("device_alert_off"), ] device = self.fritz.get_device_by_ain("05333 0077045-2") assert_true(device.present) eq_(device.alert_state, False) def test_device_alert_no_alertstate(self): self.mock.side_effect = [ response("device_alert_no_alertstate"), ] device = self.fritz.get_device_by_ain("05333 0077045-3") assert_true(device.present) eq_(device.alert_state, None) def test_device_update(self): self.mock.side_effect = [ response("device_list_battery_ok"), response("device_list_battery_low"), ] device = self.fritz.get_device_by_ain("11959 0171328") assert_false(device.battery_low) device.update() assert_true(device.battery_low) def test_get_device_present(self): self.mock.side_effect = ["1", "0"] device = get_switch_test_device() device._fritz._request = self.mock assert_true(device.get_present()) assert_false(device.get_present()) device._fritz._request.assert_called_with( "http://10.0.0.1/webservices/homeautoswitch.lua", { "ain": u"08761 0000434", "switchcmd": "getswitchpresent", "sid": None }, ) def test_get_switch_state(self): self.mock.side_effect = ["1", "0"] device = get_switch_test_device() device._fritz._request = self.mock assert_true(device.get_switch_state()) assert_false(device.get_switch_state()) device._fritz._request.assert_called_with( "http://10.0.0.1/webservices/homeautoswitch.lua", { "ain": u"08761 0000434", "switchcmd": "getswitchstate", "sid": None }, ) def test_set_switch_state(self): device = get_switch_test_device() device._fritz._request = self.mock device.set_switch_state_on() device._fritz._request.assert_called_with( "http://10.0.0.1/webservices/homeautoswitch.lua", { "ain": u"08761 0000434", "switchcmd": "setswitchon", "sid": None }, ) device.set_switch_state_off() device._fritz._request.assert_called_with( "http://10.0.0.1/webservices/homeautoswitch.lua", { "ain": u"08761 0000434", "switchcmd": "setswitchoff", "sid": None }, ) device.set_switch_state_toggle() device._fritz._request.assert_called_with( "http://10.0.0.1/webservices/homeautoswitch.lua", { "ain": u"08761 0000434", "switchcmd": "setswitchtoggle", "sid": None }, ) def test_get_switch_power(self): self.mock.side_effect = [ "18000", ] device = get_switch_test_device() device._fritz._request = self.mock eq_(device.get_switch_power(), 18000) device._fritz._request.assert_called_with( "http://10.0.0.1/webservices/homeautoswitch.lua", { "ain": u"08761 0000434", "switchcmd": "getswitchpower", "sid": None }, ) def test_get_switch_energy(self): self.mock.side_effect = [ "2000", ] device = get_switch_test_device() device._fritz._request = self.mock eq_(device.get_switch_energy(), 2000) device._fritz._request.assert_called_with( "http://10.0.0.1/webservices/homeautoswitch.lua", { "ain": u"08761 0000434", "switchcmd": "getswitchenergy", "sid": None }, ) def test_get_temperature(self): self.mock.side_effect = [ "245", ] device = get_switch_test_device() device._fritz._request = self.mock eq_(device.get_temperature(), 24.5) device._fritz._request.assert_called_with( "http://10.0.0.1/webservices/homeautoswitch.lua", { "ain": u"08761 0000434", "switchcmd": "gettemperature", "sid": None }, ) def test_get_target_temperature(self): self.mock.side_effect = [ "38", ] device = get_switch_test_device() device._fritz._request = self.mock eq_(device.get_target_temperature(), 19.0) device._fritz._request.assert_called_with( "http://10.0.0.1/webservices/homeautoswitch.lua", { "ain": u"08761 0000434", "switchcmd": "gethkrtsoll", "sid": None }, ) def test_get_eco_temperature(self): self.mock.side_effect = [ "40", ] device = get_switch_test_device() device._fritz._request = self.mock eq_(device.get_eco_temperature(), 20.0) device._fritz._request.assert_called_with( "http://10.0.0.1/webservices/homeautoswitch.lua", { "ain": u"08761 0000434", "switchcmd": "gethkrabsenk", "sid": None }, ) def test_get_comfort_temperature(self): self.mock.side_effect = [ "41", ] device = get_switch_test_device() device._fritz._request = self.mock eq_(device.get_comfort_temperature(), 20.5) device._fritz._request.assert_called_with( "http://10.0.0.1/webservices/homeautoswitch.lua", { "ain": u"08761 0000434", "switchcmd": "gethkrkomfort", "sid": None }, ) def test_hkr_without_temperature_values(self): self.mock.side_effect = [ response("device_hkr_no_temp_values"), ] element = self.fritz.get_device_element("11960 0071472") device = FritzhomeDevice(node=element) eq_(device.ain, "11960 0071472") eq_(device.offset, None) eq_(device.temperature, None) def test_hkr_get_state_on(self): self.mock.side_effect = [ response("device_hkr_state_on"), response("device_hkr_state_on"), ] device = self.fritz.get_device_by_ain("12345") eq_(device.get_hkr_state(), "on") def test_hkr_get_state_off(self): self.mock.side_effect = [ response("device_hkr_state_off"), response("device_hkr_state_off"), ] device = self.fritz.get_device_by_ain("12345") eq_(device.get_hkr_state(), "off") def test_hkr_get_state_eco(self): self.mock.side_effect = [ response("device_hkr_state_eco"), response("device_hkr_state_eco"), ] device = self.fritz.get_device_by_ain("12345") eq_(device.get_hkr_state(), "eco") def test_hkr_get_state_comfort(self): self.mock.side_effect = [ response("device_hkr_state_comfort"), response("device_hkr_state_comfort"), ] device = self.fritz.get_device_by_ain("12345") eq_(device.get_hkr_state(), "comfort") def test_hkr_get_state_manual(self): self.mock.side_effect = [ response("device_hkr_state_manual"), response("device_hkr_state_manual"), ] device = self.fritz.get_device_by_ain("12345") eq_(device.get_hkr_state(), "manual") def test_hkr_set_state_on(self): self.mock.side_effect = [ response("device_hkr_state_manual"), response("device_hkr_state_manual"), ] device = self.fritz.get_device_by_ain("12345") device.set_hkr_state("on") device._fritz._request.assert_called_with( "http://10.0.0.1/webservices/homeautoswitch.lua", { "ain": u"12345", "switchcmd": "sethkrtsoll", "param": 254, "sid": None }, ) def test_hkr_set_state_off(self): self.mock.side_effect = [ response("device_hkr_state_manual"), response("device_hkr_state_manual"), ] device = self.fritz.get_device_by_ain("12345") device.set_hkr_state("off") device._fritz._request.assert_called_with( "http://10.0.0.1/webservices/homeautoswitch.lua", { "ain": u"12345", "switchcmd": "sethkrtsoll", "param": 253, "sid": None }, ) def test_hkr_battery_level(self): self.mock.side_effect = [response("device_hkr_fritzos_7")] device = self.fritz.get_device_by_ain("12345") eq_(device.battery_level, 70) def test_hkr_window_open(self): self.mock.side_effect = [response("device_hkr_fritzos_7")] device = self.fritz.get_device_by_ain("12345") eq_(device.window_open, False) def test_hkr_summer_active(self): self.mock.side_effect = [response("device_hkr_fritzos_7")] device = self.fritz.get_device_by_ain("12345") eq_(device.summer_active, True) def test_hkr_holiday_active(self): self.mock.side_effect = [response("device_hkr_fritzos_7")] device = self.fritz.get_device_by_ain("12345") eq_(device.holiday_active, False) def test_magenta_smoke_alarm(self): self.mock.side_effect = [ response("device_magenta_smoke_alarm"), ] device = self.fritz.get_device_by_ain("11324 0244498-1") assert_true(device.present) eq_(device.alert_state, None)
class TestFritzhome(object): def setup(self): self.mock = MagicMock() self.fritz = Fritzhome('10.0.0.1', 'user', 'pass') self.fritz._request = self.mock @raises(LoginError) def test_login_fail(self): self.mock.side_effect = [ login_rsp_without_valid_sid, login_rsp_without_valid_sid, ] self.fritz.login() def test_login(self): self.mock.side_effect = [ login_rsp_without_valid_sid, login_rsp_with_valid_sid, ] self.fritz.login() def test_logout(self): self.fritz.logout() self.fritz._request.assert_called_with( 'http://10.0.0.1/login_sid.lua', { 'sid': None, 'security:command/logout': '1' }) def test_aha_request(self): self.fritz._aha_request(cmd='testcmd') self.fritz._request.assert_called_with( 'http://10.0.0.1/webservices/homeautoswitch.lua', { 'sid': None, 'switchcmd': 'testcmd' }) self.fritz._aha_request(cmd='testcmd', ain='1') self.fritz._request.assert_called_with( 'http://10.0.0.1/webservices/homeautoswitch.lua', { 'sid': None, 'switchcmd': 'testcmd', 'ain': '1' }) self.fritz._aha_request(cmd='testcmd', ain='1', param={ 'a': '1', 'b': '2' }) self.fritz._request.assert_called_with( 'http://10.0.0.1/webservices/homeautoswitch.lua', { 'sid': None, 'switchcmd': 'testcmd', 'ain': '1', 'param': { 'a': '1', 'b': '2' } }) @raises(InvalidError) def test_aha_request_invalid(self): self.mock.side_effect = [ 'inval', ] self.fritz._aha_request(cmd='estcmd') def test_get_device_element(self): self.mock.side_effect = [ device_list_xml, device_list_xml, device_list_xml, ] element = self.fritz.get_device_element('08761 0000434') eq_(element.getAttribute('identifier'), '08761 0000434') eq_(element.getAttribute('fwversion'), '03.33') element = self.fritz.get_device_element('08761 1048079') eq_(element.getAttribute('identifier'), '08761 1048079') eq_(element.getAttribute('fwversion'), '03.44') element = self.fritz.get_device_element('unknown') eq_(element, None) def test_get_device_by_ain(self): self.mock.side_effect = [ device_list_xml, device_list_xml, ] device = self.fritz.get_device_by_ain('08761 0000434') eq_(device.ain, '08761 0000434') def test_aha_get_devices(self): self.mock.side_effect = [ device_list_xml, ] devices = self.fritz.get_devices() eq_(devices[0].name, 'Steckdose') eq_(devices[1].name, 'FRITZ!DECT Rep 100 #1') def test_get_device_name(self): self.mock.side_effect = ['testname'] eq_(self.fritz.get_device_name(ain='1234'), 'testname') self.fritz._request.assert_called_with( 'http://10.0.0.1/webservices/homeautoswitch.lua', { 'sid': None, 'ain': '1234', 'switchcmd': 'getswitchname' }) def test_set_target_temperature(self): self.fritz.set_target_temperature('1', 25.5) self.fritz._request.assert_called_with( 'http://10.0.0.1/webservices/homeautoswitch.lua', { 'sid': None, 'ain': '1', 'switchcmd': 'sethkrtsoll', 'param': 51 }) self.fritz.set_target_temperature('1', 0.0) self.fritz._request.assert_called_with( 'http://10.0.0.1/webservices/homeautoswitch.lua', { 'sid': None, 'ain': '1', 'switchcmd': 'sethkrtsoll', 'param': 253 }) self.fritz.set_target_temperature('1', 32.0) self.fritz._request.assert_called_with( 'http://10.0.0.1/webservices/homeautoswitch.lua', { 'sid': None, 'ain': '1', 'switchcmd': 'sethkrtsoll', 'param': 254 }) def test_get_alert_state(self): self.mock.side_effect = [ device_list_xml, ] eq_(self.fritz.get_alert_state('05333 0077045-1'), True)