From 7a6168c799cf6bd48dc0e5afbfa62b4be6f4b87d Mon Sep 17 00:00:00 2001
From: Marijn Suijten <marijns95@gmail.com>
Date: Fri, 14 Apr 2023 01:38:36 +0200
Subject: [PATCH] Test inverter reply without firmware

---
 tests/fixtures/tcp_reply_no_firmware.data | Bin 0 -> 99 bytes
 tests/test_tcp_models.py                  |  38 ++++++++++++++++++++++
 2 files changed, 38 insertions(+)
 create mode 100644 tests/fixtures/tcp_reply_no_firmware.data

diff --git a/tests/fixtures/tcp_reply_no_firmware.data b/tests/fixtures/tcp_reply_no_firmware.data
new file mode 100644
index 0000000000000000000000000000000000000000..f00389224de71c32d85fdc4437187113e6602cf9
GIT binary patch
literal 99
zcmc}@b=+V&;gvE7H!?B$`MCHQ85kKD8XFlJ85o-~ykeQp!0`V+0|Uc!Aj$Y22sn;{
gNZ~G!I0P_VWMKT3&A?D`hk+5O5~3c&0D@0q0N(c}V*mgE

literal 0
HcmV?d00001

diff --git a/tests/test_tcp_models.py b/tests/test_tcp_models.py
index 0a88d645..a552b3f8 100644
--- a/tests/test_tcp_models.py
+++ b/tests/test_tcp_models.py
@@ -297,6 +297,44 @@ async def test_inverter_tcp() -> None:
     await server_exit
 
 
+async def test_inverter_tcp_no_firmware() -> None:
+    """Test request from an Inverter without firmware reply - TCP source."""
+    serial_number = 987654321
+
+    (server_exit, port) = tcp_server(serial_number, "tcp_reply_no_firmware.data")
+
+    client = OmnikInverter(
+        host="localhost",
+        source_type="tcp",
+        serial_number=serial_number,
+        tcp_port=port,
+    )
+
+    inverter: Inverter = await client.inverter()
+
+    assert inverter
+    assert inverter.solar_rated_power is None
+    assert inverter.solar_current_power == 0
+
+    assert inverter.model is None
+    assert inverter.serial_number == "NLDN202013212035"
+    assert inverter.temperature == 23.400000000000002
+    assert inverter.dc_input_voltage == [118.30000000000001, 0.0, None]
+    assert inverter.dc_input_current == [0.0, 15.100000000000001, None]
+    assert inverter.ac_output_voltage == [224.5, None, None]
+    assert inverter.ac_output_current == [0.1, None, None]
+    assert inverter.ac_output_frequency == [50.02, None, None]
+    assert inverter.ac_output_power == [0, None, None]
+    assert inverter.solar_energy_today == 7.21
+    assert inverter.solar_energy_total == 12861.900000000001
+    assert inverter.solar_hours_total == 30940
+    assert inverter.inverter_active is True
+    assert inverter.firmware is None
+    assert inverter.firmware_slave is None
+
+    await server_exit
+
+
 async def test_inverter_tcp_offline() -> None:
     """Test request from an Inverter (offline) - TCP source."""
     serial_number = 1608449224