mirror of
https://github.com/fergalmoran/picard.git
synced 2025-12-22 09:18:18 +00:00
Add extra tests for prepare_releases_for_versions()
This commit is contained in:
46
test/data/ws_data/release_group_5.json
Normal file
46
test/data/ws_data/release_group_5.json
Normal file
@@ -0,0 +1,46 @@
|
||||
{
|
||||
"release-offset": 0,
|
||||
"releases": [
|
||||
{
|
||||
"id": "789",
|
||||
"title": "Foox",
|
||||
"status": "Official",
|
||||
"country": "FR",
|
||||
"date": "2009-08-07",
|
||||
"barcode": "0123456789",
|
||||
"text-representation": {
|
||||
"language": "eng",
|
||||
"script": "Latn"
|
||||
},
|
||||
"media": [
|
||||
{
|
||||
"track-count": 2,
|
||||
"position": 1,
|
||||
"format": "CD",
|
||||
"title": ""
|
||||
},
|
||||
{
|
||||
"track-count": 3,
|
||||
"position": 2,
|
||||
"format": "CD",
|
||||
"title": ""
|
||||
},
|
||||
{
|
||||
"track-count": 4,
|
||||
"position": 3,
|
||||
"format": "CD",
|
||||
"title": ""
|
||||
}
|
||||
],
|
||||
"label-info": [
|
||||
{
|
||||
"label": {
|
||||
"name": "label A"
|
||||
},
|
||||
"catalog-number": "cat 123"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"release-count": 1
|
||||
}
|
||||
@@ -23,13 +23,17 @@
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
|
||||
from unittest.mock import patch
|
||||
|
||||
from test.picardtestcase import (
|
||||
PicardTestCase,
|
||||
load_test_json,
|
||||
)
|
||||
|
||||
from picard.releasegroup import ReleaseGroup
|
||||
from picard.releasegroup import (
|
||||
ReleaseGroup,
|
||||
prepare_releases_for_versions,
|
||||
)
|
||||
|
||||
|
||||
settings = {
|
||||
@@ -45,6 +49,13 @@ class ReleaseTest(PicardTestCase):
|
||||
def test_1(self):
|
||||
self.set_config_values(settings)
|
||||
rlist = load_test_json('release_group_2.json')
|
||||
releases = list(prepare_releases_for_versions(rlist['releases']))
|
||||
expected = [
|
||||
{'id': '123', 'year': '2009', 'country': 'GB', 'format': 'CD', 'label': 'label A', 'catnum': 'cat 123', 'tracks': '5', 'barcode': '0123456789', 'packaging': 'Jewel Case', 'disambiguation': 'special', '_disambiguate_name': [], 'totaltracks': 5, 'countries': [], 'formats': ['CD']},
|
||||
{'id': '456', 'year': '2009', 'country': 'GB', 'format': 'CD', 'label': 'label A', 'catnum': 'cat 123', 'tracks': '5', 'barcode': '0123456789', 'packaging': 'Digipak', 'disambiguation': 'special', '_disambiguate_name': [], 'totaltracks': 5, 'countries': [], 'formats': ['CD']},
|
||||
{'id': '789', 'year': '2009', 'country': 'GB', 'format': 'CD', 'label': 'label A', 'catnum': 'cat 123', 'tracks': '5', 'barcode': '0123456789', 'packaging': 'Digipak', 'disambiguation': 'specialx', '_disambiguate_name': [], 'totaltracks': 5, 'countries': [], 'formats': ['CD']},
|
||||
]
|
||||
self.assertEqual(releases, expected)
|
||||
r = ReleaseGroup(1)
|
||||
r._parse_versions(rlist)
|
||||
self.assertEqual(r.versions[0]['name'],
|
||||
@@ -57,6 +68,12 @@ class ReleaseTest(PicardTestCase):
|
||||
def test_2(self):
|
||||
self.set_config_values(settings)
|
||||
rlist = load_test_json('release_group_3.json')
|
||||
releases = list(prepare_releases_for_versions(rlist['releases']))
|
||||
expected = [
|
||||
{'id': '789', 'year': '2011', 'country': 'FR', 'format': 'CD', 'label': 'label A', 'catnum': 'cat 123', 'tracks': '5', 'barcode': '0123456789', 'packaging': '??', 'disambiguation': 'special A', '_disambiguate_name': [], 'totaltracks': 5, 'countries': [], 'formats': ['CD']},
|
||||
{'id': '789', 'year': '2011', 'country': 'FR', 'format': 'CD', 'label': 'label A', 'catnum': 'cat 123', 'tracks': '5', 'barcode': '0123456789', 'packaging': '??', 'disambiguation': '', '_disambiguate_name': [], 'totaltracks': 5, 'countries': [], 'formats': ['CD']},
|
||||
]
|
||||
self.assertEqual(releases, expected)
|
||||
r = ReleaseGroup(1)
|
||||
r._parse_versions(rlist)
|
||||
self.assertEqual(r.versions[0]['name'],
|
||||
@@ -67,9 +84,35 @@ class ReleaseTest(PicardTestCase):
|
||||
def test_3(self):
|
||||
self.set_config_values(settings)
|
||||
rlist = load_test_json('release_group_4.json')
|
||||
releases = list(prepare_releases_for_versions(rlist['releases']))
|
||||
expected = [
|
||||
{'id': '789', 'year': '2009', 'country': 'FR', 'format': 'CD', 'label': 'label A', 'catnum': 'cat 123', 'tracks': '5', 'barcode': '0123456789', 'packaging': '??', 'disambiguation': '', '_disambiguate_name': [], 'totaltracks': 5, 'countries': [], 'formats': ['CD']},
|
||||
{'id': '789', 'year': '2009', 'country': 'FR', 'format': 'CD', 'label': 'label A', 'catnum': 'cat 123', 'tracks': '5', 'barcode': '[no barcode]', 'packaging': '??', 'disambiguation': '', '_disambiguate_name': [], 'totaltracks': 5, 'countries': [], 'formats': ['CD']},
|
||||
]
|
||||
self.assertEqual(releases, expected)
|
||||
r = ReleaseGroup(1)
|
||||
r._parse_versions(rlist)
|
||||
self.assertEqual(r.versions[0]['name'],
|
||||
'5 / 2009 / FR / CD / label A / cat 123 / 0123456789')
|
||||
self.assertEqual(r.versions[1]['name'],
|
||||
'5 / 2009 / FR / CD / label A / cat 123 / [no barcode]')
|
||||
|
||||
@patch('picard.releasegroup.VERSIONS_MAX_TRACKS', 2)
|
||||
def test_4(self):
|
||||
self.set_config_values(settings)
|
||||
rlist = load_test_json('release_group_5.json')
|
||||
releases = list(prepare_releases_for_versions(rlist['releases']))
|
||||
expected = [
|
||||
{'id': '789', 'year': '2009', 'country': 'FR', 'format': '3×CD', 'label': 'label A', 'catnum': 'cat 123', 'tracks': '2+3+…', 'barcode': '0123456789', 'packaging': '??', 'disambiguation': '', '_disambiguate_name': [], 'totaltracks': 9, 'countries': [], 'formats': ['CD', 'CD', 'CD']},
|
||||
]
|
||||
self.assertEqual(releases, expected)
|
||||
|
||||
@patch('picard.releasegroup.VERSIONS_MAX_TRACKS', 3)
|
||||
def test_5(self):
|
||||
self.set_config_values(settings)
|
||||
rlist = load_test_json('release_group_5.json')
|
||||
releases = list(prepare_releases_for_versions(rlist['releases']))
|
||||
expected = [
|
||||
{'id': '789', 'year': '2009', 'country': 'FR', 'format': '3×CD', 'label': 'label A', 'catnum': 'cat 123', 'tracks': '2+3+4', 'barcode': '0123456789', 'packaging': '??', 'disambiguation': '', '_disambiguate_name': [], 'totaltracks': 9, 'countries': [], 'formats': ['CD', 'CD', 'CD']},
|
||||
]
|
||||
self.assertEqual(releases, expected)
|
||||
|
||||
Reference in New Issue
Block a user