File: test_scene_status.py

package info (click to toggle)
python-aiohue 4.8.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 612 kB
  • sloc: python: 4,444; sh: 30; makefile: 5
file content (32 lines) | stat: -rw-r--r-- 1,118 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
"""Test parsing of Scene.status field."""

import datetime
from unittest.mock import patch

from aiohue import HueBridgeV2
from aiohue.v2.models.scene import SceneActiveStatus


async def test_scene_status_parsing(v2_resources):
    """Ensure scene status (active + last_recall) is parsed correctly."""
    bridge = HueBridgeV2("127.0.0.1", "fake")

    with patch.object(bridge, "request", return_value=v2_resources):
        await bridge.fetch_full_state()

    # Collect scenes
    scenes = list(bridge.scenes.scene)  # regular scenes controller
    assert len(scenes) >= 2  # fixture contains at least two scenes

    dynamic_scene = scenes[0]
    static_scene = scenes[1]

    # dynamic scene assertions
    assert dynamic_scene.status is not None
    assert dynamic_scene.status.active == SceneActiveStatus.DYNAMIC_PALETTE
    assert isinstance(dynamic_scene.status.last_recall, datetime.datetime)

    # static scene assertions
    assert static_scene.status is not None
    assert static_scene.status.active == SceneActiveStatus.STATIC
    assert isinstance(static_scene.status.last_recall, datetime.datetime)