def test_len_1(self): record = MarcRecord() self.assertEqual(len(record), 0) record.add(100, 'Field 100') self.assertEqual(len(record), 1) record.add(200, 'Field 200') self.assertEqual(len(record), 2)
def test_encode_1(self): record = MarcRecord() record.mfn = 123 record.version = 321 record.status = LAST record.add(100, 'Field100').add(200, SubField('a', 'SubA'), SubField('b', 'SubB')) self.assertEqual(record.encode(), ['123#32', '0#321', '100#Field100', '200#^aSubA^bSubB'])
def test_fm_2(self): record = MarcRecord().add(100, '', SubField('a', '100A'), SubField('b', '100B')) record.add(200, '', SubField('b', '200B'), SubField('c', '200C')) self.assertEqual('100A', record.fm(100, 'a')) self.assertEqual('100B', record.fm(100, 'b')) self.assertIsNone(record.fm(100, 'c')) self.assertIsNone(record.fm(200, 'a')) self.assertEqual('200B', record.fm(200, 'b')) self.assertEqual('200C', record.fm(200, 'c'))
def test_all_1(self): record = MarcRecord() record.add(100, 'Field100').add(200, 'Field200') \ .add(300, 'Field300/1').add(300, 'Field300/2') self.assertEqual(len(record.fields), 4) self.assertEqual(len(record.all(100)), 1) self.assertEqual(len(record.all(200)), 1) self.assertEqual(len(record.all(300)), 2) self.assertEqual(len(record.all(400)), 0)
def test_fma_1(self): record = MarcRecord().add(100, 'Field 100/1').add(100, 'Field 100/2') record.add(200, SubField('a', 'SubA/1'), SubField('b', 'SubB/1')) record.add(200, SubField('a', 'SubA/2'), SubField('b', 'SubB/2')) self.assertEqual(record.fma(100), ['Field 100/1', 'Field 100/2']) self.assertEqual(record.fma(200, 'a'), ['SubA/1', 'SubA/2']) self.assertEqual(record.fma(200, 'b'), ['SubB/1', 'SubB/2']) self.assertEqual(record.fma(200, 'c'), []) self.assertEqual(record.fma(300), []) self.assertEqual(record.fma(300, 'a'), [])
def write_dummy_records(self, database: str): sf = SubField for i in range(10): # Создаем запись record = MarcRecord() record.database = database # Наполняем её полями: первый автор record.add(700, sf('a', 'Миронов'), sf('b', 'А. В.'), sf('g', 'Алексей Владимирович')) # заглавие record.add(200, sf('a', f'Работа с ИРБИС64: версия {i}.0'), sf('e', 'руководство пользователя')) # выходные данные record.add(210, sf('a', 'Иркутск'), SubField('c', 'ИРНИТУ'), sf('d', '2018')) # рабочий лист record.add(920, 'PAZK') # Отсылаем запись на сервер. # Обратно приходит запись, обработанная AUTOIN.GBL self.connection.write_record(record) print(f'Write record: {i}') print()
def test_write_text_record(self): sf = SubField with random_text_file() as stream: for i in range(10): record = MarcRecord() record.add(700, sf('a', 'Миронов'), sf('b', 'А. В.'), sf('g', 'Алексей Владимирович')) record.add(200, sf('a', f'Работа с ИРБИС64: версия {i}.0'), sf('e', 'руководство пользователя')) record.add(210, sf('a', 'Иркутск'), SubField('c', 'ИРНИТУ'), sf('d', '2018')) record.add(920, 'PAZK') write_text_record(stream, record)
def test_write_record_01(self): sf = SubField with random_binary_file() as stream: record = MarcRecord() record.add(700, sf('a', 'Миронов'), sf('b', 'А. В.'), sf('g', 'Алексей Владимирович')) record.add(200, sf('a', f'Работа с ИРБИС64: версия 0.0'), sf('e', 'руководство пользователя')) record.add(210, sf('a', 'Иркутск'), SubField('c', 'ИРНИТУ'), sf('d', '2018')) record.add(920, 'PAZK') iso.write_record(stream, record, UTF) self.assertTrue(stream.name)
def test_14_write_record(self): record = MarcRecord() record.add(200, SubField('a', 'Сгенерированная запись')) record.add(300, 'Комментарий') record.add(700, SubField('a', 'Пайтон'), SubField('b', 'М.'), SubField('g', 'Монти')) record.add(910, SubField('a', '0'), SubField('b', '1'), SubField('c', '?'), SubField('d', 'ФКХ')) print('Write record') max_mfn = self.connection.write_record(record) print('New max MFN=', max_mfn, sep='') print(record) print()
def test_33_format_record(self): sf = SubField record = MarcRecord() record.add(700, sf('a', 'Миронов'), sf('b', 'А. В.'), sf('g', 'Алексей Владимирович')) record.add(200, sf('a', f'Работа с ИРБИС64: версия 1.0'), sf('e', 'руководство пользователя')) record.add(210, sf('a', 'Иркутск'), SubField('c', 'ИРНИТУ'), sf('d', '2018')) record.add(920, 'PAZK') text = self.connection.format_record('@brief', record) self.assertEqual( text, 'Миронов, Алексей Владимирович. Работа с ИРБИС64: ' 'версия 1.0 [Текст] : руководство пользователя, 2018')
def test_write_record_2(self): sf = SubField with random_binary_file() as stream: for i in range(10): record = MarcRecord() record.add(700, sf('a', 'Миронов'), sf('b', 'А. В.'), sf('g', 'Алексей Владимирович')) record.add(200, sf('a', f'Работа с ИРБИС64: версия {i}.0'), sf('e', 'руководство пользователя')) record.add(210, sf('a', 'Иркутск'), SubField('c', 'ИРНИТУ'), sf('d', '2018')) record.add(920, 'PAZK') iso.write_record(stream, record, UTF) filename = stream.name with open(filename, 'rb') as fh: count = 0 while True: record = iso.read_record(fh, UTF) if record is None: break self.assertEqual(len(record.fields), 4) count += 1 self.assertEqual(count, 10)
def test_bool_1(self): record = MarcRecord() self.assertFalse(bool(record)) record.add(100, 'Field 100') self.assertTrue(bool(record))