def test_refresh_list_and_create_on_pydantic_object(): refresh_config01 = RefreshConfig( identifier=1, db_content={ "name": "Master Bedroom", "area": 20, "rssi": 20 }, pydantic_model=Room, update_exclude=["area"] ) refresh_config02 = RefreshConfig( identifier=2, db_content=Room(**{ "id": 2, "name": "Master Living Room", "area": 20, "rssi": 20 }), pydantic_model=Room, update_exclude=["area"] ) id01_before = id(room01) rooms = [room01] refresh_pydantic_objects(rooms, [refresh_config02, refresh_config01]) assert room01.name == "Master Bedroom" assert room01.area == 10 assert room01.rssi == 20 assert id(room01) == id01_before print(room01.dict()) print(rooms)
def test_refresh_list(): refresh_config01 = RefreshConfig( identifier=1, db_content={ "name": "Master Bedroom", "area": 20, "rssi": 20 }, pydantic_model=Room, update_exclude=["area"] ) refresh_config02 = RefreshConfig( identifier=2, db_content={ "name": "Master Living Room", "area": 20, "rssi": 20 }, pydantic_model=Room, update_exclude=["area"] ) id01_before = id(room01) id02_before = id(room02) refresh_pydantic_objects([room01, room02], [refresh_config02, refresh_config01]) assert room01.name == "Master Bedroom" assert room01.area == 10 assert room01.rssi == 20 assert room02.name == "Master Living Room" assert room02.area == 10 assert room02.rssi == 20 assert id(room01) == id01_before assert id(room02) == id02_before print(room01.dict()) print(room02.dict())
def test_refresh_with_compound_fields_update(): refresh_config_device01 = RefreshConfig( identifier="cid01", db_content={ "sku": sku, "device_name": "AP400", "state": [Property(name="DISPLAY", value="ON"), Property(name="FAN_SPEED", value=2)] }, pydantic_model=Device, update_exclude=["sku"] ) refresh_config_room01 = RefreshConfig( identifier=1, db_content={ "name": "Master Bedroom", "area": 20, "rssi": 20 }, pydantic_model=Room, update_exclude=["area"], compound_fields={"devices": [refresh_config_device01]} ) refresh_config_room02 = RefreshConfig( identifier=2, db_content={ "name": "Master Living Room", "area": 20, "rssi": 20 }, pydantic_model=Room, update_exclude=["area"] ) id01_before = id(room01) id02_before = id(room02) refresh_pydantic_objects([room01, room02], [refresh_config_room02, refresh_config_room01]) assert room01.name == "Master Bedroom" assert room01.area == 10 assert room01.rssi == 20 assert room02.name == "Master Living Room" assert room02.area == 10 assert room02.rssi == 20 assert id(room01) == id01_before assert id(room02) == id02_before print(room01.dict()) print(room02.dict())
def test_no_include_and_exclude(): refresh_config = RefreshConfig( identifier=1, db_content={ "name": "Backyard" }, pydantic_model=Room ) refresh_pydantic_object(room01, refresh_config) assert room01.name == "Backyard" print(room01.dict())
def test_id_not_equal(): refresh_config = RefreshConfig( identifier="fan_speed", db_content={ "name": "mode" }, pydantic_model=Property ) try: refresh_pydantic_object(prop, refresh_config=refresh_config) except ValueError as e: print(e)
def test_include(): refresh_config = RefreshConfig( identifier=1, db_content={ "name": "Backyard", "area": 20 }, pydantic_model=Room, update_include=["name"], ) id_before = id(room01) refresh_pydantic_object(room01, refresh_config) assert room01.name == "Backyard" assert room01.area == 10 assert id(room01) == id_before print(room01.dict())
def test_refresh_list_and_delete(): refresh_config01 = RefreshConfig( identifier=1, db_content={ "name": "Master Bedroom", "area": 20, "rssi": 20 }, pydantic_model=Room, update_exclude=["area"] ) id01_before = id(room01) rooms = [room01, room02] refresh_pydantic_objects(rooms, [refresh_config01]) assert room01.name == "Master Bedroom" assert room01.area == 10 assert room01.rssi == 20 assert id(room01) == id01_before assert rooms == [room01] print(room01.dict()) print(rooms)
def test_db_content_is_pydantic_object(): refresh_config = RefreshConfig( identifier=1, db_content=Room(**{ "id": 2, "name": "Backyard", "area": 20, "rssi": 20 }), pydantic_model=Room, update_include=["name", "area"], update_exclude=["area"] ) id_before = id(room01) refresh_pydantic_object(room01, refresh_config) assert isinstance(refresh_config.db_content, Room) assert room01.name == "Backyard" assert room01.area == 10 assert room01.rssi == 10 assert id(room01) == id_before print(room01.dict())