Esempio n. 1
0
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)
Esempio n. 2
0
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())
Esempio n. 3
0
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())
Esempio n. 4
0
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())
Esempio n. 5
0
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)
Esempio n. 6
0
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())
Esempio n. 7
0
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)
Esempio n. 8
0
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())