Skip to content

Commit

Permalink
Get coverage of androidtv.py to 100% (#83)
Browse files Browse the repository at this point in the history
  • Loading branch information
JeffLIrion committed Sep 4, 2019
1 parent d8ffca1 commit 3e285ca
Showing 1 changed file with 173 additions and 3 deletions.
176 changes: 173 additions & 3 deletions tests/test_androidtv.py
Original file line number Diff line number Diff line change
Expand Up @@ -296,14 +296,81 @@
GET_PROPERTIES_DICT3 = {'screen_on': True,
'awake': True,
'wake_lock_size': 2,
'media_session_state': None,
'current_app': 'com.amazon.tv.launcher',
'media_session_state': None,
'audio_state': constants.STATE_IDLE,
'device': 'hmdi_arc',
'is_volume_muted': False,
'volume': 22}
STATE3 = (constants.STATE_PLAYING, 'com.amazon.tv.launcher', 'hmdi_arc', False, 22/60.)

GET_PROPERTIES_OUTPUT3A = GET_PROPERTIES_OUTPUT3[:1]
GET_PROPERTIES_OUTPUT3B = GET_PROPERTIES_OUTPUT3[:2]
GET_PROPERTIES_OUTPUT3C = GET_PROPERTIES_OUTPUT3.splitlines()[0]
GET_PROPERTIES_OUTPUT3D = '\n'.join(GET_PROPERTIES_OUTPUT3.splitlines()[:2])
GET_PROPERTIES_OUTPUT3E = '\n'.join(GET_PROPERTIES_OUTPUT3.splitlines()[:3])
GET_PROPERTIES_OUTPUT3F = '\n'.join(GET_PROPERTIES_OUTPUT3.splitlines()[:4])

GET_PROPERTIES_DICT3A = {'screen_on': True,
'awake': False,
'wake_lock_size': -1,
'current_app': None,
'media_session_state': None,
'audio_state': None,
'device': None,
'is_volume_muted': None,
'volume': None}
GET_PROPERTIES_DICT3B = {'screen_on': True,
'awake': True,
'wake_lock_size': -1,
'current_app': None,
'media_session_state': None,
'audio_state': None,
'device': None,
'is_volume_muted': None,
'volume': None}
GET_PROPERTIES_DICT3C = {'screen_on': True,
'awake': True,
'wake_lock_size': 2,
'current_app': None,
'media_session_state': None,
'audio_state': None,
'device': None,
'is_volume_muted': None,
'volume': None}
GET_PROPERTIES_DICT3D = {'screen_on': True,
'awake': True,
'wake_lock_size': 2,
'current_app': 'com.amazon.tv.launcher',
'media_session_state': None,
'audio_state': None,
'device': None,
'is_volume_muted': None,
'volume': None}
GET_PROPERTIES_DICT3E = {'screen_on': True,
'awake': True,
'wake_lock_size': 2,
'current_app': 'com.amazon.tv.launcher',
'media_session_state': None,
'audio_state': None,
'device': None,
'is_volume_muted': None,
'volume': None}

GET_PROPERTIES_OUTPUT4 = """11Wake Locks: size=2
com.amazon.tv.launcher
state=1
"""
GET_PROPERTIES_DICT4 = {'screen_on': True,
'awake': True,
'wake_lock_size': 2,
'current_app': 'com.amazon.tv.launcher',
'media_session_state': 1,
'audio_state': None,
'device': None,
'is_volume_muted': None,
'volume': None}

GET_PROPERTIES_DICT_NONE = {'screen_on': None,
'awake': None,
'wake_lock_size': None,
Expand Down Expand Up @@ -478,6 +545,30 @@ def test_get_properties(self):
properties = self.atv.get_properties_dict(lazy=True)
self.assertEqual(properties, GET_PROPERTIES_DICT3)

with patchers.patch_shell(GET_PROPERTIES_OUTPUT3A)[self.PATCH_KEY]:
properties = self.atv.get_properties_dict(lazy=True)
self.assertEqual(properties, GET_PROPERTIES_DICT3A)

with patchers.patch_shell(GET_PROPERTIES_OUTPUT3B)[self.PATCH_KEY]:
properties = self.atv.get_properties_dict(lazy=True)
self.assertEqual(properties, GET_PROPERTIES_DICT3B)

with patchers.patch_shell(GET_PROPERTIES_OUTPUT3C)[self.PATCH_KEY]:
properties = self.atv.get_properties_dict(lazy=True)
self.assertEqual(properties, GET_PROPERTIES_DICT3C)

with patchers.patch_shell(GET_PROPERTIES_OUTPUT3D)[self.PATCH_KEY]:
properties = self.atv.get_properties_dict(lazy=True)
self.assertEqual(properties, GET_PROPERTIES_DICT3D)

with patchers.patch_shell(GET_PROPERTIES_OUTPUT3E)[self.PATCH_KEY]:
properties = self.atv.get_properties_dict(lazy=True)
self.assertEqual(properties, GET_PROPERTIES_DICT3E)

with patchers.patch_shell(GET_PROPERTIES_OUTPUT4)[self.PATCH_KEY]:
properties = self.atv.get_properties_dict(lazy=True)
self.assertEqual(properties, GET_PROPERTIES_DICT4)

with patchers.patch_shell(GET_PROPERTIES_OUTPUT_PLEX_STANDBY)[self.PATCH_KEY]:
properties = self.atv.get_properties_dict(lazy=True)
self.assertEqual(properties, GET_PROPERTIES_DICT_PLEX_STANDBY)
Expand All @@ -490,6 +581,10 @@ def test_get_properties(self):
properties = self.atv.get_properties_dict(lazy=True)
self.assertEqual(properties, GET_PROPERTIES_DICT_PLEX_PAUSED)

with patchers.patch_shell(GET_PROPERTIES_OUTPUT_PLEX_PAUSED)[self.PATCH_KEY]:
properties = self.atv.get_properties_dict(lazy=True)
self.assertEqual(properties, GET_PROPERTIES_DICT_PLEX_PAUSED)

def test_update(self):
"""Check that the ``update`` method works correctly.
Expand Down Expand Up @@ -638,8 +733,83 @@ def test_state_detection(self):
self.assertUpdate([True, False, -1, None, None, None, None, None, None],
(constants.STATE_IDLE, None, None, None, None))

self.assertUpdate([True, True, 2, 'com.amazon.tv.launcher', 3, constants.STATE_IDLE, 'hmdi_arc', False, 30],
(constants.STATE_PLAYING, 'com.amazon.tv.launcher', 'hmdi_arc', False, 0.5))
# ATV Launcher
self.assertUpdate([True, True, 2, constants.APP_ATV_LAUNCHER, 3, constants.STATE_IDLE, 'hmdi_arc', False, 30],
(constants.STATE_STANDBY, constants.APP_ATV_LAUNCHER, 'hmdi_arc', False, 0.5))

# Bell Fibe
self.assertUpdate([True, True, 2, constants.APP_BELL_FIBE, 3, constants.STATE_IDLE, 'hmdi_arc', False, 30],
(constants.STATE_IDLE, constants.APP_BELL_FIBE, 'hmdi_arc', False, 0.5))

# Netflix
self.assertUpdate([True, True, 2, constants.APP_NETFLIX, 2, constants.STATE_IDLE, 'hmdi_arc', False, 30],
(constants.STATE_PAUSED, constants.APP_NETFLIX, 'hmdi_arc', False, 0.5))

self.assertUpdate([True, True, 2, constants.APP_NETFLIX, 3, constants.STATE_IDLE, 'hmdi_arc', False, 30],
(constants.STATE_PLAYING, constants.APP_NETFLIX, 'hmdi_arc', False, 0.5))

self.assertUpdate([True, True, 2, constants.APP_NETFLIX, 4, constants.STATE_IDLE, 'hmdi_arc', False, 30],
(constants.STATE_STANDBY, constants.APP_NETFLIX, 'hmdi_arc', False, 0.5))

# Plex
self.assertUpdate([True, True, 2, constants.APP_PLEX, 4, constants.STATE_IDLE, 'hmdi_arc', False, 30],
(constants.STATE_IDLE, constants.APP_PLEX, 'hmdi_arc', False, 0.5))

# TVheadend
self.assertUpdate([True, True, 5, constants.APP_TVHEADEND, 4, constants.STATE_IDLE, 'hmdi_arc', False, 30],
(constants.STATE_PAUSED, constants.APP_TVHEADEND, 'hmdi_arc', False, 0.5))

self.assertUpdate([True, True, 6, constants.APP_TVHEADEND, 4, constants.STATE_IDLE, 'hmdi_arc', False, 30],
(constants.STATE_PLAYING, constants.APP_TVHEADEND, 'hmdi_arc', False, 0.5))

self.assertUpdate([True, True, 1, constants.APP_TVHEADEND, 4, constants.STATE_IDLE, 'hmdi_arc', False, 30],
(constants.STATE_STANDBY, constants.APP_TVHEADEND, 'hmdi_arc', False, 0.5))

# VLC
self.assertUpdate([True, True, 6, constants.APP_VLC, 2, constants.STATE_IDLE, 'hmdi_arc', False, 30],
(constants.STATE_PAUSED, constants.APP_VLC, 'hmdi_arc', False, 0.5))

self.assertUpdate([True, True, 6, constants.APP_VLC, 3, constants.STATE_IDLE, 'hmdi_arc', False, 30],
(constants.STATE_PLAYING, constants.APP_VLC, 'hmdi_arc', False, 0.5))

self.assertUpdate([True, True, 6, constants.APP_VLC, 4, constants.STATE_IDLE, 'hmdi_arc', False, 30],
(constants.STATE_STANDBY, constants.APP_VLC, 'hmdi_arc', False, 0.5))

# VRV
self.assertUpdate([True, True, 2, constants.APP_VRV, 3, constants.STATE_IDLE, 'hmdi_arc', False, 30],
(constants.STATE_IDLE, constants.APP_VRV, 'hmdi_arc', False, 0.5))

# YouTube
self.assertUpdate([True, True, 2, constants.APP_YOUTUBE, 2, constants.STATE_IDLE, 'hmdi_arc', False, 30],
(constants.STATE_PAUSED, constants.APP_YOUTUBE, 'hmdi_arc', False, 0.5))

self.assertUpdate([True, True, 2, constants.APP_YOUTUBE, 3, constants.STATE_IDLE, 'hmdi_arc', False, 30],
(constants.STATE_PLAYING, constants.APP_YOUTUBE, 'hmdi_arc', False, 0.5))

self.assertUpdate([True, True, 2, constants.APP_YOUTUBE, 4, constants.STATE_IDLE, 'hmdi_arc', False, 30],
(constants.STATE_STANDBY, constants.APP_YOUTUBE, 'hmdi_arc', False, 0.5))

# Unknown app
self.assertUpdate([True, True, 2, 'unknown', 2, constants.STATE_IDLE, 'hmdi_arc', False, 30],
(constants.STATE_PAUSED, 'unknown', 'hmdi_arc', False, 0.5))

self.assertUpdate([True, True, 2, 'unknown', 3, constants.STATE_IDLE, 'hmdi_arc', False, 30],
(constants.STATE_PLAYING, 'unknown', 'hmdi_arc', False, 0.5))

self.assertUpdate([True, True, 2, 'unknown', 4, constants.STATE_IDLE, 'hmdi_arc', False, 30],
(constants.STATE_STANDBY, 'unknown', 'hmdi_arc', False, 0.5))

self.assertUpdate([True, True, 2, 'unknown', None, constants.STATE_PLAYING, 'hmdi_arc', False, 30],
(constants.STATE_PLAYING, 'unknown', 'hmdi_arc', False, 0.5))

self.assertUpdate([True, True, 1, 'unknown', None, constants.STATE_IDLE, 'hmdi_arc', False, 30],
(constants.STATE_PAUSED, 'unknown', 'hmdi_arc', False, 0.5))

self.assertUpdate([True, True, 2, 'unknown', None, constants.STATE_IDLE, 'hmdi_arc', False, 30],
(constants.STATE_PLAYING, 'unknown', 'hmdi_arc', False, 0.5))

self.assertUpdate([True, True, 3, 'unknown', None, constants.STATE_IDLE, 'hmdi_arc', False, 30],
(constants.STATE_STANDBY, 'unknown', 'hmdi_arc', False, 0.5))


class TestAndroidTVServer(TestAndroidTVPython):
Expand Down

0 comments on commit 3e285ca

Please sign in to comment.