kopia lustrzana https://dev.funkwhale.audio/funkwhale/funkwhale
38 wiersze
1.4 KiB
Python
38 wiersze
1.4 KiB
Python
from funkwhale_api.radios import filters
|
|
|
|
|
|
def test_clean_config_artist_name_sorting(factories):
|
|
|
|
artist3 = factories["music.Artist"](name="The Green Eyes")
|
|
artist2 = factories["music.Artist"](name="The Green Eyed Machine")
|
|
artist1 = factories["music.Artist"](name="The Green Seed")
|
|
factories["music.Artist"]()
|
|
filter_config = {"type": "artist", "ids": [artist3.pk, artist1.pk, artist2.pk]}
|
|
artist_filter = filters.ArtistFilter()
|
|
config = artist_filter.clean_config(filter_config)
|
|
# list of names whose artists have been sorted by name then by id
|
|
sorted_names = [
|
|
a.name
|
|
for a in list(
|
|
sorted([artist2, artist1, artist3], key=lambda x: (len(x.name), x.id))
|
|
)
|
|
]
|
|
assert config["names"] == sorted_names
|
|
|
|
|
|
def test_clean_config_tag_name_sorting(factories):
|
|
|
|
tag3 = factories["tags.Tag"](name="Rock")
|
|
tag2 = factories["tags.Tag"](name="Classic")
|
|
tag1 = factories["tags.Tag"](name="Punk")
|
|
factories["tags.Tag"]()
|
|
filter_config = {"type": "tag", "names": [tag3.name, tag1.name, tag2.name]}
|
|
tag_filter = filters.TagFilter()
|
|
config = tag_filter.clean_config(filter_config)
|
|
# list of names whose tags have been sorted by name then by id
|
|
sorted_names = [
|
|
a.name
|
|
for a in list(sorted([tag2, tag1, tag3], key=lambda x: (len(x.name), x.id)))
|
|
]
|
|
assert config["names"] == sorted_names
|