from marshmallow import Schema from playlist.queries.schema import ISRC from tests.unit.utils import raises_validation_error def test_isrc_field_not_used(): class TestSchema(Schema): isrc = ISRC(required=False) TestSchema().load({}) def test_isrc_field_invalid(): class TestSchema(Schema): isrc = ISRC(required=True) invalid_isrcs = [ "1", "ABC", "QMddN22019571", "QM6N22019571.", "_USUYG1303889", "DEN 960800340", "USAT2140050", "SZZR0710673", ] for invalid_isrc in invalid_isrcs: with raises_validation_error( {"isrc": ["String does not match expected pattern."]} ): TestSchema().load({"isrc": invalid_isrc}) def test_isrc_field_valid(): class TestSchema(Schema): isrc = ISRC(required=True) # fmt: off valid_isrcs = [ "USUYG1303889", "DEN960800340", "USSD11200228", "MXUM70803131", "GB5KW1601602", "DEQ022005942", "QZHN32082934", "DECE72002535", "USBR20800267", "BXTP11800001", "USAT21400504", "USZZR0710673", "ESA011412517", "KRC531600254", "USHR19800203", "GBARL1800348", "FRUM70600210", "USUM71103171", "USSM16900181", "MX3141100116", "USCJY1731766", "QZK6Q2094437", "GBCEL1100201", "USAT21904655", "GBCFB0700706", "USHR21810503", "USQY51460659", "USRC11402038", "USSM11500953", "USLZJ1949311", "GBMA21201260", "BXYVJ2000019", "USKO10403008", "QZAPG1758415", "USHM21086099", "GBAYE1000823", "CLDG21400226", "QZK6Q1929117", "QM7281553535", "PTMW11100032", "PHS090501880", "GBEWA1600866", "MXF019200182", "GBBLY9000276", "USUM71411660", "USLD91700855", "TCAFA2047333", "ITG581200009", "FR9W11210678", "FR9W11911624", "BRMKP1000648", "QZDA72080878", "QZDYA1800021", "USEW10000118", "JPU902001656" ] # fmt: on for isrc in valid_isrcs: data = TestSchema().load({"isrc": isrc}) assert data["isrc"] == isrc