File: test_setup_async.py

package info (click to toggle)
python-androidtv 0.0.73-1.1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 792 kB
  • sloc: python: 7,123; makefile: 188; sh: 105
file content (78 lines) | stat: -rw-r--r-- 2,619 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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
import sys
import unittest
from unittest.mock import patch


sys.path.insert(0, "..")

from androidtv.setup_async import setup
from androidtv.androidtv.androidtv_async import AndroidTVAsync
from androidtv.firetv.firetv_async import FireTVAsync

from . import async_patchers
from .async_wrapper import awaiter


DEVICE_PROPERTIES_OUTPUT1 = "Amazon\n\n\n123"

DEVICE_PROPERTIES_DICT1 = {
    "manufacturer": "Amazon",
    "model": "",
    "serialno": None,
    "sw_version": "123",
    "wifimac": None,
    "ethmac": None,
}

DEVICE_PROPERTIES_OUTPUT2 = "Not Amazon\n\n\n456"

DEVICE_PROPERTIES_DICT2 = {
    "manufacturer": "Not Amazon",
    "model": "",
    "serialno": None,
    "sw_version": "456",
    "wifimac": None,
    "ethmac": None,
}


class TestSetup(unittest.TestCase):
    PATCH_KEY = "python"

    @awaiter
    async def test_setup(self):
        """Test that the ``setup`` function works correctly."""
        with self.assertRaises(ValueError):
            await setup("HOST", 5555, device_class="INVALID")

        with async_patchers.PATCH_ADB_DEVICE_TCP, async_patchers.patch_connect(True)[
            self.PATCH_KEY
        ], async_patchers.patch_shell(DEVICE_PROPERTIES_OUTPUT1)[self.PATCH_KEY]:
            ftv = await setup("HOST", 5555)
            self.assertIsInstance(ftv, FireTVAsync)
            self.assertDictEqual(ftv.device_properties, DEVICE_PROPERTIES_DICT1)

        with async_patchers.PATCH_ADB_DEVICE_TCP, async_patchers.patch_connect(True)[
            self.PATCH_KEY
        ], async_patchers.patch_shell(DEVICE_PROPERTIES_OUTPUT2)[self.PATCH_KEY]:
            atv = await setup("HOST", 5555)
            self.assertIsInstance(atv, AndroidTVAsync)
            self.assertDictEqual(atv.device_properties, DEVICE_PROPERTIES_DICT2)

        with async_patchers.PATCH_ADB_DEVICE_TCP, async_patchers.patch_connect(True)[
            self.PATCH_KEY
        ], async_patchers.patch_shell(DEVICE_PROPERTIES_OUTPUT1)[self.PATCH_KEY]:
            ftv = await setup("HOST", 5555, device_class="androidtv")
            self.assertIsInstance(ftv, AndroidTVAsync)
            self.assertDictEqual(ftv.device_properties, DEVICE_PROPERTIES_DICT1)

        with async_patchers.PATCH_ADB_DEVICE_TCP, async_patchers.patch_connect(True)[
            self.PATCH_KEY
        ], async_patchers.patch_shell(DEVICE_PROPERTIES_OUTPUT2)[self.PATCH_KEY]:
            atv = await setup("HOST", 5555, device_class="firetv")
            self.assertIsInstance(atv, FireTVAsync)
            self.assertDictEqual(atv.device_properties, DEVICE_PROPERTIES_DICT2)


if __name__ == "__main__":
    unittest.main()