This commit is contained in:
Mat931
2026-05-01 18:15:40 +02:00
parent 2068d114eb
commit 2dd8a9913b
3 changed files with 1 additions and 26 deletions
@@ -91,7 +91,6 @@ class ESPHomeOTAComponent final : public ota::OTAComponent {
std::string password_;
std::unique_ptr<uint8_t[]> auth_buf_;
#endif // USE_OTA_PASSWORD
bool extended_proto_{false};
socket::ListenSocket *server_{nullptr};
std::unique_ptr<socket::Socket> client_;
+1 -1
View File
@@ -65,7 +65,7 @@ SERVER_FEATURE_SUPPORTS_PARTITION_ACCESS = 0x02
# OTA types this client knows how to send. Future PRs that add bootloader/partition
# updates extend this set. Anything outside the set is rejected up front so callers
# of perform_ota/run_ota get a clear error instead of a post-auth 0x8E from the device.
_SUPPORTED_OTA_TYPES: frozenset[int] = frozenset({OTA_TYPE_UPDATE_APP})
_SUPPORTED_OTA_TYPES: frozenset[int] = frozenset({OTA_TYPE_UPDATE_APP, OTA_TYPE_UPDATE_PARTITION_TABLE})
UPLOAD_BLOCK_SIZE = 8192
UPLOAD_BUFFER_SIZE = UPLOAD_BLOCK_SIZE * 8
-24
View File
@@ -892,30 +892,6 @@ def test_perform_ota_successful_partition_table(
)
@pytest.mark.usefixtures("mock_time")
def test_perform_ota_extended_protocol_unsupported(
mock_socket: Mock, mock_file: io.BytesIO
) -> None:
"""Test OTA fails when extended protocol is required but unsupported."""
# Setup socket responses for recv calls
recv_responses = [
bytes([espota2.RESPONSE_OK]), # First byte of version response
bytes([espota2.OTA_VERSION_2_0]), # Version number
bytes([espota2.RESPONSE_HEADER_OK]), # Features response
]
mock_socket.recv.side_effect = recv_responses
with pytest.raises(espota2.OTAError, match="Device only supports app updates"):
espota2.perform_ota(
mock_socket,
"testpass",
mock_file,
"partitions.bin",
espota2.OTA_TYPE_UPDATE_PARTITION_TABLE,
)
@pytest.mark.usefixtures("mock_time")
def test_perform_ota_device_rejects_with_unsupported_ota_type(
mock_socket: Mock, mock_file: io.BytesIO