示例#1
0
    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
示例#2
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
示例#3
0
 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
示例#4
0
 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
示例#5
0
 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
示例#6
0
 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
示例#7
0
    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
示例#8
0
 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()