Fix snapshots testing repr 0 value IntFlags (#88379)

This commit is contained in:
Franck Nijhof 2023-02-18 14:38:19 +01:00 committed by GitHub
parent 1caacab8dd
commit 31061b9f35
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -3,6 +3,7 @@ from __future__ import annotations
from contextlib import suppress from contextlib import suppress
import dataclasses import dataclasses
from enum import IntFlag
from pathlib import Path from pathlib import Path
from typing import Any from typing import Any
@ -110,6 +111,10 @@ class HomeAssistantSnapshotSerializer(AmberDataSerializer):
serializable_data = cls._serializable_config_entry(data) serializable_data = cls._serializable_config_entry(data)
elif dataclasses.is_dataclass(data): elif dataclasses.is_dataclass(data):
serializable_data = dataclasses.asdict(data) serializable_data = dataclasses.asdict(data)
elif isinstance(data, IntFlag) and data == 0:
# The repr of an enum.IntFlag has changed between Python 3.10 and 3.11
# This only concerns the 0 case, which we normalize here
serializable_data = 0
else: else:
serializable_data = data serializable_data = data
with suppress(TypeError): with suppress(TypeError):