Ejemplo n.º 1
0
    def test_null(self):
        """Test a null or None result."""
        sens = Sensor("6100_40263F00", "s_null", "kWh")
        assert sens.extract_value({"6100_40263F00": {"val": None}}) is False
        assert sens.value is None
        assert sens.extract_value({"6100_40263F00": {
            "1": [{
                "val": None
            }]
        }}) is False
        assert sens.value is None
        assert sens.extract_value({}) is False
        assert sens.value is None

        # For "W" sensors we will set it to 0 by default.
        sens = Sensor("6100_40263F00", "s_null", "W")
        assert sens.extract_value({"6100_40263F00": {"val": None}}) is True
        assert sens.value == 0
        assert sens.extract_value({"6100_40263F00": {
            "1": [{
                "val": None
            }]
        }}) is False
        assert sens.value == 0
        assert sens.extract_value({}) is True
        assert sens.value is None
Ejemplo n.º 2
0
def sensors():
    """Fixture to create some sensors."""
    yield [
        (402, True, Sensor("6400_00262200", "s_402", "W")),
        (3514, True, Sensor("6400_00260100", "s_3514", "W", 1000)),
        (448, True, Sensor("6380_40251E00_0", "pv_power_a", unit="W")),
    ]
Ejemplo n.º 3
0
 def test_null(self):
     """Test a null or None result."""
     sens = Sensor("6100_40263F00", "s_null", "W")
     assert (sens.extract_value(
         {"result": {
             "_": {
                 "6100_40263F00": {
                     "val": None
                 }
             }
         }}) is False)
     assert sens.value is None
     assert (sens.extract_value(
         {"result": {
             "_": {
                 "6100_40263F00": {
                     "1": [{
                         "val": None
                     }]
                 }
             }
         }}) is False)
     assert sens.value is None
     assert sens.extract_value({"result": {"_": {}}}) is False
     assert sens.value is None
Ejemplo n.º 4
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
Ejemplo n.º 5
0
 def test_no_value_decoded(self):
     sens = Sensor("6100_40263F00", "s_null", "W")
     assert sens.extract_value({"6100_40263F00": None}) is True
     sens = Sensor("6100_40263F00", "s_null", "kWh")
     assert sens.extract_value({"6100_40263F00": None}) is False
Ejemplo n.º 6
0
def sensors():
    """Fixture to create some sensors."""
    yield [
        (402, True, Sensor("6400_00262200", "s_402", "W")),
        (3514, True, Sensor("6400_00260100", "s_3514", "W", 1000)),
    ]