diff --git a/plexapi/myplex.py b/plexapi/myplex.py index 04318dfdf..edd571266 100644 --- a/plexapi/myplex.py +++ b/plexapi/myplex.py @@ -228,7 +228,7 @@ def sonos_speaker(self, name): return next((x for x in self.sonos_speakers() if x.title.split("+")[0].strip() == name), None) def sonos_speaker_by_id(self, identifier): - return next((x for x in self.sonos_speakers() if x.machineIdentifier == identifier), None) + return next((x for x in self.sonos_speakers() if x.machineIdentifier.startswith(identifier)), None) def inviteFriend(self, user, server, sections=None, allowSync=False, allowCameraUpload=False, allowChannels=False, filterMovies=None, filterTelevision=None, filterMusic=None): diff --git a/tests/payloads.py b/tests/payloads.py index aef29c501..940e0d574 100644 --- a/tests/payloads.py +++ b/tests/payloads.py @@ -17,8 +17,8 @@ """ SONOS_RESOURCES = """ - - - + + + """ diff --git a/tests/test_sonos.py b/tests/test_sonos.py index 77ef595e5..ebd4b1d82 100644 --- a/tests/test_sonos.py +++ b/tests/test_sonos.py @@ -10,14 +10,18 @@ def test_sonos_resources(mocked_account, requests_mock): # Finds individual speaker by name speaker1 = mocked_account.sonos_speaker("Speaker 1") - assert speaker1.machineIdentifier == "RINCON_12345678901234567:1234567891" + assert speaker1.machineIdentifier == "RINCON_12345678901234561:1234567891" # Finds speaker as part of group speaker1 = mocked_account.sonos_speaker("Speaker 2") - assert speaker1.machineIdentifier == "RINCON_12345678901234567:1234567892" + assert speaker1.machineIdentifier == "RINCON_12345678901234562:1234567892" - # Finds speaker by identifier - speaker3 = mocked_account.sonos_speaker_by_id("RINCON_12345678901234567:1234567893") + # Finds speaker by Plex identifier + speaker3 = mocked_account.sonos_speaker_by_id("RINCON_12345678901234563:1234567893") + assert speaker3.title == "Speaker 3" + + # Finds speaker by Sonos identifier + speaker3 = mocked_account.sonos_speaker_by_id("RINCON_12345678901234563") assert speaker3.title == "Speaker 3" assert mocked_account.sonos_speaker("Speaker X") is None