示例#1
0
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
示例#2
0
文件: test_cli.py 项目: tind/dojson
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
示例#3
0
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
示例#4
0
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