Skip to content

Commit 2785606

Browse files
committed
Collapse many tests into a single data-driven test
1 parent fdeb7e5 commit 2785606

2 files changed

Lines changed: 105 additions & 98 deletions

File tree

test/plugins/factories/musicbrainz.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ class Params:
107107
disambiguation = factory.LazyAttribute(
108108
lambda o: f"{o.title} Disambiguation"
109109
)
110-
first_release_date = factory.Faker("date")
110+
first_release_date = "2001-02-03"
111111
genres = factory.List([])
112112
primary_type = "Album"
113113
primary_type_id = "f529b476-6e62-324f-b0aa-1f3e33d313fc"

test/plugins/test_musicbrainz.py

Lines changed: 104 additions & 97 deletions
Original file line numberDiff line numberDiff line change
@@ -93,30 +93,113 @@ def test_parse_release_title(self):
9393

9494

9595
class MBAlbumInfoTest(MusicBrainzTestCase):
96-
def test_parse_release_with_year(self):
97-
release = release_factory(release_group__first_release_date="1984")
98-
d = self.mb.album_info(release)
99-
assert d.album == "Album"
100-
assert d.album_id == "00000000-0000-0000-0000-000001000001"
101-
assert d.artist == "Artist"
102-
assert d.artist_id == "00000000-0000-0000-0000-000000000011"
103-
assert d.original_year == 1984
104-
assert d.year == 2020
105-
assert d.artist_credit == "Artist Credit"
106-
107-
def test_parse_release_type(self):
96+
def test_parse_release(self):
10897
release = release_factory()
10998
d = self.mb.album_info(release)
110-
assert d.albumtype == "album"
11199

112-
def test_parse_release_full_date(self):
113-
release = release_factory(
114-
release_group__first_release_date="1987-03-31"
115-
)
116-
d = self.mb.album_info(release)
117-
assert d.original_year == 1987
118-
assert d.original_month == 3
119-
assert d.original_day == 31
100+
assert d == {
101+
"album": "Album",
102+
"album_id": "00000000-0000-0000-0000-000001000001",
103+
"albumdisambig": "Album Disambiguation",
104+
"albumstatus": "Official",
105+
"albumtype": "album",
106+
"albumtypes": [
107+
"album",
108+
],
109+
"artist": "Artist",
110+
"artist_credit": "Artist Credit",
111+
"artist_id": "00000000-0000-0000-0000-000000000011",
112+
"artist_sort": "Artist, The",
113+
"artists": [
114+
"Artist",
115+
],
116+
"artists_credit": [
117+
"Artist Credit",
118+
],
119+
"artists_ids": [
120+
"00000000-0000-0000-0000-000000000011",
121+
],
122+
"artists_sort": [
123+
"Artist, The",
124+
],
125+
"asin": "Album Asin",
126+
"barcode": "0000000000000",
127+
"catalognum": "LAB123",
128+
"country": "US",
129+
"data_source": "MusicBrainz",
130+
"data_url": "https://musicbrainz.org/release/00000000-0000-0000-0000-000001000001",
131+
"day": 1,
132+
"discogs_albumid": None,
133+
"discogs_artistid": None,
134+
"discogs_labelid": None,
135+
"genres": None,
136+
"label": "Label",
137+
"language": "eng",
138+
"media": "Digital Media",
139+
"mediums": 1,
140+
"month": 1,
141+
"original_day": 3,
142+
"original_month": 2,
143+
"original_year": 2001,
144+
"release_group_title": "Release Group",
145+
"releasegroup_id": "00000000-0000-0000-0000-000000000101",
146+
"releasegroupdisambig": "Release Group Disambiguation",
147+
"script": "Latn",
148+
"style": None,
149+
"tracks": [
150+
{
151+
"album": None,
152+
"arrangers": None,
153+
"arrangers_ids": [],
154+
"artist": "Recording Artist",
155+
"artist_credit": "Recording Artist Credit",
156+
"artist_id": "00000000-0000-0000-0000-000000000001",
157+
"artist_sort": "Recording Artist, The",
158+
"artists": [
159+
"Recording Artist",
160+
],
161+
"artists_credit": [
162+
"Recording Artist Credit",
163+
],
164+
"artists_ids": [
165+
"00000000-0000-0000-0000-000000000001",
166+
],
167+
"artists_sort": [
168+
"Recording Artist, The",
169+
],
170+
"bpm": None,
171+
"composer_sort": None,
172+
"composers": None,
173+
"composers_ids": [],
174+
"data_source": "MusicBrainz",
175+
"data_url": "https://musicbrainz.org/recording/00000000-0000-0000-0000-000000001001",
176+
"disctitle": "Medium",
177+
"genres": None,
178+
"index": 1,
179+
"initial_key": None,
180+
"isrc": None,
181+
"length": 0.36,
182+
"lyricists": None,
183+
"lyricists_ids": [],
184+
"mb_workid": None,
185+
"media": "Digital Media",
186+
"medium": 1,
187+
"medium_index": 1,
188+
"medium_total": 1,
189+
"release_track_id": "00000000-0000-0000-0000-000000010001",
190+
"remixers": None,
191+
"remixers_ids": [],
192+
"title": "Recording",
193+
"track_alt": "A1",
194+
"track_id": "00000000-0000-0000-0000-000000001001",
195+
"trackdisambig": None,
196+
"work": None,
197+
"work_disambig": None,
198+
},
199+
],
200+
"va": False,
201+
"year": 2020,
202+
}
120203

121204
def test_parse_tracks(self):
122205
release = release_factory(
@@ -221,11 +304,6 @@ def test_no_release_date(self):
221304
assert not d.original_month
222305
assert not d.original_day
223306

224-
def test_various_artists_defaults_false(self):
225-
release = release_factory()
226-
d = self.mb.album_info(release)
227-
assert not d.va
228-
229307
def test_detect_various_artists(self):
230308
release = release_factory(
231309
artist_credit=[
@@ -235,16 +313,6 @@ def test_detect_various_artists(self):
235313
d = self.mb.album_info(release)
236314
assert d.va
237315

238-
def test_parse_artist_sort_name(self):
239-
release = release_factory()
240-
d = self.mb.album_info(release)
241-
assert d.artist_sort == "Artist, The"
242-
243-
def test_parse_releasegroupid(self):
244-
release = release_factory()
245-
d = self.mb.album_info(release)
246-
assert d.releasegroup_id == "00000000-0000-0000-0000-000000000101"
247-
248316
def test_parse_release_group_title(self):
249317
release = release_factory(
250318
release_group__aliases=[
@@ -262,48 +330,6 @@ def test_parse_release_group_title(self):
262330
d = self.mb.album_info(release)
263331
assert d.release_group_title == "Alias en"
264332

265-
def test_parse_asin(self):
266-
release = release_factory()
267-
d = self.mb.album_info(release)
268-
assert d.asin == "Album Asin"
269-
270-
def test_parse_catalognum(self):
271-
release = release_factory()
272-
d = self.mb.album_info(release)
273-
assert d.catalognum == "LAB123"
274-
275-
def test_parse_textrepr(self):
276-
release = release_factory()
277-
d = self.mb.album_info(release)
278-
assert d.script == "Latn"
279-
assert d.language == "eng"
280-
281-
def test_parse_country(self):
282-
release = release_factory()
283-
d = self.mb.album_info(release)
284-
assert d.country == "US"
285-
286-
def test_parse_status(self):
287-
release = release_factory()
288-
d = self.mb.album_info(release)
289-
assert d.albumstatus == "Official"
290-
291-
def test_parse_barcode(self):
292-
release = release_factory()
293-
d = self.mb.album_info(release)
294-
assert d.barcode == "0000000000000"
295-
296-
def test_parse_media(self):
297-
release = release_factory()
298-
d = self.mb.album_info(release)
299-
assert d.media == "Digital Media"
300-
301-
def test_parse_disambig(self):
302-
release = release_factory()
303-
d = self.mb.album_info(release)
304-
assert d.albumdisambig == "Album Disambiguation"
305-
assert d.releasegroupdisambig == "Release Group Disambiguation"
306-
307333
def test_parse_disctitle(self):
308334
release = release_factory(media__0__tracks__count=2)
309335
d = self.mb.album_info(release)
@@ -316,14 +342,6 @@ def test_missing_language(self):
316342
d = self.mb.album_info(release)
317343
assert d.language is None
318344

319-
def test_parse_recording_artist(self):
320-
release = release_factory()
321-
track = self.mb.album_info(release).tracks[0]
322-
assert track.artist == "Recording Artist"
323-
assert track.artist_id == "00000000-0000-0000-0000-000000000001"
324-
assert track.artist_sort == "Recording Artist, The"
325-
assert track.artist_credit == "Recording Artist Credit"
326-
327345
def test_parse_recording_artist_multi(self):
328346
release = release_factory(
329347
media__0__tracks=[
@@ -520,11 +538,6 @@ def test_parse_recording_artist_credits(self):
520538
"Recording Composer, The, Another Recording Composer, The"
521539
)
522540

523-
def test_data_source(self):
524-
release = release_factory()
525-
d = self.mb.album_info(release)
526-
assert d.data_source == "MusicBrainz"
527-
528541
def test_genres(self):
529542
config["musicbrainz"]["genres"] = True
530543
config["musicbrainz"]["genres_tag"] = "genre"
@@ -539,12 +552,6 @@ def test_tags(self):
539552
d = self.mb.album_info(release)
540553
assert d.genres == ["Tag"]
541554

542-
def test_no_genres(self):
543-
config["musicbrainz"]["genres"] = False
544-
release = release_factory()
545-
d = self.mb.album_info(release)
546-
assert d.genres is None
547-
548555
def test_ignored_media(self):
549556
config["match"]["ignored_media"] = ["IGNORED1", "IGNORED2"]
550557
release = release_factory(

0 commit comments

Comments
 (0)