Exemplo n.º 1
0
def generate_models(
    xsd: str, package: str, class_name: str, output_format: str, structure_style: str
):
    runner = CliRunner()
    result = runner.invoke(
        cli,
        [
            xsd,
            "-ss",
            structure_style,
            "-p",
            package,
            "-o",
            output_format,
            "--compound-fields",
        ],
    )

    if result.exception:
        return result.exception

    try:
        return load_class(result.output, class_name)
    except ModuleNotFoundError:
        return None
Exemplo n.º 2
0
    def test_wsdl_codegen(self):
        schema = fixtures_dir.joinpath("hello/hello.wsdl")
        package = "tests.fixtures.hello"
        runner = CliRunner()
        result = runner.invoke(cli, [str(schema), "--package", package])

        if result.exception:
            raise result.exception

        clazz = load_class(result.output, "HelloGetHelloAsStringOutput")
        self.assertEqual("Envelope", clazz.Meta.name)
Exemplo n.º 3
0
    def test_wsdl_codegen(self):
        schema = fixtures_dir.joinpath("calculator/services.wsdl")
        package = "tests.fixtures.calculator"
        runner = CliRunner()
        result = runner.invoke(cli, [str(schema), "--package", package])

        if result.exception:
            raise result.exception

        clazz = load_class(result.output, "CalculatorSoapMultiplyOutput")
        self.assertEqual("Envelope", clazz.Meta.name)
Exemplo n.º 4
0
def test_definitive_xml_schema_chapter_10():
    schema = Path("tests/fixtures/defxmlschema/chapter10.xsd")
    package = "tests.fixtures.defxmlschema"
    runner = CliRunner()
    result = runner.invoke(cli, [str(schema), "--package", package])

    if result.exception:
        raise result.exception

    clazz = load_class(result.output, "Sizes")
    validate_bindings(schema, clazz)
Exemplo n.º 5
0
def test_primer_schema():
    schema = fixtures_dir.joinpath("primer/order.xsd")
    package = "tests.fixtures.primer"
    runner = CliRunner()
    result = runner.invoke(
        cli, [str(schema), "--package", package, "--docstring-style", "NumPy"])

    if result.exception:
        raise result.exception

    clazz = load_class(result.output, "PurchaseOrder")
    assert "purchaseOrder" == clazz.Meta.name

    validate_bindings(schema, clazz)
Exemplo n.º 6
0
def test_json_documents():
    filepath = fixtures_dir.joinpath("series")
    package = "tests.fixtures.series"
    runner = CliRunner()
    result = runner.invoke(cli, [str(filepath), "--package", package])

    if result.exception:
        raise result.exception

    clazz = load_class(result.output, "Series")

    parser = JsonParser()
    serializer = JsonSerializer(indent=4)

    for i in range(1, 3):
        ori = filepath.joinpath(f"show{i}.json").read_text()
        obj = parser.from_string(ori, clazz)
        actual = serializer.render(obj)

        assert filter_none(json.loads(ori)) == filter_none(json.loads(actual))
Exemplo n.º 7
0
def test_books_schema():
    schema = fixtures_dir.joinpath("books/schema.xsd")
    package = "tests.fixtures.books"
    runner = CliRunner()
    result = runner.invoke(
        cli,
        [
            str(schema),
            "--package",
            package,
            "--ns-struct",
            "--docstring-style",
            "Google",
        ],
    )

    if result.exception:
        raise result.exception

    clazz = load_class(result.output, "Books")
    assert "books" == clazz.Meta.name
    assert "urn:books" == clazz.Meta.namespace
Exemplo n.º 8
0
def test_xml_documents():
    filepath = fixtures_dir.joinpath("artists")
    package = "tests.fixtures.artists"
    runner = CliRunner()
    result = runner.invoke(cli, [str(filepath), "--package", package])

    if result.exception:
        raise result.exception

    clazz = load_class(result.output, "Metadata")

    parser = XmlParser()
    serializer = XmlSerializer(writer=XmlEventWriter)
    serializer.config.pretty_print = True
    serializer.config.xml_declaration = False
    ns_map = {None: "http://musicbrainz.org/ns/mmd-2.0#"}

    for i in range(1, 4):
        ap = filepath.joinpath(f"art00{i}.xml")
        obj = parser.from_path(ap, clazz)
        actual = serializer.render(obj, ns_map)

        assert ap.read_bytes().splitlines() == actual.encode().splitlines()
Exemplo n.º 9
0
def test_definitive_xml_schema_chapter_16(output_format):
    schema = here.joinpath("schemas/chapter16.xsd")
    cli_output = generate(str(schema), output_format)

    clazz = load_class(cli_output, "Items")
    validate_bindings(schema, clazz, output_format)
Exemplo n.º 10
0
def test_definitive_xml_schema_chapter_17(output_format):
    schema = here.joinpath("schemas/chapter17.xsd")
    cli_output = generate(str(schema), output_format, compound_fields=True)

    clazz = load_class(cli_output, "Order")
    validate_bindings(schema, clazz, output_format)
Exemplo n.º 11
0
    def test_load_class_raises_exception(self):
        output = "Generating package: generated.foo.bar"

        with self.assertRaises(ModuleNotFoundError):
            load_class(output, "foo")
Exemplo n.º 12
0
 def test_load(self):
     output = "Generating package: tests.fixtures.books.books"
     self.assertEqual(BooksForm, load_class(output, "BooksForm"))