Exemple #1
0
 async def test_read_no_password(self, mock_warn, mock_aioresponse):  # noqa: F811
     """Test read_body without password."""
     mock_aioresponse.post(
         f"{self.base_url}/dyn/getDashValues.json",
         payload={
             "result": {
                 "0199-xxxxx385": {
                     "6800_08822000": {
                         "1": [
                             {
                                 "validVals": [9401, 9402, 9403, 9404, 9405],
                                 "val": [{"tag": 9402}],
                             }
                         ]
                     },
                 }
             }
         },
     )
     session = aiohttp.ClientSession()
     sma = SMA(session, self.host)
     sensors = Sensors(device_type_sensor)
     assert await sma.read(sensors)
     assert sensors["6800_08822000"].value == "Sunny Boy 3.6"
     assert mock_warn.call_count == 0
Exemple #2
0
async def init_integration(hass, mock_config_entry):
    """Create a fake SMA Config Entry."""
    mock_config_entry.add_to_hass(hass)

    with patch("pysma.SMA.read"), patch("pysma.SMA.get_sensors",
                                        return_value=Sensors(
                                            sensor_map[DEVCLASS_INVERTER])):
        await hass.config_entries.async_setup(mock_config_entry.entry_id)
    await hass.async_block_till_done()
    return mock_config_entry
Exemple #3
0
 def test_default_jmes(self, mock_warn):
     """Ensure default sensors are ok."""
     sens = Sensors(sensor_map[DEVCLASS_INVERTER])
     for sen in sens:
         sen.extract_value(SB_1_5)
     assert mock_warn.called
Exemple #4
0
 def test_type_error(self, mock_warn):
     """Ensure TypeError on not isinstance."""
     sen = Sensors()
     with pytest.raises(TypeError):
         sen.add("This is not a Sensor")
Exemple #5
0
 def test_default_no_duplicates(self, mock_warn):
     """Ensure warning on duplicates."""
     sen = Sensors(sensor_map[DEVCLASS_INVERTER])
     assert len(sen) > 20
     assert len(sen) < 50
     assert mock_warn.call_count == 0
     # Add duplicate frequency
     news = Sensor("key1", "frequency", "")
     sen.add(news)
     assert mock_warn.call_count == 1
     assert sen[news.name] == news
     # Add duplicate freq, key should not be raised
     sen.add(Sensor("6100_00465700", "frequency", ""))
     assert mock_warn.call_count == 2
     # Add duplicate freq key only
     sen.add(Sensor("6100_00465700", "f001", ""))
     assert mock_warn.call_count == 3
     # Test different key_idx only
     sen.add(Sensor("key1_0", "frequency_0", ""))
     assert mock_warn.call_count == 3
     sen.add(Sensor("key1_1", "frequency_1", ""))
     assert mock_warn.call_count == 3