如果具有itemType=other
的项目,Sonos自测套件似乎错误地失败,如果它还有自定义浏览图标。
我认为项目类型other
应该包含在utility.py
的此列表中:
17 BROWSEABLE_CONTAINER_TYPES = ('artist', 'album', 'genre', 'playlist', 'favorites', 'albumList', 'trackList', 'artistTrackList', 'container', 'favorite', 'collection', 'program', 'show')
运行sonos自测试套件时,我在输出中收到以下错误:
...
INFO Start Test Case: 844 Albumart test_custom_browse_icon_configuration
STOP Discovered custom browse icon URI should be something other than None. (is None)
STOP 844 Albumart test_custom_browse_icon_configuration
...
通过调试albumart.py
(test_custom_browse_icon_configuration
方法),我将问题追溯到get_sample_custom_browse_icon_url
方法的以下摘录:
# TODO: Need to drill down one level deeper if the target image url cannot be found on the root level containers
for mediaColl in response.Items:
if mediaColl.itemType in container_types:
if substitution_str in mediaColl.albumArtURI:
return mediaColl.albumArtURI
elif hasattr(mediaColl.albumArtURI,'value') and substitution_str in mediaColl.albumArtURI.value:
return mediaColl.albumArtURI.value
此代码应该可以找到具有自定义专辑封面的容器。但是,事实证明container_types
是由较早的一行定义的:
container_types = [t for t in Validation.BROWSEABLE_CONTAINER_TYPES if t.lower() != 'album']
和Validation.BROWSEABLE_CONTAINER_TYPES
在utility.py
中定义如下:
# sonos-selftest/smapi/content_workflow/utility.py
15 class Validation(WorkflowTestFixture, SMAPIClient, SMAPIService):
16
17 BROWSEABLE_CONTAINER_TYPES = ('artist', 'album', 'genre', 'playlist', 'favorites', 'albumList', 'trackList', 'artistTrackList', 'container', 'favorite', 'collection', 'program', 'show')
请注意,此列表中缺少'other'
类型!我很确定它应该包含在列表中,browse.py
提到它:
234 **Reference:** BROWSEABLE_CONTAINER_TYPES = 'artist', 'album', 'genre', 'playlist', 'favorites', 'albumList', 'trackList', 'artistTrackList', 'container', 'favorite', 'collection', 'other', ' program'
我可以通过将itemType=other
更改为itemType=container
(这几乎相同)来解决此问题。
但是,如果在Sonos自测试套件的未来版本中修复了这个问题会很好。