Skip to content

Commit

Permalink
Merge aef114a into b50f034
Browse files Browse the repository at this point in the history
  • Loading branch information
JeffLIrion committed Sep 5, 2019
2 parents b50f034 + aef114a commit 2c567a2
Show file tree
Hide file tree
Showing 2 changed files with 50 additions and 16 deletions.
3 changes: 3 additions & 0 deletions androidtv/constants.py
Expand Up @@ -38,6 +38,9 @@
#: Determine if the device is on
CMD_SCREEN_ON = "dumpsys power | grep 'Display Power' | grep -q 'state=ON'"

#: Get the "STREAM MUSIC" block from ``dumpsys audio``
CMD_STREAM_MUSIC = r"dumpsys audio | grep '\- STREAM_MUSIC:' -A 12"

#: Get the wake lock size
CMD_WAKE_LOCK_SIZE = "dumpsys power | grep Locks | grep 'size='"

Expand Down
63 changes: 47 additions & 16 deletions tests/test_androidtv.py
Expand Up @@ -140,6 +140,21 @@
muted player piids:"""


# `dumpsys audio | grep '\- STREAM_MUSIC:' -A 12`
STREAM_MUSIC_OFF = """- STREAM_MUSIC:
Muted: false
Min: 0
Max: 60
Current: 2 (speaker): 20, 40000 (hmdi_arc): 27, 40000000 (default): 15
Devices: speaker
- STREAM_ALARM:
Muted: true
Min: 0
Max: 7
Current: 2 (speaker): 3, 40000 (hmdi_arc): 3, 40000000 (default): 2
Devices: speaker"""


DUMPSYS_AUDIO_ON = """MediaFocusControl dump time: 9:03:06 AM
Audio Focus stack entries (last is top of stack):
Expand Down Expand Up @@ -262,6 +277,22 @@
muted player piids:"""


# `dumpsys audio | grep '\- STREAM_MUSIC:' -A 12`
STREAM_MUSIC_ON = """- STREAM_MUSIC:
Muted: false
Min: 0
Max: 60
Current: 2 (speaker): 20, 40000 (hmdi_arc): 22, 40000000 (default): 15
Devices: hmdi_arc
- STREAM_ALARM:
Muted: false
Min: 0
Max: 7
Current: 2 (speaker): 3, 40000 (hmdi_arc): 3, 40000000 (default): 2
Devices: speaker"""


# `dumpsys power | grep 'Display Power' | grep -q 'state=ON' && echo -e '1\c' && dumpsys power | grep mWakefulness | grep -q Awake && echo -e '1\c' && dumpsys power | grep Locks | grep 'size=' && CURRENT_APP=$(dumpsys window windows | grep mCurrentFocus) && CURRENT_APP=${CURRENT_APP#*{* * } && CURRENT_APP=${CURRENT_APP%%/*} && echo $CURRENT_APP && (dumpsys media_session | grep -A 100 'Sessions Stack' | grep -A 100 $CURRENT_APP | grep -m 1 'state=PlaybackState {' || echo) && dumpsys audio`
GET_PROPERTIES_OUTPUT1 = ""
GET_PROPERTIES_DICT1 = {'screen_on': False,
Expand Down Expand Up @@ -292,7 +323,7 @@
GET_PROPERTIES_OUTPUT3 = """11Wake Locks: size=2
com.amazon.tv.launcher
""" + DUMPSYS_AUDIO_ON
""" + STREAM_MUSIC_ON
GET_PROPERTIES_DICT3 = {'screen_on': True,
'awake': True,
'wake_lock_size': 2,
Expand Down Expand Up @@ -393,7 +424,7 @@
GET_PROPERTIES_OUTPUT_PLEX_STANDBY = """11Wake Locks: size=1
com.plexapp.android
""" + DUMPSYS_AUDIO_ON
""" + STREAM_MUSIC_ON

GET_PROPERTIES_DICT_PLEX_STANDBY = {'screen_on': True,
'awake': True,
Expand All @@ -411,7 +442,7 @@
GET_PROPERTIES_OUTPUT_PLEX_PLAYING = """11Wake Locks: size=3
com.plexapp.android
state=3
""" + DUMPSYS_AUDIO_ON
""" + STREAM_MUSIC_ON

GET_PROPERTIES_DICT_PLEX_PLAYING = {'screen_on': True,
'awake': True,
Expand All @@ -429,7 +460,7 @@
GET_PROPERTIES_OUTPUT_PLEX_PAUSED = """11Wake Locks: size=1
com.plexapp.android
state=3
""" + DUMPSYS_AUDIO_ON
""" + STREAM_MUSIC_ON

GET_PROPERTIES_DICT_PLEX_PAUSED = {'screen_on': True,
'awake': True,
Expand Down Expand Up @@ -489,11 +520,11 @@ def test_device(self):
device = self.atv.device
self.assertIsNone(device)

with patchers.patch_shell(DUMPSYS_AUDIO_OFF)[self.PATCH_KEY]:
with patchers.patch_shell(STREAM_MUSIC_OFF)[self.PATCH_KEY]:
device = self.atv.device
self.assertEqual('speaker', device)

with patchers.patch_shell(DUMPSYS_AUDIO_ON)[self.PATCH_KEY]:
with patchers.patch_shell(STREAM_MUSIC_ON)[self.PATCH_KEY]:
device = self.atv.device
self.assertEqual('hmdi_arc', device)

Expand All @@ -520,12 +551,12 @@ def test_volume(self):
volume = self.atv.volume
self.assertIsNone(volume)

with patchers.patch_shell(DUMPSYS_AUDIO_OFF)[self.PATCH_KEY]:
with patchers.patch_shell(STREAM_MUSIC_OFF)[self.PATCH_KEY]:
volume = self.atv.volume
self.assertEqual(volume, 20)
self.assertEqual(self.atv.max_volume, 60.)

with patchers.patch_shell(DUMPSYS_AUDIO_ON)[self.PATCH_KEY]:
with patchers.patch_shell(STREAM_MUSIC_ON)[self.PATCH_KEY]:
volume = self.atv.volume
self.assertEqual(volume, 22)
self.assertEqual(self.atv.max_volume, 60.)
Expand All @@ -542,12 +573,12 @@ def test_volume_level(self):
volume_level = self.atv.volume_level
self.assertIsNone(volume_level)

with patchers.patch_shell(DUMPSYS_AUDIO_OFF)[self.PATCH_KEY]:
with patchers.patch_shell(STREAM_MUSIC_OFF)[self.PATCH_KEY]:
volume_level = self.atv.volume_level
self.assertEqual(volume_level, 20./60)
self.assertEqual(self.atv.max_volume, 60.)

with patchers.patch_shell(DUMPSYS_AUDIO_ON)[self.PATCH_KEY]:
with patchers.patch_shell(STREAM_MUSIC_ON)[self.PATCH_KEY]:
volume_level = self.atv.volume_level
self.assertEqual(volume_level, 22./60)
self.assertEqual(self.atv.max_volume, 60.)
Expand All @@ -564,7 +595,7 @@ def test_is_volume_muted(self):
is_volume_muted = self.atv.is_volume_muted
self.assertIsNone(is_volume_muted)

with patchers.patch_shell(DUMPSYS_AUDIO_OFF)[self.PATCH_KEY]:
with patchers.patch_shell(STREAM_MUSIC_OFF)[self.PATCH_KEY]:
is_volume_muted = self.atv.is_volume_muted
self.assertFalse(is_volume_muted)

Expand All @@ -580,7 +611,7 @@ def test_set_volume_level(self):
new_volume_level = self.atv.set_volume_level(0.5)
self.assertIsNone(new_volume_level)

with patchers.patch_shell(DUMPSYS_AUDIO_ON)[self.PATCH_KEY]:
with patchers.patch_shell(STREAM_MUSIC_ON)[self.PATCH_KEY]:
new_volume_level = self.atv.set_volume_level(0.5)
self.assertEqual(new_volume_level, 0.5)
self.assertEqual(getattr(self.atv.adb, self.ADB_ATTR).shell_cmd, "(input keyevent 24 && sleep 1 && input keyevent 24 && sleep 1 && input keyevent 24 && sleep 1 && input keyevent 24 && sleep 1 && input keyevent 24 && sleep 1 && input keyevent 24 && sleep 1 && input keyevent 24 && sleep 1 && input keyevent 24) &")
Expand Down Expand Up @@ -615,15 +646,15 @@ def test_volume_up(self):
self.assertIsNone(new_volume_level)
self.assertEqual(getattr(self.atv.adb, self.ADB_ATTR).shell_cmd, "input keyevent 24")

with patchers.patch_shell(DUMPSYS_AUDIO_ON)[self.PATCH_KEY]:
with patchers.patch_shell(STREAM_MUSIC_ON)[self.PATCH_KEY]:
new_volume_level = self.atv.volume_up()
self.assertEqual(new_volume_level, 23./60)
self.assertEqual(getattr(self.atv.adb, self.ADB_ATTR).shell_cmd, "input keyevent 24")
new_volume_level = self.atv.volume_up(23./60)
self.assertEqual(new_volume_level, 24./60)
self.assertEqual(getattr(self.atv.adb, self.ADB_ATTR).shell_cmd, "input keyevent 24")

with patchers.patch_shell(DUMPSYS_AUDIO_OFF)[self.PATCH_KEY]:
with patchers.patch_shell(STREAM_MUSIC_OFF)[self.PATCH_KEY]:
new_volume_level = self.atv.volume_up()
self.assertEqual(new_volume_level, 21./60)
self.assertEqual(getattr(self.atv.adb, self.ADB_ATTR).shell_cmd, "input keyevent 24")
Expand All @@ -645,15 +676,15 @@ def test_volume_down(self):
self.assertIsNone(new_volume_level)
self.assertEqual(getattr(self.atv.adb, self.ADB_ATTR).shell_cmd, "input keyevent 25")

with patchers.patch_shell(DUMPSYS_AUDIO_ON)[self.PATCH_KEY]:
with patchers.patch_shell(STREAM_MUSIC_ON)[self.PATCH_KEY]:
new_volume_level = self.atv.volume_down()
self.assertEqual(new_volume_level, 21./60)
self.assertEqual(getattr(self.atv.adb, self.ADB_ATTR).shell_cmd, "input keyevent 25")
new_volume_level = self.atv.volume_down(21./60)
self.assertEqual(new_volume_level, 20./60)
self.assertEqual(getattr(self.atv.adb, self.ADB_ATTR).shell_cmd, "input keyevent 25")

with patchers.patch_shell(DUMPSYS_AUDIO_OFF)[self.PATCH_KEY]:
with patchers.patch_shell(STREAM_MUSIC_OFF)[self.PATCH_KEY]:
new_volume_level = self.atv.volume_down()
self.assertEqual(new_volume_level, 19./60)
self.assertEqual(getattr(self.atv.adb, self.ADB_ATTR).shell_cmd, "input keyevent 25")
Expand Down

0 comments on commit 2c567a2

Please sign in to comment.