def _default_record_decoders(): decoders = {} decoders['acknowledgement'] = AcknowledgementDictionaryDecoder() decoders['message'] = MessageDictionaryDecoder() decoders['agreement'] = AgreementDictionaryDecoder() decoders['territory_in_agreement'] = AgreementTerritoryDictionaryDecoder() decoders['additional_related_information'] = \ AdditionalRelatedInformationDictionaryDecoder() decoders['group_header'] = GroupHeaderDictionaryDecoder() decoders['group_trailer'] = GroupTrailerDictionaryDecoder() decoders['group_trailer_base'] = GroupTrailerDictionaryDecoder() decoders['group_trailer_short'] = GroupTrailerDictionaryDecoder() decoders['interested_party_agreement'] = \ InterestedPartyForAgreementDictionaryDecoder() decoders['nra_agreement_party'] = \ NonRomanAlphabetAgreementPartyDictionaryDecoder() decoders['nra_publisher_name'] = \ NonRomanAlphabetPublisherNameDictionaryDecoder() decoders['nra_writer_name'] = NonRomanAlphabetWriterNameDictionaryDecoder() decoders['nra_title'] = NonRomanAlphabetTitleDictionaryDecoder() decoders['nra_performance_data'] = \ NonRomanAlphabetPerformanceDataDictionaryDecoder() decoders['nra_work'] = NonRomanAlphabetWorkDictionaryDecoder() decoders['nra_other_writer'] = \ NonRomanAlphabetOtherWriterDictionaryDecoder() decoders['publisher'] = PublisherRecordDictionaryDecoder() decoders['publisher_territory'] = IPTerritoryOfControlDictionaryDecoder() decoders['transmission_header'] = TransmissionHeaderDictionaryDecoder() decoders['transmission_trailer'] = TransmissionTrailerDictionaryDecoder() decoders['work'] = WorkDictionaryDecoder() decoders['work_conflict'] = WorkDictionaryDecoder() decoders['work_alternate_title'] = AlternateTitleDictionaryDecoder() decoders['entire_work_title'] = AuthoredWorkDictionaryDecoder() decoders['original_work_title'] = AuthoredWorkDictionaryDecoder() decoders['performing_artist'] = PerformingArtistDictionaryDecoder() decoders['recording_detail'] = RecordingDetailDictionaryDecoder() decoders['work_origin'] = WorkOriginDictionaryDecoder() decoders['instrumentation_summary'] = \ InstrumentationSummaryDictionaryDecoder() decoders['instrumentation_detail'] = \ InstrumentationDetailDictionaryDecoder() decoders['component'] = ComponentDictionaryDecoder() decoders['writer'] = WriterRecordDictionaryDecoder() decoders['writer_publisher'] = PublisherForWriterDictionaryDecoder() decoders['writer_territory'] = IPTerritoryOfControlDictionaryDecoder() decoders['filename_new'] = FileTagDictionaryDecoder() decoders['filename_old'] = FileTagDictionaryDecoder() return decoders
def setUp(self): self._decoder = WorkDictionaryDecoder()
class TestWorkDictionaryDecoder(unittest.TestCase): def setUp(self): self._decoder = WorkDictionaryDecoder() def test_encoded(self): data = {} data['record_type'] = 'NWR' data['transaction_sequence_n'] = 3 data['record_sequence_n'] = 15 data['submitter_work_n'] = 'ABC123' data['title'] = 'TITLE' data['version_type'] = 'ORI' data['musical_work_distribution_category'] = 'SER' data['date_publication_printed_edition'] = datetime.datetime.strptime( '20030216', '%Y%m%d').date() data['text_music_relationship'] = 'MTX' data['language_code'] = 'ES' data['copyright_number'] = 'ABDF146' data['copyright_date'] = datetime.datetime.strptime('20030217', '%Y%m%d').date() data['music_arrangement'] = 'ORI' data['lyric_adaptation'] = 'MOD' data['excerpt_type'] = 'MOV' data['composite_type'] = 'MED' data['composite_component_count'] = 5 data['iswc'] = ISWCCode(12345678, 9) data['work_type'] = 'BL' data['duration'] = datetime.datetime.strptime('011200', '%H%M%S').time() data['catalogue_number'] = 'GGH97' data['opus_number'] = 'OP35' data['contact_id'] = '123CONTACT' data['contact_name'] = 'THE CONTACT' data['recorded_indicator'] = 'Y' data['priority_flag'] = 'Y' data['exceptional_clause'] = 'Y' data['grand_rights_indicator'] = True record = self._decoder.decode(data) self.assertEqual('NWR', record.record_type) self.assertEqual(3, record.transaction_sequence_n) self.assertEqual(15, record.record_sequence_n) self.assertEqual('ABC123', record.submitter_work_n) self.assertEqual('TITLE', record.title) self.assertEqual('ORI', record.version_type) self.assertEqual('SER', record.musical_work_distribution_category) self.assertEqual( datetime.datetime.strptime('20030216', '%Y%m%d').date(), record.date_publication_printed_edition) self.assertEqual('MTX', record.text_music_relationship) self.assertEqual('ES', record.language_code) self.assertEqual('ABDF146', record.copyright_number) self.assertEqual( datetime.datetime.strptime('20030217', '%Y%m%d').date(), record.copyright_date) self.assertEqual('ORI', record.music_arrangement) self.assertEqual('MOD', record.lyric_adaptation) self.assertEqual('MOV', record.excerpt_type) self.assertEqual('MED', record.composite_type) self.assertEqual(5, record.composite_component_count) self.assertEqual(12345678, record.iswc.id_code) self.assertEqual(9, record.iswc.check_digit) self.assertEqual('BL', record.work_type) self.assertEqual(datetime.datetime.strptime('011200', '%H%M%S').time(), record.duration) self.assertEqual('GGH97', record.catalogue_number) self.assertEqual('OP35', record.opus_number) self.assertEqual('123CONTACT', record.contact_id) self.assertEqual('THE CONTACT', record.contact_name) self.assertEqual('Y', record.recorded_indicator) self.assertEqual('Y', record.priority_flag) self.assertEqual('Y', record.exceptional_clause) self.assertEqual(True, record.grand_rights_indicator)
def setUp(self): self._decoder = WorkDictionaryDecoder()
class TestWorkDictionaryDecoder(unittest.TestCase): def setUp(self): self._decoder = WorkDictionaryDecoder() def test_encoded(self): data = {} data['record_type'] = 'NWR' data['transaction_sequence_n'] = 3 data['record_sequence_n'] = 15 data['submitter_work_n'] = 'ABC123' data['title'] = 'TITLE' data['version_type'] = 'ORI' data['musical_work_distribution_category'] = 'SER' data['date_publication_printed_edition'] = datetime.datetime.strptime( '20030216', '%Y%m%d').date() data['text_music_relationship'] = 'MTX' data['language_code'] = 'ES' data['copyright_number'] = 'ABDF146' data['copyright_date'] = datetime.datetime.strptime( '20030217', '%Y%m%d').date() data['music_arrangement'] = 'ORI' data['lyric_adaptation'] = 'MOD' data['excerpt_type'] = 'MOV' data['composite_type'] = 'MED' data['composite_component_count'] = 5 data['iswc'] = ISWCCode(12345678, 9) data['work_type'] = 'BL' data['duration'] = datetime.datetime.strptime('011200', '%H%M%S').time() data['catalogue_number'] = 'GGH97' data['opus_number'] = 'OP35' data['contact_id'] = '123CONTACT' data['contact_name'] = 'THE CONTACT' data['recorded_indicator'] = 'Y' data['priority_flag'] = 'Y' data['exceptional_clause'] = 'Y' data['grand_rights_indicator'] = True record = self._decoder.decode(data) self.assertEqual('NWR', record.record_type) self.assertEqual(3, record.transaction_sequence_n) self.assertEqual(15, record.record_sequence_n) self.assertEqual('ABC123', record.submitter_work_n) self.assertEqual('TITLE', record.title) self.assertEqual('ORI', record.version_type) self.assertEqual('SER', record.musical_work_distribution_category) self.assertEqual( datetime.datetime.strptime('20030216', '%Y%m%d').date(), record.date_publication_printed_edition) self.assertEqual('MTX', record.text_music_relationship) self.assertEqual('ES', record.language_code) self.assertEqual('ABDF146', record.copyright_number) self.assertEqual( datetime.datetime.strptime('20030217', '%Y%m%d').date(), record.copyright_date) self.assertEqual('ORI', record.music_arrangement) self.assertEqual('MOD', record.lyric_adaptation) self.assertEqual('MOV', record.excerpt_type) self.assertEqual('MED', record.composite_type) self.assertEqual(5, record.composite_component_count) self.assertEqual(12345678, record.iswc.id_code) self.assertEqual(9, record.iswc.check_digit) self.assertEqual('BL', record.work_type) self.assertEqual( datetime.datetime.strptime('011200', '%H%M%S').time(), record.duration) self.assertEqual('GGH97', record.catalogue_number) self.assertEqual('OP35', record.opus_number) self.assertEqual('123CONTACT', record.contact_id) self.assertEqual('THE CONTACT', record.contact_name) self.assertEqual('Y', record.recorded_indicator) self.assertEqual('Y', record.priority_flag) self.assertEqual('Y', record.exceptional_clause) self.assertEqual(True, record.grand_rights_indicator)