mirror of
https://github.com/beetbox/beets.git
synced 2026-02-08 08:25:23 +01:00
Use ReleaseGroupFactory
This commit is contained in:
parent
3318b539a8
commit
4096ca6084
2 changed files with 56 additions and 30 deletions
|
|
@ -15,6 +15,16 @@ class _PeriodFactory(factory.DictFactory):
|
|||
ended = factory.LazyAttribute(lambda obj: obj.end is not None)
|
||||
|
||||
|
||||
class _IdFactory(factory.DictFactory):
|
||||
class Params:
|
||||
id_base = 0
|
||||
index = 1
|
||||
|
||||
id = factory.LazyAttribute(
|
||||
lambda o: f"00000000-0000-0000-0000-{o.id_base + o.index:012d}"
|
||||
)
|
||||
|
||||
|
||||
class AliasFactory(_SortNameFactory, _PeriodFactory):
|
||||
class Params:
|
||||
suffix = ""
|
||||
|
|
@ -23,19 +33,25 @@ class AliasFactory(_SortNameFactory, _PeriodFactory):
|
|||
name = factory.LazyAttribute(lambda o: f"Alias {o.suffix}")
|
||||
primary = False
|
||||
type = "Artist name"
|
||||
type_id = "894afba6-2816-3c24-8072-eadb66bd04bc"
|
||||
type_id = factory.LazyAttribute(
|
||||
lambda o: {
|
||||
"Artist name": "894afba6-2816-3c24-8072-eadb66bd04bc",
|
||||
"Label name": "3a1a0c48-d885-3b89-87b2-9e8a483c5675",
|
||||
"Legal name": "d4dcd0c0-b341-3612-a332-c0ce797b25cf",
|
||||
"Recording name": "5d564c8f-97de-3572-94bb-7f40ad661499",
|
||||
"Release group name": "156e24ca-8746-3cfc-99ae-0a867c765c67",
|
||||
"Release name": "df187855-059b-3514-9d5e-d240de0b4228",
|
||||
"Search hint": "abc2db8a-7386-354d-82f4-252c0213cbe4",
|
||||
}[o.type]
|
||||
)
|
||||
|
||||
|
||||
class ArtistFactory(_SortNameFactory):
|
||||
class ArtistFactory(_SortNameFactory, _IdFactory):
|
||||
class Params:
|
||||
id_base = 0
|
||||
index = 1
|
||||
|
||||
country: str | None = None
|
||||
disambiguation = ""
|
||||
id = factory.LazyAttribute(
|
||||
lambda o: f"00000000-0000-0000-0000-{o.id_base + o.index:012d}"
|
||||
)
|
||||
name = "Artist"
|
||||
type = "Person"
|
||||
type_id = "b6e035f4-3ce9-331c-97df-83397230b0df"
|
||||
|
|
@ -78,3 +94,24 @@ class AreaFactory(factory.DictFactory):
|
|||
class ReleaseEventFactory(factory.DictFactory):
|
||||
area = factory.SubFactory(AreaFactory)
|
||||
date = factory.Faker("date")
|
||||
|
||||
|
||||
class ReleaseGroupFactory(_IdFactory):
|
||||
class Params:
|
||||
id_base = 100
|
||||
|
||||
aliases = factory.List(
|
||||
[factory.SubFactory(AliasFactory, type="Release group name")]
|
||||
)
|
||||
artist_credit = factory.List([factory.SubFactory(ArtistCreditFactory)])
|
||||
disambiguation = factory.LazyAttribute(
|
||||
lambda o: f"{o.title} Disambiguation"
|
||||
)
|
||||
first_release_date = factory.Faker("date")
|
||||
genres = factory.List([])
|
||||
primary_type = "Album"
|
||||
primary_type_id = "f529b476-6e62-324f-b0aa-1f3e33d313fc"
|
||||
secondary_type_ids = factory.List([])
|
||||
secondary_types = factory.List([])
|
||||
tags = factory.List([])
|
||||
title = "Release Group"
|
||||
|
|
|
|||
|
|
@ -56,6 +56,10 @@ def release_event_factory(**kwargs) -> mb.ReleaseEvent:
|
|||
return factories.ReleaseEventFactory.build(**kwargs)
|
||||
|
||||
|
||||
def release_group_factory(**kwargs) -> mb.ReleaseGroup:
|
||||
return factories.ReleaseGroupFactory.build(**kwargs)
|
||||
|
||||
|
||||
class MusicBrainzTestCase(BeetsTestCase):
|
||||
def setUp(self):
|
||||
super().setUp()
|
||||
|
|
@ -77,12 +81,7 @@ class MusicBrainzTestCase(BeetsTestCase):
|
|||
"id": "ALBUM ID",
|
||||
"asin": "ALBUM ASIN",
|
||||
"disambiguation": "R_DISAMBIGUATION",
|
||||
"release_group": {
|
||||
"primary_type": "Album",
|
||||
"first_release_date": date,
|
||||
"id": "RELEASE GROUP ID",
|
||||
"disambiguation": "RG_DISAMBIGUATION",
|
||||
},
|
||||
"release_group": release_group_factory(first_release_date=date),
|
||||
"artist_credit": [artist_credit_factory(artist__id_base=10)],
|
||||
"date": "3001",
|
||||
"media": [],
|
||||
|
|
@ -354,7 +353,7 @@ class MBAlbumInfoTest(MusicBrainzTestCase):
|
|||
def test_parse_releasegroupid(self):
|
||||
release = self._make_release()
|
||||
d = self.mb.album_info(release)
|
||||
assert d.releasegroup_id == "RELEASE GROUP ID"
|
||||
assert d.releasegroup_id == "00000000-0000-0000-0000-000000000101"
|
||||
|
||||
def test_parse_asin(self):
|
||||
release = self._make_release()
|
||||
|
|
@ -400,7 +399,7 @@ class MBAlbumInfoTest(MusicBrainzTestCase):
|
|||
release = self._make_release()
|
||||
d = self.mb.album_info(release)
|
||||
assert d.albumdisambig == "R_DISAMBIGUATION"
|
||||
assert d.releasegroupdisambig == "RG_DISAMBIGUATION"
|
||||
assert d.releasegroupdisambig == "Release Group Disambiguation"
|
||||
|
||||
def test_parse_disctitle(self):
|
||||
recordings = [
|
||||
|
|
@ -805,9 +804,7 @@ class MBLibraryTest(MusicBrainzTestCase):
|
|||
}
|
||||
],
|
||||
"artist_credit": [artist_credit_factory()],
|
||||
"release_group": {
|
||||
"id": "another-id",
|
||||
},
|
||||
"release_group": release_group_factory(),
|
||||
"release_relations": [
|
||||
{
|
||||
"type": "transl-tracklisting",
|
||||
|
|
@ -838,9 +835,7 @@ class MBLibraryTest(MusicBrainzTestCase):
|
|||
}
|
||||
],
|
||||
"artist_credit": [artist_credit_factory()],
|
||||
"release_group": {
|
||||
"id": "another-id",
|
||||
},
|
||||
"release_group": release_group_factory(),
|
||||
"country": "COUNTRY",
|
||||
},
|
||||
]
|
||||
|
|
@ -874,9 +869,7 @@ class MBLibraryTest(MusicBrainzTestCase):
|
|||
}
|
||||
],
|
||||
"artist_credit": [artist_credit_factory()],
|
||||
"release_group": {
|
||||
"id": "another-id",
|
||||
},
|
||||
"release_group": release_group_factory(),
|
||||
}
|
||||
]
|
||||
|
||||
|
|
@ -909,9 +902,7 @@ class MBLibraryTest(MusicBrainzTestCase):
|
|||
}
|
||||
],
|
||||
"artist_credit": [artist_credit_factory()],
|
||||
"release_group": {
|
||||
"id": "another-id",
|
||||
},
|
||||
"release_group": release_group_factory(),
|
||||
}
|
||||
]
|
||||
|
||||
|
|
@ -944,9 +935,7 @@ class MBLibraryTest(MusicBrainzTestCase):
|
|||
}
|
||||
],
|
||||
"artist_credit": [artist_credit_factory()],
|
||||
"release_group": {
|
||||
"id": "another-id",
|
||||
},
|
||||
"release_group": release_group_factory(),
|
||||
"release_relations": [
|
||||
{
|
||||
"type": "remaster",
|
||||
|
|
@ -1051,7 +1040,7 @@ class TestMusicBrainzPlugin(PluginMixin):
|
|||
}
|
||||
],
|
||||
"artist_credit": [artist_credit_factory()],
|
||||
"release_group": {"id": "another-id"},
|
||||
"release_group": release_group_factory(),
|
||||
},
|
||||
)
|
||||
candidates = list(mb.candidates([], "hello", "there", False))
|
||||
|
|
|
|||
Loading…
Reference in a new issue