def test_cli_do_marc21_from_xml(): """Test MARC21 loading from XML.""" from dojson import cli from test_core import RECORD_SIMPLE, RECORD_999_FIELD expected = [{'main_entry_personal_name': {'personal_name': 'Donges, Jonathan F'}}] runner = CliRunner() with runner.isolated_filesystem(): with open('record.xml', 'wb') as f: f.write(RECORD_SIMPLE.encode('utf-8')) with open('record_999.xml', 'wb') as f: f.write(RECORD_999_FIELD.encode('utf-8')) result = runner.invoke( cli.missing_fields, ['-i', 'record.xml', '-l', 'marcxml', 'marc21'] ) assert result.output == '' assert result.exit_code == 0 result = runner.invoke( cli.missing_fields, ['-i', 'record_999.xml', '-l', 'marcxml', 'marc21'] ) assert result.output == '999__\n' assert result.exit_code == 1 result = runner.invoke( cli.apply_rule, ['-i', 'record.xml', '-l', 'marcxml', 'marc21'] ) data = json.loads(result.output) assert expected == data result = runner.invoke( cli.apply_rule, ['-i', 'record_999.xml', '-l', 'marcxml', 'marc21'] ) data = json.loads(result.output) assert {} == data[0] assert result.exit_code == 0 result = runner.invoke( cli.apply_rule, ['-i', 'record.xml', '-l', 'marcxml', '--strict', 'marc21'] ) assert result.exit_code == -1
def test_cli_do_marc21_from_xml_unknown_fields(): """Test MARC21 loading from XML containing unknown fields.""" runner = CliRunner() with runner.isolated_filesystem(): with open('record_999.xml', 'wb') as f: f.write(RECORD_999_FIELD.encode('utf-8')) result = runner.invoke( cli.cli, ['-i', 'record_999.xml', '-l', 'marcxml', 'missing', 'marc21']) assert "999__" == result.output.strip() assert 1 == result.exit_code result = runner.invoke( cli.cli, ['-i', 'record_999.xml', '-l', 'marcxml', 'do', 'marc21']) data = json.loads(result.output) assert {'__order__': []} == data[0] assert 0 == result.exit_code
def test_cli_do_marc21_from_xml_unknown_fields(): """Test MARC21 loading from XML containing unknown fields.""" runner = CliRunner() with runner.isolated_filesystem(): with open("record_999.xml", "wb") as f: f.write(RECORD_999_FIELD.encode("utf-8")) result = runner.invoke( cli.cli, ["-i", "record_999.xml", "-l", "marcxml", "missing", "marc21"]) assert "999__" == result.output.strip() assert 1 == result.exit_code result = runner.invoke( cli.cli, ["-i", "record_999.xml", "-l", "marcxml", "do", "marc21"]) data = json.loads(result.output) assert {"__order__": []} == data[0] assert 0 == result.exit_code
def test_cli_do_marc21_from_xml_unknown_fieds(): """Test MARC21 loading from XML containing unknown fields.""" runner = CliRunner() with runner.isolated_filesystem(): with open('record_999.xml', 'wb') as f: f.write(RECORD_999_FIELD.encode('utf-8')) result = runner.invoke( cli.cli, ['-i', 'record_999.xml', '-l', 'marcxml', 'missing', 'marc21'] ) assert "999__" == result.output.strip() assert 1 == result.exit_code result = runner.invoke( cli.cli, ['-i', 'record_999.xml', '-l', 'marcxml', 'do', 'marc21'] ) data = json.loads(result.output) assert {} == data[0] assert 0 == result.exit_code