File: test_scene_members.py

package info (click to toggle)
python-aiopvapi 3.1.1-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 684 kB
  • sloc: python: 3,123; xml: 850; makefile: 5
file content (42 lines) | stat: -rw-r--r-- 1,195 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
33
34
35
36
37
38
39
40
41
42
import asyncio
import unittest
from unittest import mock

from aiopvapi.helpers.aiorequest import AioRequest
from aiopvapi.scene_members import SceneMembers


def AsyncMock(*args, **kwargs):
    m = mock.MagicMock(*args, **kwargs)

    async def mock_coro(*args, **kwargs):
        return m(*args, **kwargs)

    mock_coro.mock = m
    return mock_coro


class TestSceneMembers(unittest.TestCase):

    def setUp(self):
        self.fake_ip = '123.123.123.123'

    @mock.patch('aiopvapi.helpers.aiorequest.AioRequest.check_response', new=AsyncMock())
    def test_remove_shade_from_scene(self):
        """Tests create new scene."""
        loop = asyncio.get_event_loop()
        request = AioRequest(self.fake_ip, loop)

        _del_mock = AsyncMock(return_value=None)

        request.websession.delete = _del_mock

        async def go():
            scene_members = SceneMembers(request)
            await scene_members.delete_shade_from_scene(1234, 5678)

        resp = loop.run_until_complete(go())
        _del_mock.mock.assert_called_once_with(
            'http://{}/api/scenemembers'.format(self.fake_ip),
            params={"sceneId": 5678,
                    'shadeId': 1234})