def test_display_func(self, caplog, api_mock): """Test display function outputs text.""" self.vesync_obj.outlets.append( VeSyncOutdoorPlug(json_vals.LIST_CONF_OUTDOOR_1, self.vesync_obj)) self.vesync_obj.outlets.append( VeSyncOutlet10A(json_vals.LIST_CONF_10AUS, self.vesync_obj)) self.vesync_obj.outlets.append( VeSyncOutlet15A(json_vals.LIST_CONF_15A, self.vesync_obj)) self.vesync_obj.outlets.append( VeSyncOutlet7A(json_vals.LIST_CONF_7A, self.vesync_obj)) self.vesync_obj.switches.append( VeSyncWallSwitch(json_vals.LIST_CONF_WS, self.vesync_obj)) self.vesync_obj.fans.append( VeSyncAir131(json_vals.LIST_CONF_AIR, self.vesync_obj)) self.vesync_obj.bulbs.append( VeSyncBulbESL100(json_vals.LIST_CONF_ESL100, self.vesync_obj)) dev_list = [ self.vesync_obj.outlets, self.vesync_obj.switches, self.vesync_obj.fans, self.vesync_obj.bulbs ] for device in chain(*dev_list): device.display() assert len(caplog.records) == 0
def test_15a_no_details(self, caplog, api_mock): """Test 15A details return with no details and code=0""" bad_15a_details = {"code": 0, "deviceStatus": "on"} self.mock_api.return_value = (bad_15a_details, 200) vswitch15a = VeSyncOutlet15A(DEV_LIST_DETAIL, self.vesync_obj) vswitch15a.get_details() assert len(caplog.records) == 2
def test_15a_details_fail(self, caplog, api_mock): """Test 15A get_details with Code>0""" self.mock_api.return_value = BAD_15A_LIST vswitch15a = VeSyncOutlet15A(DEV_LIST_DETAIL, self.vesync_obj) vswitch15a.get_details() assert len(caplog.records) == 1 assert 'details' in caplog.text
def test_15a_details(self, api_mock): """Test 15A get_details() """ self.mock_api.return_value = CORRECT_15A_DETAILS vswitch15a = VeSyncOutlet15A(DEV_LIST_DETAIL, self.vesync_obj) vswitch15a.get_details() dev_details = vswitch15a.details assert vswitch15a.device_status == 'on' assert type(dev_details) == dict assert dev_details['active_time'] == 1 assert dev_details['energy'] == 1 assert dev_details['power'] == '1' assert dev_details['voltage'] == '1' assert vswitch15a.power == 1 assert vswitch15a.voltage == 1 assert vswitch15a.active_time == 1 assert vswitch15a.energy_today == 1
def test_history_fail(self, caplog, api_mock): """Test 15A energy failure""" bad_history = {"code": 1} self.mock_api.return_value = (bad_history, 200) vswitch15a = VeSyncOutlet15A(DEV_LIST_DETAIL, self.vesync_obj) vswitch15a.update_energy() assert len(caplog.records) == 2 assert 'weekly' in caplog.text caplog.clear() vswitch15a.get_monthly_energy() assert len(caplog.records) == 2 assert 'monthly' in caplog.text caplog.clear() vswitch15a.get_yearly_energy() assert len(caplog.records) == 2 assert 'yearly' in caplog.text
def test_15a_yearly(self, api_mock): """Test 15A get_yearly_energy""" self.mock_api.return_value = ENERGY_HISTORY vswitch15a = VeSyncOutlet15A(DEV_LIST_DETAIL, self.vesync_obj) vswitch15a.get_yearly_energy() body = helpers.req_body(self.vesync_obj, 'energy_year') body['uuid'] = vswitch15a.uuid self.mock_api.assert_called_with('/15a/v1/device/energyyear', 'post', headers=helpers.req_headers( self.vesync_obj), json=body) energy_dict = vswitch15a.energy['year'] assert energy_dict['energy_consumption_of_today'] == 1 assert energy_dict['cost_per_kwh'] == 1 assert energy_dict['max_energy'] == 1 assert energy_dict['total_energy'] == 1 assert energy_dict['data'] == [1, 1] assert vswitch15a.yearly_energy_total == 1
def test_15a_onoff(self, caplog, api_mock): """Test 15A Device On/Off Methods""" self.mock_api.return_value = ({"code": 0}, 200) vswitch15a = VeSyncOutlet15A(DEV_LIST_DETAIL, self.vesync_obj) head = helpers.req_headers(self.vesync_obj) body = helpers.req_body(self.vesync_obj, 'devicestatus') body['status'] = 'on' body['uuid'] = vswitch15a.uuid on = vswitch15a.turn_on() self.mock_api.assert_called_with('/15a/v1/device/devicestatus', 'put', headers=head, json=body) assert on off = vswitch15a.turn_off() body['status'] = 'off' self.mock_api.assert_called_with('/15a/v1/device/devicestatus', 'put', headers=head, json=body) assert off
def test_15a_onoff_fail(self, api_mock): """Test 15A On/Off Fail with Code>0""" self.mock_api.return_value = ({"code": 1}, 400) vswitch15a = VeSyncOutlet15A(DEV_LIST_DETAIL, self.vesync_obj) assert not vswitch15a.turn_on() assert not vswitch15a.turn_off()