diff --git a/.agents/skills/polyxml-codegen-workflow/SKILL.md b/.agents/skills/polyxml-codegen-workflow/SKILL.md
index 2b1e6a5..dbc41d6 100644
--- a/.agents/skills/polyxml-codegen-workflow/SKILL.md
+++ b/.agents/skills/polyxml-codegen-workflow/SKILL.md
@@ -36,6 +36,14 @@ C++ uses fixed-width octal escapes for ASCII controls. Execute
`test_enum_literal_codegen` with all seven toolchains to verify exact runtime
values and Rust Serde round trips, not just whether generated files exist.
+Schema defaults and fixed values need the same literal escaping as enums.
+Python metadata must not use Rust Debug escapes, and C++ defaults need C++
+control-character escapes. C# defaults parsed through an internal XML element
+must encode carriage returns as `
` after escaping XML markup; otherwise XML
+line-ending normalization changes the lexical value. Execute generated consumers
+against independent UTF-8 expected data, including backslash-u text, referenced
+whitespace, Unicode line separators, empty-element defaults and fixed rejection.
+
## C# runtime availability for smoke checks
The C# execution fixtures target `net8.0`. An installed .NET 10 SDK/runtime
@@ -962,3 +970,11 @@ owned/borrowed XML and JSON round trips, use the declared root name explicitly
when it differs from its type name, and distinguish C++/TypeScript model-only
generation from their runtime binding schemas. Strict docs builds catch broken
anchors and misplaced code fences, including guides appended after old fences.
+
+When Python generated-model tests use an isolated absolute CARGO_TARGET_DIR,
+resolve the CLI under that target, not the checkout's default target directory
+or an unrelated global executable. Relative target values resolve from the
+checkout because the helper builds with that cwd. The generated-model test
+helper now honors this override and builds the matching CLI if needed. Keep
+workspace targets owned by one worktree; switching checkouts in a shared target
+can leave stale unchanged executables even after a core compile message.
diff --git a/crates/polyxml-core/src/codegen/cpp/mod.rs b/crates/polyxml-core/src/codegen/cpp/mod.rs
index 339529a..da235e8 100644
--- a/crates/polyxml-core/src/codegen/cpp/mod.rs
+++ b/crates/polyxml-core/src/codegen/cpp/mod.rs
@@ -1009,7 +1009,9 @@ inline int polyxml_integer_compare(std::string_view a,std::string_view b) noexce
// Value field
let init = match &f.default_value {
Some(v) => match f.type_ref {
- TypeRef::Primitive(p) if p.is_unbounded_integer() => format!(" = {v:?}"),
+ TypeRef::Primitive(p) if p.is_unbounded_integer() => {
+ format!(" = {}", super::cpp_string_literal(v))
+ }
TypeRef::Primitive(PrimitiveType::Boolean) => {
format!(" = {}", v.to_lowercase())
}
@@ -1019,7 +1021,7 @@ inline int polyxml_integer_compare(std::string_view a,std::string_view b) noexce
TypeRef::Primitive(PrimitiveType::String)
| TypeRef::Primitive(PrimitiveType::Token)
| TypeRef::Primitive(PrimitiveType::NormalizedString) => {
- format!(" = \"{}\"", v.replace('\\', "\\\\").replace('"', "\\\""))
+ format!(" = {}", super::cpp_string_literal(v))
}
TypeRef::Primitive(_) => format!(" = {}", v),
TypeRef::Named(_) => format!(" = {}", v),
diff --git a/crates/polyxml-core/src/codegen/csharp/mod.rs b/crates/polyxml-core/src/codegen/csharp/mod.rs
index 31ffede..05153f4 100644
--- a/crates/polyxml-core/src/codegen/csharp/mod.rs
+++ b/crates/polyxml-core/src/codegen/csharp/mod.rs
@@ -1304,10 +1304,10 @@ impl CSharpCodegen {
if let Some(kind) = integer_kind {
return format!("PolyxmlIntegerLexical.Validate({text},{kind})");
}
- format!("({base})new XmlSerializer(typeof({base}), new XmlRootAttribute(\"value\")).Deserialize(new System.IO.StringReader(\"\" + System.Security.SecurityElement.Escape({text}) + \"\"))!")
+ format!("({base})new XmlSerializer(typeof({base}), new XmlRootAttribute(\"value\")).Deserialize(new System.IO.StringReader(\"\" + System.Security.SecurityElement.Escape({text}).Replace(\"\\r\", \"
\") + \"\"))!")
};
if let Some(fixed) = &field.fixed_value {
- let expected = parse(&format!("{fixed:?}"));
+ let expected = parse(&super::string_literal(fixed));
let initial = if field.cardinality.is_optional() && field.kind == FieldKind::Element {
"default!".to_string()
} else {
@@ -1327,7 +1327,7 @@ impl CSharpCodegen {
{indent} [XmlIgnore] public {ty} {name} {{ get => _{name}; set {{ if ({present}!({equal})) throw new System.ComponentModel.DataAnnotations.ValidationException(\"Fixed value constraint violated for {name}\"); _{name} = value; }} }}").unwrap();
} else {
let initial = if field.kind == FieldKind::Attribute {
- parse(&format!("{default:?}"))
+ parse(&super::string_literal(default))
} else {
"default!".to_string()
};
@@ -1361,7 +1361,10 @@ impl CSharpCodegen {
let text = if field.kind == FieldKind::Attribute {
"value".into()
} else {
- format!("value.Length == 0 ? {default:?} : value")
+ format!(
+ "value.Length == 0 ? {} : value",
+ super::string_literal(default)
+ )
};
let parsed = parse("text");
writeln!(out, "{indent} set {{ if (value is null) {{ {name} = default!; return; }} var text = {text}; {name} = {parsed}; }}
diff --git a/crates/polyxml-core/src/codegen/python/mod.rs b/crates/polyxml-core/src/codegen/python/mod.rs
index 6858fec..11b6d27 100644
--- a/crates/polyxml-core/src/codegen/python/mod.rs
+++ b/crates/polyxml-core/src/codegen/python/mod.rs
@@ -1012,10 +1012,10 @@ impl PythonCodegen {
}
if let Some(ref fixed) = field.fixed_value {
- parts.push(format!("\"fixed\": {fixed:?}"));
+ parts.push(format!("\"fixed\": {}", super::string_literal(fixed)));
}
if let Some(ref default) = field.default_value {
- parts.push(format!("\"default\": {default:?}"));
+ parts.push(format!("\"default\": {}", super::string_literal(default)));
}
if matches!(super::primitive_base(&field.type_ref, ir), TypeRef::List(_)) {
parts.push("\"tokens\": True".into());
@@ -1045,7 +1045,7 @@ impl PythonCodegen {
fn format_default_value(&self, val: &str, type_ref: &TypeRef, ir: &SchemaIR) -> String {
if matches!(super::primitive_base(type_ref, ir), TypeRef::Primitive(p) if p.is_unbounded_integer())
{
- return format!("int({val:?})");
+ return format!("int({})", super::string_literal(val));
}
let base = super::primitive_base(type_ref, ir);
@@ -1073,20 +1073,20 @@ impl PythonCodegen {
if val.trim().parse::().is_ok() {
val.trim().to_string()
} else {
- format!("\"{}\"", val.replace('"', "\\\""))
+ super::string_literal(val)
}
}
TypeRef::Primitive(PrimitiveType::Float | PrimitiveType::Double) => {
if val.trim().parse::().is_ok() {
val.trim().to_string()
} else {
- format!("\"{}\"", val.replace('"', "\\\""))
+ super::string_literal(val)
}
}
TypeRef::Primitive(PrimitiveType::Decimal) => {
- format!("Decimal(\"{}\")", val.replace('"', "\\\""))
+ format!("Decimal({})", super::string_literal(val))
}
- _ => format!("\"{}\"", val.replace('"', "\\\"")),
+ _ => super::string_literal(val),
}
}
diff --git a/crates/polyxml-core/tests/test_default_literal_codegen.rs b/crates/polyxml-core/tests/test_default_literal_codegen.rs
new file mode 100644
index 0000000..fabef09
--- /dev/null
+++ b/crates/polyxml-core/tests/test_default_literal_codegen.rs
@@ -0,0 +1,150 @@
+//! Execute consumers: escaping must preserve values as well as valid source.
+use polyxml::codegen::*;
+use polyxml::schema_parser::XsdParser;
+use std::{fs, path::Path, process::Command};
+
+fn run(directory: &Path, program: &str, args: &[&str]) {
+ let output = Command::new(program)
+ .args(args)
+ .current_dir(directory)
+ .output()
+ .unwrap();
+ assert!(
+ output.status.success(),
+ "{program} {args:?}:\n{}\n{}",
+ String::from_utf8_lossy(&output.stdout),
+ String::from_utf8_lossy(&output.stderr)
+ );
+}
+
+#[test]
+fn generated_string_defaults_and_fixed_values_preserve_xml_characters() {
+ let ir = XsdParser::new()
+ .parse_str(include_str!(
+ "../../../research/fixtures/default_literal_escaping.xsd"
+ ))
+ .unwrap();
+ let expected = "\"quoted\"\\path\\u000a\t\n\r\u{85}\u{2028}cafรฉ ๐";
+ let root = tempfile::tempdir().unwrap();
+ let consumer = |name: &str| {
+ let path = root.path().join(name);
+ fs::create_dir(&path).unwrap();
+ fs::write(path.join("expected.txt"), expected).unwrap();
+ path
+ };
+ let python = consumer("python");
+ fs::write(
+ python.join("models.py"),
+ PythonCodegen::new(PythonOptions::default()).generate_module(&ir),
+ )
+ .unwrap();
+ fs::write(
+ python.join("check.py"),
+ r#"import dataclasses
+from models import RootType
+with open('expected.txt', encoding='utf-8', newline='') as f:
+ expected = f.read()
+model = RootType(fixed=expected)
+assert model.value == expected, repr(model.value)
+assert model.label == expected, repr(model.label)
+fields = {f.name: f for f in dataclasses.fields(RootType)}
+assert fields['value'].metadata['default'] == expected
+assert fields['label'].metadata['default'] == expected
+assert fields['fixed'].metadata['fixed'] == expected
+"#,
+ )
+ .unwrap();
+ run(&python, "python3", &["check.py"]);
+ let pydantic = consumer("pydantic");
+ fs::write(
+ pydantic.join("models.py"),
+ PythonCodegen::new(PythonOptions {
+ backend: PythonBackend::Pydantic,
+ ..Default::default()
+ })
+ .generate_module(&ir),
+ )
+ .unwrap();
+ fs::write(
+ pydantic.join("check.py"),
+ r#"from models import RootType
+with open('expected.txt', encoding='utf-8', newline='') as f:
+ expected = f.read()
+model = RootType(fixed=expected)
+assert model.value == expected
+assert model.label == expected
+assert RootType.model_fields['value'].json_schema_extra['default'] == expected
+assert RootType.model_fields['fixed'].json_schema_extra['fixed'] == expected
+"#,
+ )
+ .unwrap();
+ run(&pydantic, "python3", &["check.py"]);
+ let cpp = consumer("cpp");
+ fs::write(
+ cpp.join("models.hpp"),
+ CppCodegen::new(CppOptions::default()).generate_header(&ir),
+ )
+ .unwrap();
+ fs::write(
+ cpp.join("main.cpp"),
+ r#"#include "models.hpp"
+#include
+#include
+#include
+int main() {
+ std::ifstream input("expected.txt", std::ios::binary);
+ std::string expected((std::istreambuf_iterator(input)), std::istreambuf_iterator());
+ polyxml::generated::RootType model;
+ if(model.value != expected) throw std::runtime_error("default mismatch");
+}
+"#,
+ )
+ .unwrap();
+ run(
+ &cpp,
+ "g++",
+ &[
+ "-std=c++20",
+ "-Wall",
+ "-Wextra",
+ "-Werror",
+ "main.cpp",
+ "-o",
+ "check",
+ ],
+ );
+ run(&cpp, "./check", &[]);
+ let csharp = consumer("csharp");
+ fs::write(csharp.join("Check.csproj"), "Exenet8.0enableenabletrue").unwrap();
+ fs::write(
+ csharp.join("Models.cs"),
+ CSharpCodegen::new(CSharpOptions {
+ namespace: "Models".into(),
+ ..Default::default()
+ })
+ .generate_module(&ir),
+ )
+ .unwrap();
+ fs::write(
+ csharp.join("Program.cs"),
+ r#"using Models;
+using System.ComponentModel.DataAnnotations;
+var expected = File.ReadAllText("expected.txt");
+var model = new RootType();
+if(model.Label != expected || model.Fixed != expected) throw new Exception("initializer mismatch");
+model.ValueXml = "";
+if(model.Value != expected) throw new Exception("element default mismatch");
+model.Fixed = expected;
+try { model.Fixed = expected + "wrong"; throw new Exception("fixed value accepted"); }
+catch(ValidationException) {}
+model.LabelXml = expected;
+if(model.Label != expected) throw new Exception("attribute proxy mismatch");
+"#,
+ )
+ .unwrap();
+ run(
+ &csharp,
+ "dotnet",
+ &["run", "--project", "Check.csproj", "--verbosity", "quiet"],
+ );
+}
diff --git a/crates/polyxml-python/tests/test_generated_models.py b/crates/polyxml-python/tests/test_generated_models.py
index 38741c4..3375b29 100644
--- a/crates/polyxml-python/tests/test_generated_models.py
+++ b/crates/polyxml-python/tests/test_generated_models.py
@@ -1,4 +1,5 @@
import importlib.util
+import os
import pathlib
import shutil
import subprocess
@@ -262,17 +263,20 @@ def _load_module_from_file(module_name: str, file_path: pathlib.Path):
def _get_polyxml_bin() -> pathlib.Path:
repo_root = pathlib.Path(__file__).parent.parent.parent.parent
exe_name = "polyxml.exe" if sys.platform == "win32" else "polyxml"
- candidates = [
- repo_root / "target" / "debug" / exe_name,
- repo_root / "target" / "release" / exe_name,
- ]
+ configured_target = os.environ.get("CARGO_TARGET_DIR")
+ target_dir = pathlib.Path(configured_target or "target")
+ if not target_dir.is_absolute():
+ target_dir = repo_root / target_dir
+ target_dir = target_dir.resolve()
+ candidates = [target_dir / profile / exe_name for profile in ("debug", "release")]
for c in candidates:
if c.exists():
return c
- which_path = shutil.which(exe_name) or shutil.which("polyxml")
- if which_path:
- return pathlib.Path(which_path)
+ if not configured_target:
+ which_path = shutil.which(exe_name) or shutil.which("polyxml")
+ if which_path:
+ return pathlib.Path(which_path)
# Attempt on-the-fly compilation via cargo if not found
subprocess.run(
@@ -288,6 +292,52 @@ def _get_polyxml_bin() -> pathlib.Path:
raise FileNotFoundError(f"polyxml CLI binary could not be found or built at {candidates}")
+@pytest.mark.parametrize("relative", [False, True])
+def test_cli_discovery_respects_cargo_target_directory(tmp_path, monkeypatch, relative):
+ repo_root = tmp_path / "repo"
+ monkeypatch.setitem(
+ _get_polyxml_bin.__globals__,
+ "__file__",
+ str(repo_root / "crates/polyxml-python/tests/test_generated_models.py"),
+ )
+ exe_name = "polyxml.exe" if sys.platform == "win32" else "polyxml"
+ stale = repo_root / "target/debug" / exe_name
+ stale.parent.mkdir(parents=True)
+ stale.write_text("old revision")
+ matching = repo_root / "custom-target/debug" / exe_name
+ matching.parent.mkdir(parents=True)
+ matching.write_text("matching revision")
+ monkeypatch.setenv(
+ "CARGO_TARGET_DIR", "custom-target" if relative else str(matching.parent.parent)
+ )
+ monkeypatch.setattr(shutil, "which", lambda _: str(stale))
+ assert _get_polyxml_bin() == matching
+
+
+def test_configured_target_builds_matching_cli_instead_of_using_global(tmp_path, monkeypatch):
+ repo_root = tmp_path / "repo"
+ monkeypatch.setitem(
+ _get_polyxml_bin.__globals__,
+ "__file__",
+ str(repo_root / "crates/polyxml-python/tests/test_generated_models.py"),
+ )
+ exe_name = "polyxml.exe" if sys.platform == "win32" else "polyxml"
+ matching = repo_root / "custom-target/debug" / exe_name
+ monkeypatch.setenv("CARGO_TARGET_DIR", str(matching.parent.parent))
+ monkeypatch.setattr(shutil, "which", lambda _: str(tmp_path / "old-global-cli"))
+ builds = []
+
+ def build(command, *, cwd, check, capture_output):
+ builds.append((command, cwd))
+ assert check and capture_output
+ matching.parent.mkdir(parents=True)
+ matching.write_text("matching revision")
+
+ monkeypatch.setattr(subprocess, "run", build)
+ assert _get_polyxml_bin() == matching
+ assert builds == [(["cargo", "build", "-p", "polyxml-cli"], repo_root)]
+
+
@pytest.fixture(scope="module")
def generated_models():
"""Generates both Dataclass and Pydantic models from SAMPLE_XSD using polyxml CLI,
diff --git a/research/data/runtime-followups-2026-10-03/default-literals/AttrDecl.txt b/research/data/runtime-followups-2026-10-03/default-literals/AttrDecl.txt
new file mode 100644
index 0000000..edebaa0
--- /dev/null
+++ b/research/data/runtime-followups-2026-10-03/default-literals/AttrDecl.txt
@@ -0,0 +1,23 @@
+memcap: <=7711 MiB (60% of 12853 MiB available) [systemd MemoryMax, swap off]
+โญโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
+โ PolyXML W3C XML Schema Conformance Suite โ
+โ Compiler Binary: /tmp/polyxml-followup-default-bin/polyxml โ
+โ W3C Submodule: /home/bailey/github/polyxml-w3c-tests/w3c โ
+โ Selected Suite: AttrDecl โ
+โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
+Executing 50 test group(s)...
+
+ Testing AttrDecl/ad_name00108m5... โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ 100% 0:00:00
+
+ W3C XML Schema Conformance Summary
+โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโณโโโโโโโโโ
+โ Category โ Count โ Rate โ
+โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ
+โ Total Test Groups โ 50 โ 100.0% โ
+โ Schema Compilations Passed โ 50 โ 100.0% โ
+โ Schema Compilations Failed โ 0 โ 0.0% โ
+โ Valid Instances Evaluated โ 50 โ - โ
+โ Roundtrip Validations Passed โ 50 โ 100.0% โ
+โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโดโโโโโโโโโ
+
+All executed tests passed with 100% compliance!
diff --git a/research/data/runtime-followups-2026-10-03/default-literals/CType.txt b/research/data/runtime-followups-2026-10-03/default-literals/CType.txt
new file mode 100644
index 0000000..854d6a9
--- /dev/null
+++ b/research/data/runtime-followups-2026-10-03/default-literals/CType.txt
@@ -0,0 +1,53 @@
+memcap: <=7722 MiB (60% of 12871 MiB available) [systemd MemoryMax, swap off]
+โญโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
+โ PolyXML W3C XML Schema Conformance Suite โ
+โ Compiler Binary: /tmp/polyxml-followup-default-bin/polyxml โ
+โ W3C Submodule: /home/bailey/github/polyxml-w3c-tests/w3c โ
+โ Selected Suite: CType โ
+โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
+Executing 31 test group(s)...
+
+ Testing CType/targetns00101m... โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ 100% 0:00:00
+
+ W3C XML Schema Conformance Summary
+โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโณโโโโโโโโโ
+โ Category โ Count โ Rate โ
+โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ
+โ Total Test Groups โ 31 โ 100.0% โ
+โ Schema Compilations Passed โ 31 โ 100.0% โ
+โ Schema Compilations Failed โ 0 โ 0.0% โ
+โ Valid Instances Evaluated โ 28 โ - โ
+โ Roundtrip Validations Passed โ 23 โ 82.1% โ
+โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโดโโโโโโโโโ
+
+Failures & Exceptions (5 groups):
+โโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโ
+โ โ โ Instances โ Error / First โ
+โ Suite/Group โ Schema Status โ (Pass/Total) โ Failure โ
+โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ
+โ CType/basetd00101โฆ โ PASS โ 0/1 โ Positive: FAIL - โ
+โ โ โ โ Root.__init__() โ
+โ โ โ โ missing 1 required โ
+โ โ โ โ keyword-only โ
+โ โ โ โ argument: 'valu โ
+โ CType/basetd00101โฆ โ PASS โ 0/1 โ Positive: FAIL - โ
+โ โ โ โ Root.__init__() โ
+โ โ โ โ missing 1 required โ
+โ โ โ โ keyword-only โ
+โ โ โ โ argument: 'valu โ
+โ CType/derivationmโฆ โ PASS โ 0/1 โ Positive: FAIL - โ
+โ โ โ โ B.__init__() โ
+โ โ โ โ missing 1 required โ
+โ โ โ โ keyword-only โ
+โ โ โ โ argument: 'value' โ
+โ CType/psubstitutiโฆ โ PASS โ 1/2 โ pSubstitutions001โฆ โ
+โ โ โ โ FAIL - Schema โ
+โ โ โ โ error: Unexpected โ
+โ โ โ โ root element โ
+โ โ โ โ {pSubstitu โ
+โ CType/psubstitutiโฆ โ PASS โ 1/2 โ pSubstitutions001โฆ โ
+โ โ โ โ FAIL - Schema โ
+โ โ โ โ error: Unexpected โ
+โ โ โ โ root element โ
+โ โ โ โ {pSubstitu โ
+โโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโ
diff --git a/research/data/runtime-followups-2026-10-03/default-literals/NIST.txt b/research/data/runtime-followups-2026-10-03/default-literals/NIST.txt
new file mode 100644
index 0000000..936c268
--- /dev/null
+++ b/research/data/runtime-followups-2026-10-03/default-literals/NIST.txt
@@ -0,0 +1,32 @@
+memcap: <=7699 MiB (60% of 12832 MiB available) [systemd MemoryMax, swap off]
+โญโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
+โ PolyXML W3C XML Schema Conformance Suite โ
+โ Compiler Binary: /tmp/polyxml-followup-default-bin/polyxml โ
+โ W3C Submodule: /home/bailey/github/polyxml-w3c-tests/w3c โ
+โ Selected Suite: NISTXMLSchemaDatatypes โ
+โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
+Executing 100 test group(s)...
+
+ Testing NIST2004-01-14/atomic-nonPositiveInteger-totalDigits... โโโโ 100% 0:0โฆ
+
+ W3C XML Schema Conformance Summary
+โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโณโโโโโโโโโ
+โ Category โ Count โ Rate โ
+โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ
+โ Total Test Groups โ 100 โ 100.0% โ
+โ Schema Compilations Passed โ 100 โ 100.0% โ
+โ Schema Compilations Failed โ 0 โ 0.0% โ
+โ Valid Instances Evaluated โ 452 โ - โ
+โ Roundtrip Validations Passed โ 447 โ 98.9% โ
+โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโดโโโโโโโโโ
+
+Failures & Exceptions (1 groups):
+โโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโ
+โ โ โ Instances โ Error / First โ
+โ Suite/Group โ Schema Status โ (Pass/Total) โ Failure โ
+โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ
+โ NIST2004-01-14/atโฆ โ PASS โ 0/5 โ NISTXML-SV-IV-atoโฆ โ
+โ โ โ โ FAIL - Scalar โ
+โ โ โ โ parse error for โ
+โ โ โ โ field 'v โ
+โโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโ
diff --git a/research/data/runtime-followups-2026-10-03/default-literals/baseline-generated.py.txt b/research/data/runtime-followups-2026-10-03/default-literals/baseline-generated.py.txt
new file mode 100644
index 0000000..0251025
--- /dev/null
+++ b/research/data/runtime-followups-2026-10-03/default-literals/baseline-generated.py.txt
@@ -0,0 +1,59 @@
+# @generated by PolyXML Compiler (https://github.com/polyxml/PolyXML)
+from __future__ import annotations
+
+from dataclasses import dataclass, field
+from typing import Self
+
+@dataclass(slots=True, kw_only=True)
+class RootType:
+ class Meta:
+ name = "RootType"
+ strict_root = False
+
+ value: str = field(default="\"quoted\"\path\u000a
+
ย
โจcafรฉ ๐", metadata={"type": "Element", "name": "Value", "json_name": "Value", "default": "\"quoted\"\\path\\u000a\t\n\r\u{85}\u{2028}cafรฉ ๐"})
+ fixed: str = field(metadata={"type": "Element", "name": "Fixed", "json_name": "Fixed", "fixed": "\"quoted\"\\path\\u000a\t\n\r\u{85}\u{2028}cafรฉ ๐"})
+ label: str | None = field(default="\"quoted\"\path\u000a
+
ย
โจcafรฉ ๐", metadata={"type": "Attribute", "name": "Label", "json_name": "Label", "default": "\"quoted\"\\path\\u000a\t\n\r\u{85}\u{2028}cafรฉ ๐"})
+
+ @classmethod
+ def from_xml(cls, data: bytes | str) -> Self:
+ """Deserialize XML bytes or string into this model."""
+ import polyxml
+ raw_bytes = data.encode("utf-8") if isinstance(data, str) else data
+ return polyxml.deserialize(raw_bytes, cls)
+
+ def to_xml(
+ self,
+ *,
+ indent: int | None = None,
+ namespaces: bool | None = None,
+ ns_map: dict[str, str] | None = None,
+ ) -> bytes:
+ """Serialize this model instance into XML bytes."""
+ import polyxml
+ return polyxml.serialize(self, indent=indent, namespaces=namespaces, ns_map=ns_map)
+
+ @classmethod
+ def from_json(cls, data: bytes | str) -> Self:
+ """Deserialize JSON bytes or string into this model."""
+ import polyxml
+ return polyxml.deserialize_json(data, cls)
+
+ def to_json(
+ self,
+ *,
+ indent: int | None = None,
+ by_alias: bool = True,
+ ) -> bytes:
+ """Serialize this model instance into JSON bytes."""
+ import polyxml
+ return polyxml.serialize_json(self, indent=indent, by_alias=by_alias)
+
+@dataclass(slots=True, kw_only=True)
+class Root(RootType):
+ class Meta(RootType.Meta):
+ name = "Root"
+ namespace = ""
+ strict_root = True
+ root_type = RootType
diff --git a/research/data/runtime-followups-2026-10-03/default-literals/baseline-reproduction.txt b/research/data/runtime-followups-2026-10-03/default-literals/baseline-reproduction.txt
new file mode 100644
index 0000000..d87cd5a
--- /dev/null
+++ b/research/data/runtime-followups-2026-10-03/default-literals/baseline-reproduction.txt
@@ -0,0 +1,8 @@
+Parsing schema: /home/bailey/github/polyxml-default-literals/research/fixtures/default_literal_escaping.xsd
+ Types: 1 total (1 structs, 0 enums, 0 unions, 0 simple restrictions)
+ Root elements: 1
+Code generation complete.
+ File "/tmp/polyxml-default-literals-baseline-python/default_literal_escaping.py", line 13
+ value: str = field(default="\"quoted\"\path\u000a
+ ^
+SyntaxError: unterminated string literal (detected at line 13); perhaps you escaped the end quote?
diff --git a/research/data/runtime-followups-2026-10-03/default-literals/candidate-generated.py.txt b/research/data/runtime-followups-2026-10-03/default-literals/candidate-generated.py.txt
new file mode 100644
index 0000000..5530100
--- /dev/null
+++ b/research/data/runtime-followups-2026-10-03/default-literals/candidate-generated.py.txt
@@ -0,0 +1,57 @@
+# @generated by PolyXML Compiler (https://github.com/polyxml/PolyXML)
+from __future__ import annotations
+
+from dataclasses import dataclass, field
+from typing import Self
+
+@dataclass(slots=True, kw_only=True)
+class RootType:
+ class Meta:
+ name = "RootType"
+ strict_root = False
+
+ value: str = field(default="\"quoted\"\\path\\u000a\t\n\r\u0085\u2028cafรฉ ๐", metadata={"type": "Element", "name": "Value", "json_name": "Value", "default": "\"quoted\"\\path\\u000a\t\n\r\u0085\u2028cafรฉ ๐"})
+ fixed: str = field(metadata={"type": "Element", "name": "Fixed", "json_name": "Fixed", "fixed": "\"quoted\"\\path\\u000a\t\n\r\u0085\u2028cafรฉ ๐"})
+ label: str | None = field(default="\"quoted\"\\path\\u000a\t\n\r\u0085\u2028cafรฉ ๐", metadata={"type": "Attribute", "name": "Label", "json_name": "Label", "default": "\"quoted\"\\path\\u000a\t\n\r\u0085\u2028cafรฉ ๐"})
+
+ @classmethod
+ def from_xml(cls, data: bytes | str) -> Self:
+ """Deserialize XML bytes or string into this model."""
+ import polyxml
+ raw_bytes = data.encode("utf-8") if isinstance(data, str) else data
+ return polyxml.deserialize(raw_bytes, cls)
+
+ def to_xml(
+ self,
+ *,
+ indent: int | None = None,
+ namespaces: bool | None = None,
+ ns_map: dict[str, str] | None = None,
+ ) -> bytes:
+ """Serialize this model instance into XML bytes."""
+ import polyxml
+ return polyxml.serialize(self, indent=indent, namespaces=namespaces, ns_map=ns_map)
+
+ @classmethod
+ def from_json(cls, data: bytes | str) -> Self:
+ """Deserialize JSON bytes or string into this model."""
+ import polyxml
+ return polyxml.deserialize_json(data, cls)
+
+ def to_json(
+ self,
+ *,
+ indent: int | None = None,
+ by_alias: bool = True,
+ ) -> bytes:
+ """Serialize this model instance into JSON bytes."""
+ import polyxml
+ return polyxml.serialize_json(self, indent=indent, by_alias=by_alias)
+
+@dataclass(slots=True, kw_only=True)
+class Root(RootType):
+ class Meta(RootType.Meta):
+ name = "Root"
+ namespace = ""
+ strict_root = True
+ root_type = RootType
diff --git a/research/data/runtime-followups-2026-10-03/default-literals/cli-probe.txt b/research/data/runtime-followups-2026-10-03/default-literals/cli-probe.txt
new file mode 100644
index 0000000..04f3db9
--- /dev/null
+++ b/research/data/runtime-followups-2026-10-03/default-literals/cli-probe.txt
@@ -0,0 +1,9 @@
+Parsing schema: research/fixtures/default_literal_escaping.xsd
+ Types: 1 total (1 structs, 0 enums, 0 unions, 0 simple restrictions)
+ Root elements: 1
+Code generation complete.
+{
+ "expected": "\"quoted\"\\path\\u000a\t\n\r\u0085\u2028caf\u00e9 \ud83d\ude00",
+ "default": "\"quoted\"\\path\\u000a\t\n\r\u0085\u2028caf\u00e9 \ud83d\ude00",
+ "cli_sha256": "55da9bccc0425fe2c1300c98e1123717f2e61a815567ba3939de0ef50c6c7565"
+}
diff --git a/research/data/runtime-followups-2026-10-03/default-literals/companion-binding.txt b/research/data/runtime-followups-2026-10-03/default-literals/companion-binding.txt
new file mode 100644
index 0000000..7c25f80
--- /dev/null
+++ b/research/data/runtime-followups-2026-10-03/default-literals/companion-binding.txt
@@ -0,0 +1,10 @@
+memcap: <=7777 MiB (60% of 12962 MiB available) [systemd MemoryMax, swap off]
+๐น Building a mixed python/rust project
+๐ Found CPython 3.14 at /home/bailey/github/polyxml-w3c-tests/.venv/bin/python
+๐ Found pyo3 bindings with abi3-py3.12 support
+๐ก Using build options features from pyproject.toml
+Checked 6 packages in 0.47ms
+ Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.02s
+๐ฆ Built wheel for abi3 Python โฅ 3.12 to /tmp/.tmpWcsY7w/polyxml-0.34.6-cp312-abi3-linux_x86_64.whl
+โ๏ธ Setting installed package as editable
+๐ Installed polyxml-0.34.6
diff --git a/research/data/runtime-followups-2026-10-03/default-literals/corpus-comparison.json b/research/data/runtime-followups-2026-10-03/default-literals/corpus-comparison.json
new file mode 100644
index 0000000..7ff6421
--- /dev/null
+++ b/research/data/runtime-followups-2026-10-03/default-literals/corpus-comparison.json
@@ -0,0 +1,11 @@
+{
+ "CType": {
+ "identical_summary_and_failures": true
+ },
+ "AttrDecl": {
+ "identical_summary_and_failures": true
+ },
+ "NIST": {
+ "identical_summary_and_failures": true
+ }
+}
diff --git a/research/data/runtime-followups-2026-10-03/default-literals/focused-consumers.txt b/research/data/runtime-followups-2026-10-03/default-literals/focused-consumers.txt
new file mode 100644
index 0000000..1f0b7b2
--- /dev/null
+++ b/research/data/runtime-followups-2026-10-03/default-literals/focused-consumers.txt
@@ -0,0 +1,55 @@
+memcap: <=7739 MiB (60% of 12899 MiB available) [systemd MemoryMax, swap off]
+ Compiling syn v2.0.119
+ Compiling serde v1.0.229
+ Compiling cfg-if v1.0.4
+ Compiling zerocopy v0.8.57
+ Compiling zerocopy-derive v0.8.57
+ Compiling shlex v2.0.1
+ Compiling find-msvc-tools v0.1.12
+ Compiling cc v1.4.5
+ Compiling autocfg v1.5.1
+ Compiling fastrand v2.5.0
+ Compiling num-traits v0.2.19
+ Compiling half v2.7.1
+ Compiling alloca v0.4.0
+ Compiling phf_shared v0.14.0
+ Compiling rustix v1.1.5
+ Compiling either v1.18.0
+ Compiling getrandom v0.4.3
+ Compiling ciborium-io v0.2.2
+ Compiling ciborium-ll v0.2.2
+ Compiling phf_generator v0.14.0
+ Compiling itertools v0.13.0
+ Compiling clap_builder v4.6.7
+ Compiling cast v0.3.0
+ Compiling bitflags v2.13.2
+ Compiling linux-raw-sys v0.12.1
+ Compiling same-file v1.0.6
+ Compiling walkdir v2.5.0
+ Compiling criterion-plot v0.8.2
+ Compiling minijinja v2.24.0
+ Compiling phf_codegen v0.14.0
+ Compiling clap v4.6.7
+ Compiling phf_macros v0.14.0
+ Compiling ciborium v0.2.2
+ Compiling tinytemplate v1.2.1
+ Compiling page_size v0.6.0
+ Compiling quick-xml v0.42.0
+ Compiling yansi v1.0.1
+ Compiling oorandom v11.1.5
+ Compiling diff v0.1.13
+ Compiling anes v0.1.6
+ Compiling once_cell v1.21.4
+ Compiling polyxml v0.34.6 (/home/bailey/github/polyxml-default-literals/crates/polyxml-core)
+ Compiling tempfile v3.27.0
+ Compiling criterion v0.8.2
+ Compiling pretty_assertions v1.4.1
+ Compiling phf v0.14.0
+ Finished `test` profile [unoptimized + debuginfo] target(s) in 26.48s
+ Running tests/test_default_literal_codegen.rs (/home/bailey/github/PolyXML/target/followup-entities-verification/debug/deps/test_default_literal_codegen-2692bac302c8ed5d)
+
+running 1 test
+test generated_string_defaults_and_fixed_values_preserve_xml_characters ... ok
+
+test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.93s
+
diff --git a/research/data/runtime-followups-2026-10-03/default-literals/manifest.json b/research/data/runtime-followups-2026-10-03/default-literals/manifest.json
new file mode 100644
index 0000000..b70291a
--- /dev/null
+++ b/research/data/runtime-followups-2026-10-03/default-literals/manifest.json
@@ -0,0 +1,58 @@
+{
+ "AttrDecl.txt": {
+ "sha256": "d73b85834c9153f9be0ae2f621f6afedaf7826d8f264d208ff29c527e3a34a5c",
+ "bytes": 1784
+ },
+ "CType.txt": {
+ "sha256": "4ef9c47560aed0ef1a8b651163c5fdea14b5fe5831a1509563ef030f49b7dd2e",
+ "bytes": 4970
+ },
+ "NIST.txt": {
+ "sha256": "ddf82c002fd4720aafe8d74fa0d49f09619193d2a92ec23183e5dbab2fa1a709",
+ "bytes": 2994
+ },
+ "baseline-generated.py.txt": {
+ "sha256": "c66125c0928585c0bd40817717fb9fb268d3d879350dc677bcb814e2fda49fdd",
+ "bytes": 2206
+ },
+ "baseline-reproduction.txt": {
+ "sha256": "01223a5bcb064d6c146bacce42196f6aad63b98f5a3aafcf446dea4665c3118d",
+ "bytes": 503
+ },
+ "candidate-generated.py.txt": {
+ "sha256": "94fe949fe13914d18a6fc1349ec08d139d6782fda534c637508c170f8d05fbaf",
+ "bytes": 2224
+ },
+ "cli-probe.txt": {
+ "sha256": "eb3cae18ddf9655367a3a7a7177eb48f5bb3d6c13fddc8a497f68175122264f3",
+ "bytes": 427
+ },
+ "companion-binding.txt": {
+ "sha256": "5cef6fabdff12503701c85f1175e1858206e6fc7eee8ea87ba2295dc9c65750d",
+ "bytes": 586
+ },
+ "corpus-comparison.json": {
+ "sha256": "44bb1f5f13d114980edb6472ca71591c215c5970fcfceffd0a15bc9d1e20490a",
+ "bytes": 188
+ },
+ "focused-consumers.txt": {
+ "sha256": "745b26713ba7415dbb9a0c4026d66581392e5581e2f6c8fd6969178c78e25909",
+ "bytes": 1958
+ },
+ "native-probe.json": {
+ "sha256": "703399ffbe71231afa356a26fba5a213a53f7a26fbfc533fb2728596b344a83d",
+ "bytes": 202
+ },
+ "quality-gate-missing-target.txt": {
+ "sha256": "647ae9339d02fc25cd83d3de86f811e56d30fb3a86717f17cea6214ad900d65e",
+ "bytes": 277608
+ },
+ "quality-gate.txt": {
+ "sha256": "8789ebdb1cd87682ade6f19f917e87503eac6ede15ba84df66e04ea39a51827c",
+ "bytes": 37508
+ },
+ "seven-backend-cli-smoke.txt": {
+ "sha256": "93d14e4e50af92dffd64a60e9609c9d19a69a655e6d3c6a28d3ffe894e01c281",
+ "bytes": 1060
+ }
+}
diff --git a/research/data/runtime-followups-2026-10-03/default-literals/native-probe.json b/research/data/runtime-followups-2026-10-03/default-literals/native-probe.json
new file mode 100644
index 0000000..7eb9946
--- /dev/null
+++ b/research/data/runtime-followups-2026-10-03/default-literals/native-probe.json
@@ -0,0 +1,4 @@
+{
+ "native_file": "/home/bailey/github/polyxml-default-literals/crates/polyxml-python/python/polyxml/_polyxml.abi3.so",
+ "sha256": "3fc95d99ccbeac911383f75c6bc1943fc4c51883554de37d2e1ba4332a9aad9d"
+}
diff --git a/research/data/runtime-followups-2026-10-03/default-literals/quality-gate-missing-target.txt b/research/data/runtime-followups-2026-10-03/default-literals/quality-gate-missing-target.txt
new file mode 100644
index 0000000..b812bd7
--- /dev/null
+++ b/research/data/runtime-followups-2026-10-03/default-literals/quality-gate-missing-target.txt
@@ -0,0 +1,3822 @@
+memcap: <=7774 MiB (60% of 12957 MiB available) [systemd MemoryMax, swap off]
+[0;34m==> [1/6] Running Rust format check (cargo fmt)...[0m
+[0;34m==> [2/6] Running Rust Clippy (cargo clippy -D warnings)...[0m
+ Compiling unicode-ident v1.0.24
+ Compiling proc-macro2 v1.0.107
+ Compiling quote v1.0.47
+ Compiling syn v3.0.5
+ Compiling serde_core v1.0.229
+ Compiling serde v1.0.229
+ Checking memchr v2.8.3
+ Compiling serde_derive v1.0.229
+ Compiling syn v2.0.119
+ Checking lexical-util v1.0.7
+ Compiling zmij v1.0.23
+ Compiling serde_json v1.0.151
+ Checking siphasher v1.0.3
+ Checking phf_shared v0.14.0
+ Checking aho-corasick v1.1.5
+ Checking itoa v1.0.18
+ Checking regex-syntax v0.8.11
+ Checking fastrand v2.5.0
+ Checking regex-automata v0.4.18
+ Checking lexical-parse-integer v1.0.6
+ Checking lexical-write-integer v1.0.6
+ Compiling thiserror v2.0.21
+ Checking lexical-write-float v1.0.6
+ Checking lexical-parse-float v1.0.6
+ Checking regex v1.13.1
+ Checking phf_generator v0.14.0
+ Compiling thiserror-impl v2.0.21
+ Checking memo-map v0.3.4
+ Checking minijinja v2.24.0
+ Checking phf_codegen v0.14.0
+ Checking lexical-core v1.0.6
+ Checking quick-xml v0.42.0
+ Checking heck v0.5.0
+ Checking smallvec v1.16.2
+ Checking once_cell v1.21.4
+ Compiling libc v0.2.189
+ Checking polyxml v0.34.6 (/home/bailey/github/polyxml-default-literals/crates/polyxml-core)
+ Checking cfg-if v1.0.4
+ Checking utf8parse v0.2.2
+ Checking anstyle-parse v1.0.0
+ Checking anstyle v1.0.14
+ Checking is_terminal_polyfill v1.70.2
+ Checking colorchoice v1.0.5
+ Checking anstyle-query v1.1.5
+ Checking anstream v1.0.0
+ Checking clap_lex v1.1.0
+ Checking bitflags v2.13.2
+ Checking strsim v0.11.1
+ Checking clap_builder v4.6.7
+ Compiling clap_derive v4.6.7
+ Checking clap v4.6.7
+ Compiling rustix v1.1.5
+ Compiling zerocopy v0.8.57
+ Compiling getrandom v0.4.3
+ Compiling zerocopy-derive v0.8.57
+ Compiling find-msvc-tools v0.1.12
+ Checking linux-raw-sys v0.12.1
+ Compiling shlex v2.0.1
+ Compiling cc v1.4.5
+ Compiling autocfg v1.5.1
+ Compiling num-traits v0.2.19
+ Checking tempfile v3.27.0
+ Checking half v2.7.1
+ Compiling alloca v0.4.0
+ Checking ciborium-io v0.2.2
+ Checking either v1.18.0
+ Checking itertools v0.13.0
+ Checking ciborium-ll v0.2.2
+ Checking cast v0.3.0
+ Checking same-file v1.0.6
+ Checking walkdir v2.5.0
+ Checking criterion-plot v0.8.2
+ Checking ciborium v0.2.2
+ Compiling phf_macros v0.14.0
+ Checking page_size v0.6.0
+ Checking tinytemplate v1.2.1
+ Checking yansi v1.0.1
+ Checking diff v0.1.13
+ Checking anes v0.1.6
+ Checking oorandom v11.1.5
+ Checking criterion v0.8.2
+ Checking pretty_assertions v1.4.1
+ Checking phf v0.14.0
+ Compiling target-lexicon v0.13.5
+ Compiling wasm-bindgen-shared v0.2.129
+ Compiling pyo3-build-config v0.29.2
+ Compiling rustversion v1.0.23
+ Checking winnow v1.0.4
+ Checking toml_parser v1.1.3+spec-1.1.0
+ Compiling pyo3-ffi v0.29.2
+ Checking serde_spanned v1.1.1
+ Checking toml_datetime v1.1.1+spec-1.1.0
+ Checking toml_writer v1.1.2+spec-1.1.0
+ Checking toml v1.1.6+spec-1.1.0
+ Checking glob v0.3.4
+ Compiling bumpalo v3.20.3
+ Compiling unicode-segmentation v1.13.3
+ Compiling convert_case v0.6.0
+ Compiling wasm-bindgen-macro-support v0.2.129
+ Compiling wasm-bindgen v0.2.129
+ Compiling pyo3 v0.29.2
+ Compiling pyo3-macros-backend v0.29.2
+ Compiling napi-build v2.5.0
+ Compiling semver v1.0.28
+ Compiling napi-derive-backend v1.0.75
+ Compiling polyxml-js v0.34.6 (/home/bailey/github/polyxml-default-literals/crates/polyxml-js)
+ Compiling pyo3-macros v0.29.2
+ Compiling wasm-bindgen-macro v0.2.129
+ Checking polyxml-cli v0.34.6 (/home/bailey/github/polyxml-default-literals/crates/polyxml-cli)
+ Compiling ctor v0.2.9
+ Checking napi-sys v2.4.0
+ Checking napi v2.16.17
+ Compiling napi-derive v2.16.13
+ Checking polyxml-wasm v0.34.6 (/home/bailey/github/polyxml-default-literals/crates/polyxml-wasm)
+ Checking polyxml-python v0.34.6 (/home/bailey/github/polyxml-default-literals/crates/polyxml-python)
+ Checking polyxml-c v0.34.6 (/home/bailey/github/polyxml-default-literals/crates/polyxml-c)
+ Finished `dev` profile [unoptimized + debuginfo] target(s) in 47.51s
+[0;34m==> [3/6] Running Rust workspace tests (cargo test)...[0m
+ Compiling unicode-ident v1.0.24
+ Compiling proc-macro2 v1.0.107
+ Compiling quote v1.0.47
+ Compiling syn v3.0.5
+ Compiling serde_core v1.0.229
+ Compiling siphasher v1.0.3
+ Compiling memchr v2.8.3
+ Compiling regex-syntax v0.8.11
+ Compiling serde_derive v1.0.229
+ Compiling heck v0.5.0
+ Compiling serde v1.0.229
+ Compiling lexical-util v1.0.7
+ Compiling syn v2.0.119
+ Compiling zmij v1.0.23
+ Compiling aho-corasick v1.1.5
+ Compiling phf_shared v0.14.0
+ Compiling cfg-if v1.0.4
+ Compiling itoa v1.0.18
+ Compiling fastrand v2.5.0
+ Compiling serde_json v1.0.151
+ Compiling regex-automata v0.4.18
+ Compiling lexical-write-integer v1.0.6
+ Compiling lexical-parse-integer v1.0.6
+ Compiling once_cell v1.21.4
+ Compiling lexical-parse-float v1.0.6
+ Compiling lexical-write-float v1.0.6
+ Compiling regex v1.13.1
+ Compiling phf_generator v0.14.0
+ Compiling thiserror-impl v2.0.21
+ Compiling memo-map v0.3.4
+ Compiling minijinja v2.24.0
+ Compiling thiserror v2.0.21
+ Compiling phf_codegen v0.14.0
+ Compiling lexical-core v1.0.6
+ Compiling quick-xml v0.42.0
+ Compiling smallvec v1.16.2
+ Compiling libc v0.2.189
+ Compiling polyxml v0.34.6 (/home/bailey/github/polyxml-default-literals/crates/polyxml-core)
+ Compiling utf8parse v0.2.2
+ Compiling anstyle-parse v1.0.0
+ Compiling is_terminal_polyfill v1.70.2
+ Compiling colorchoice v1.0.5
+ Compiling anstyle-query v1.1.5
+ Compiling anstyle v1.0.14
+ Compiling anstream v1.0.0
+ Compiling strsim v0.11.1
+ Compiling clap_lex v1.1.0
+ Compiling clap_builder v4.6.7
+ Compiling clap_derive v4.6.7
+ Compiling bitflags v2.13.2
+ Compiling clap v4.6.7
+ Compiling linux-raw-sys v0.12.1
+ Compiling rustix v1.1.5
+ Compiling getrandom v0.4.3
+ Compiling zerocopy-derive v0.8.57
+ Compiling zerocopy v0.8.57
+ Compiling tempfile v3.27.0
+ Compiling half v2.7.1
+ Compiling ciborium-io v0.2.2
+ Compiling either v1.18.0
+ Compiling itertools v0.13.0
+ Compiling ciborium-ll v0.2.2
+ Compiling cast v0.3.0
+ Compiling same-file v1.0.6
+ Compiling walkdir v2.5.0
+ Compiling criterion-plot v0.8.2
+ Compiling num-traits v0.2.19
+ Compiling alloca v0.4.0
+ Compiling ciborium v0.2.2
+ Compiling phf_macros v0.14.0
+ Compiling page_size v0.6.0
+ Compiling tinytemplate v1.2.1
+ Compiling oorandom v11.1.5
+ Compiling yansi v1.0.1
+ Compiling anes v0.1.6
+ Compiling diff v0.1.13
+ Compiling pretty_assertions v1.4.1
+ Compiling criterion v0.8.2
+ Compiling phf v0.14.0
+ Compiling winnow v1.0.4
+ Compiling toml_parser v1.1.3+spec-1.1.0
+ Compiling serde_spanned v1.1.1
+ Compiling toml_datetime v1.1.1+spec-1.1.0
+ Compiling toml_writer v1.1.2+spec-1.1.0
+ Compiling toml v1.1.6+spec-1.1.0
+ Compiling wasm-bindgen-shared v0.2.129
+ Compiling glob v0.3.4
+ Compiling wasm-bindgen-macro-support v0.2.129
+ Compiling wasm-bindgen-macro v0.2.129
+ Compiling polyxml-cli v0.34.6 (/home/bailey/github/polyxml-default-literals/crates/polyxml-cli)
+ Compiling wasm-bindgen v0.2.129
+ Compiling pyo3-macros-backend v0.29.2
+ Compiling polyxml-js v0.34.6 (/home/bailey/github/polyxml-default-literals/crates/polyxml-js)
+ Compiling napi-derive-backend v1.0.75
+ Compiling pyo3-macros v0.29.2
+ Compiling pyo3-ffi v0.29.2
+ Compiling ctor v0.2.9
+ Compiling napi-sys v2.4.0
+ Compiling napi v2.16.17
+ Compiling pyo3 v0.29.2
+ Compiling napi-derive v2.16.13
+ Compiling polyxml-wasm v0.34.6 (/home/bailey/github/polyxml-default-literals/crates/polyxml-wasm)
+ Compiling polyxml-python v0.34.6 (/home/bailey/github/polyxml-default-literals/crates/polyxml-python)
+ Compiling polyxml-c v0.34.6 (/home/bailey/github/polyxml-default-literals/crates/polyxml-c)
+ Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 20s
+ Running unittests src/lib.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/polyxml-675b717e531d04ed)
+
+running 16 tests
+test integer::tests::comparison_uses_sign_and_magnitude ... ok
+test ir::root_selection_tests::inherited_base_does_not_select_sibling_types ... ok
+test ir::chunker::tests::test_topological_scc_chunking_dag_invariants ... ok
+test ir::root_selection_tests::keeps_references_descendants_and_substitutions ... ok
+test ir::root_selection_tests::rejects_missing_and_ambiguous_roots ... ok
+test json::tests::test_json_deserialization_accepts_python_field_names ... ok
+test json::tests::test_json_roundtrip_primitives ... ok
+test tests::test_deserialization_does_not_confuse_xmlns_with_attributes ... ok
+test tests::test_namespaced_serialization ... ok
+test tests::test_roundtrip_serialization_deserialization ... ok
+test ir::root_selection_tests::field_reference_keeps_substitution_group_members ... ok
+test tests::test_streaming_xml_item_stream ... ok
+test tests::test_nested_elements_and_lists ... ok
+test pattern::tests::bounded_cache_evicts_and_retains_invalid_results ... ok
+test pattern::tests::cache_matches_uncached_regex_under_churn_and_concurrency ... ok
+test pattern::tests::cyclic_working_set_above_capacity_keeps_reusing_entries ... ok
+
+test result: ok. 16 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.15s
+
+ Running tests/test_adversarial_identifiers.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/test_adversarial_identifiers-34056256ccaa17cb)
+
+running 7 tests
+test test_rust_adversarial_compilation ... ok
+test test_python_adversarial_compilation ... ok
+test test_go_adversarial_compilation ... ok
+test test_cpp_adversarial_compilation ... ok
+test test_java_adversarial_compilation ... ok
+test test_typescript_adversarial_compilation ... ok
+test test_csharp_adversarial_compilation ... ok
+
+test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 4.36s
+
+ Running tests/test_any_attribute.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/test_any_attribute-d5795d9c5e0fdefd)
+
+running 1 test
+test test_any_attribute_schema_parser_and_runtime_roundtrip ... ok
+
+test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
+
+ Running tests/test_any_element.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/test_any_element-1fb225d6616938e8)
+
+running 2 tests
+test test_any_element_schema_parser_and_runtime_roundtrip ... ok
+test test_any_element_go_codegen ... ok
+
+test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
+
+ Running tests/test_conformance.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/test_conformance-0b37810d65fedfce)
+
+running 4 tests
+test test_soap_envelope_conformance ... ok
+test test_ubl_invoice_conformance ... ok
+test test_atom_feed_conformance ... ok
+test test_streaming_catalog_conformance ... ok
+
+test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
+
+ Running tests/test_core.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/test_core-f4cc1079f88df2bc)
+
+running 9 tests
+test integer_mappings_keep_fixed_width_builtins ... ok
+test test_gregorian_partial_date_lexical_validation ... ok
+test test_malformed_xml_syntax_error ... ok
+test test_error_handling_invalid_scalars ... ok
+test test_all_scalar_types ... ok
+test test_xsi_nil_handling ... ok
+test test_roundtrip_serialization_with_indentation ... ok
+test unbounded_integers_round_trip_and_compare_exact_bounds ... ok
+test test_xsd_gregorian_fields_round_trip_and_reject_invalid_dates ... ok
+
+test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
+
+ Running tests/test_cpp_codegen.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/test_cpp_codegen-a4cd5571504c64d5)
+
+running 14 tests
+test test_cpp_cmake_modules_file_set ... ok
+test test_cpp_cmake_and_meson_generation ... ok
+test simple_aliases_follow_their_base_types ... ok
+test test_cpp_glaze_backend_meta_generation ... ok
+test test_cpp_mode_and_backend_from_str_loose ... ok
+test test_cpp_sanitization ... ok
+test mixed_content_self_cycle_compiles ... ok
+test mixed_content_mutual_cycle_compiles ... ok
+Inheritance test passed.
+test test_cpp_inheritance_codegen ... ok
+Recursive tree unique_ptr passed.
+test test_cpp_recursive_cycle_unique_ptr ... ok
+Choice pattern matching passed.
+test test_cpp_choice_variant_compilation ... ok
+All C++20 tests passed successfully.
+test test_cpp_struct_and_enum_codegen_compilation ... ok
+test test_cpp_modules_compilation ... ok
+ISO 20022 pacs.008 C++20 test passed.
+test test_cpp_from_xsd_schema ... ok
+
+test result: ok. 14 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.86s
+
+ Running tests/test_csharp_codegen.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/test_csharp_codegen-cf32febf6e7f0777)
+
+running 20 tests
+test choice_variants_avoid_record_member_names ... ok
+test emits_unrestricted_simple_types_and_validates_empty_records ... ok
+test test_csharp_any_attribute_codegen ... ok
+test test_csharp_date_or_datetime_lexical_union ... ok
+test test_csharp_record_kind_from_str_loose ... ok
+test test_csharp_sanitization ... ok
+test test_csharp_sequence_nested_inside_choice_codegen ... ok
+test test_csharp_source_gen_context ... ok
+ Determining projects to restore...
+ Restored /tmp/.tmpX3tt8X/PaymentsApp.csproj (in 197 ms).
+ PaymentsApp -> /tmp/.tmpX3tt8X/bin/Debug/net8.0/PaymentsApp.dll
+
+Build succeeded.
+ 0 Warning(s)
+ 0 Error(s)
+
+Time Elapsed 00:00:01.25
+Choice pattern matching and XML serialization passed!
+test test_csharp_choice_polymorphic_hierarchy ... ok
+test unbounded_integer_xml_preserves_digits ... ok
+test test_csharp_mutable_inheritance_roundtrip ... ok
+ Determining projects to restore...
+ Restored /tmp/.tmpGRg3NP/TreeApp.csproj (in 170 ms).
+ TreeApp -> /tmp/.tmpGRg3NP/bin/Debug/net8.0/TreeApp.dll
+
+Build succeeded.
+ 0 Warning(s)
+ 0 Error(s)
+
+Time Elapsed 00:00:01.03
+Recursive tree C# tests passed cleanly!
+test test_csharp_recursive_cycle ... ok
+ Determining projects to restore...
+ Restored /tmp/.tmpJhLSyK/CrmApp.csproj (in 168 ms).
+ CrmApp -> /tmp/.tmpJhLSyK/bin/Debug/net8.0/CrmApp.dll
+
+Build succeeded.
+ 0 Warning(s)
+ 0 Error(s)
+
+Time Elapsed 00:00:01.04
+Customer C# tests passed cleanly!
+test test_csharp_records_and_enums_generation ... ok
+test test_csharp_mutable_wrappers_and_choices_without_validation ... ok
+test test_csharp_simple_content_class_validator_and_unsealed_records ... ok
+test lexical_union_attributes_round_trip ... ok
+test element_defaults_preserve_absence_and_empty_presence ... ok
+test fixed_values_are_enforced_on_read_and_write ... ok
+test nillable_enum_collection_round_trips ... ok
+test particle_wire_structure_round_trips ... ok
+
+test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 51.04s
+
+ Running tests/test_default_literal_codegen.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/test_default_literal_codegen-4c3562e7020c30db)
+
+running 1 test
+test generated_string_defaults_and_fixed_values_preserve_xml_characters ... ok
+
+test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.96s
+
+ Running tests/test_enum_literal_codegen.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/test_enum_literal_codegen-0c92c71c8d4587d6)
+
+running 1 test
+test enum_literals_compile_and_preserve_values_in_all_seven_languages ... ok
+
+test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 27.06s
+
+ Running tests/test_go_codegen.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/test_go_codegen-005c45ed4341be87)
+
+running 25 tests
+test root_alias_names_are_unique_after_go_normalization ... ok
+test referenced_element_uses_declared_type_after_includes ... ok
+test test_go_any_attribute_codegen ... ok
+test test_go_backend_from_str_loose ... ok
+go: creating new go.mod: module payments
+go: to add module requirements and sums:
+ go mod tidy
+test imported_ordered_types_do_not_add_unused_bytes_import ... ok
+test test_go_date_or_datetime_lexical_union ... ok
+test test_go_easyjson_backend ... ok
+test test_go_enum_only_schema_omits_unused_xml_import ... ok
+test repeated_choice_branch_rejects_mixed_and_empty_selections ... ok
+go: creating new go.mod: module tree
+go: to add module requirements and sums:
+ go mod tidy
+test nested_lexical_unions_compile_and_round_trip_in_go ... ok
+test test_go_sanitization ... ok
+test test_go_sonic_backend ... ok
+go: creating new go.mod: module crm
+go: to add module requirements and sums:
+ go mod tidy
+test abstract_substitution_heads_are_rejected ... ok
+test test_go_abstract_xsi_type_dispatch ... ok
+test roots_and_union_attributes_round_trip ... ok
+test separate_choices_enforce_each_group ... ok
+=== RUN TestChoiceMutualExclusivity
+ payments_test.go:44: Correctly rejected concurrent choice branches: choice ContactChoice mutual exclusivity violation: multiple branches populated (2)
+--- PASS: TestChoiceMutualExclusivity (0.00s)
+PASS
+ok payments 0.004s
+test duplicate_choice_names_reject_invalid_branch_shapes ... ok
+test test_go_choice_mutual_exclusivity ... ok
+test temporal_scalars_preserve_xsd_lexical_values ... ok
+test repeated_sequence_groups_enforce_bounds_and_order ... ok
+test test_go_namespaced_element_ref_matching ... ok
+=== RUN TestRecursiveTree
+--- PASS: TestRecursiveTree (0.00s)
+PASS
+ok tree 0.002s
+test test_go_recursive_cycle_pointers ... ok
+=== RUN TestCustomerRoundtrip
+--- PASS: TestCustomerRoundtrip (0.00s)
+PASS
+ok crm 0.002s
+test test_go_struct_and_enum_generation ... ok
+test unbounded_integer_xml_preserves_digits ... ok
+test ordered_particles_and_choice_branches_round_trip ... ok
+
+test result: ok. 25 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.03s
+
+ Running tests/test_java_codegen.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/test_java_codegen-a6078e165fc64681)
+
+running 17 tests
+test test_java_jackson_backend_enum_annotations ... ok
+test test_java_identifier_sanitization ... ok
+test test_java_jackson_backend_from_str_loose ... ok
+test test_java_jackson_backend_simple_type_annotations ... ok
+test test_direct_codec_rejects_wildcards_and_name_collisions ... ok
+test test_java_jackson_backend_struct_annotations ... ok
+test test_java_jackson_backend_union_annotations ... ok
+test test_java_bean_validation_annotations_are_opt_in ... ok
+test test_java_plain_record_inlines_base_fields ... ok
+test jackson3_preserves_core_annotations_and_maps_record_text ... ok
+test test_java_sealed_interface_choice ... ok
+test test_java_module_container_class ... ok
+test test_java_records_and_enums_generation ... ok
+test test_java_plain_record_extension_javac_execute ... ok
+test test_java_record_builder_and_nested_codec_execute ... ok
+test test_java_mutable_builders_and_direct_codecs_execute ... ok
+test test_java_direct_nil_lists_choices_and_namespaces ... ok
+
+test result: ok. 17 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.46s
+
+ Running tests/test_json.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/test_json-74440efee0e911e7)
+
+running 4 tests
+test test_json_scalar_coercion ... ok
+test test_json_nested_objects_and_lists ... ok
+test test_json_primitives_and_alias_modes ... ok
+test test_polyvalue_direct_json_methods ... ok
+
+test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
+
+ Running tests/test_lexical_lists.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/test_lexical_lists-0f6750d9c4bf9a3c)
+
+running 2 tests
+test named_list_items_enforce_facets_and_enumerations ... ok
+test typed_lexical_lists_round_trip_across_codecs ... ok
+
+test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.31s
+
+ Running tests/test_lexical_union_codegen.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/test_lexical_union_codegen-3c208893561d2732)
+
+running 2 tests
+test lexical_union_xml_selects_first_valid_member_and_round_trips ... ok
+test lexical_unions_are_typed_in_all_targets ... ok
+
+test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
+
+ Running tests/test_mixed_content.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/test_mixed_content-1a697ad935ae2797)
+
+running 5 tests
+test mixed_items_field_avoids_existing_attribute_name ... ok
+test parser_builds_ordered_mixed_content_union ... ok
+test mixed_content_preserves_nested_child_order ... ok
+test mixed_content_preserves_text_and_child_order ... ok
+test generated_models_keep_typed_content_items_in_all_targets ... ok
+
+test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
+
+ Running tests/test_pattern_codegen.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/test_pattern_codegen-5eee5f9fe2ed3d1a)
+
+running 9 tests
+test generated_typescript_pattern_validation_all_backends ... ok
+test pattern_restrictions_preserve_or_groups_and_inherited_and_steps ... ok
+test gregorian_primitives_emit_validated_types_across_targets ... ok
+test generated_python_pattern_validation ... ok
+test generated_go_pattern_validation_and_xml_roundtrip ... ok
+test generated_java_pattern_validation_and_direct_codecs ... ok
+test generated_cpp_pattern_validation ... ok
+test generated_csharp_pattern_validation ... ok
+test generated_rust_pattern_validation_and_xml_roundtrip ... ok
+
+test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 24.63s
+
+ Running tests/test_python_codegen.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/test_python_codegen-cc734e908fb39fb6)
+
+running 16 tests
+test test_identifier_sanitization ... ok
+test multiline_xsd_documentation_stays_inside_python_comments ... ok
+test test_python_any_attribute_codegen ... ok
+test test_python_abstract_meta_emission ... ok
+test test_python_any_element_codegen ... ok
+test test_python_codecs_generation ... ok
+test test_python_choice_union_codegen ... ok
+test test_python_aot_codegen ... ok
+test test_python_dataclass_codegen ... ok
+test test_python_generated_tag_and_custom_header ... ok
+test test_python_pydantic_codegen_with_facets ... ok
+test test_python_recursive_type_codegen ... ok
+test test_python_derived_meta_inheritance ... ok
+test test_python_simplecontent_default_factory ... ok
+test test_python_sequence_nested_inside_choice_codegen ... ok
+test quoted_docstrings_preserve_text_and_remain_valid_python ... ok
+
+test result: ok. 16 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
+
+ Running tests/test_qualified_attributes.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/test_qualified_attributes-f8397a31cf1ecf15)
+
+running 5 tests
+test global_attribute_references_round_trip_by_namespace ... ok
+test imported_inline_global_attribute_enum_round_trips ... ok
+test derived_validators_preserve_base_constraints ... ok
+test inherited_attribute_and_distinct_element_keep_separate_property_names ... ok
+test lexical_dependencies_compile_and_round_trip_without_implicit_imports ... ok
+
+test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 8.31s
+
+ Running tests/test_runtime_fast_paths.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/test_runtime_fast_paths-7bf9091b7252b7db)
+
+running 6 tests
+test repeated_lexical_lists_keep_whitespace_validation ... ok
+test lexical_list_formatting_preserves_escaping_empty_lists_and_long_numbers ... ok
+test repeated_nested_records_validate_their_own_lexical_lists ... ok
+test indexed_scalar_state_preserves_enum_pattern_and_split_text ... ok
+test cached_patterns_keep_raw_restriction_and_trimmed_pattern_semantics ... ok
+test unified_scalar_state_keeps_mixed_branch_order_nil_and_nested_frames ... ok
+
+test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
+
+ Running tests/test_rust_codecs.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/test_rust_codecs-9692e165bd5e14bf)
+
+running 4 tests
+test test_facet_validation_min_max_length ... ok
+test test_empty_element_codec ... ok
+test test_recursive_boxing_roundtrip ... ok
+test test_order_choice_roundtrip ... ok
+
+test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
+
+ Running tests/test_rust_codegen.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/test_rust_codegen-8bce8b4b67c7eca3)
+
+running 26 tests
+test test_rust_attribute_codec_loop_syntax ... ok
+test multiline_docs_and_raw_field_names_are_valid_source ... ok
+test test_rust_enum_and_methods ... ok
+test test_rust_digit_prefixed_module_sanitization ... ok
+test test_rust_choice_union_codegen ... ok
+test test_rust_identifier_sanitization ... ok
+test test_rust_codecs_codegen ... ok
+test test_rust_extension_base_cycle_cut ... ok
+test test_rust_phf_dispatch_uniquifies_like_field_metas ... ok
+test test_rust_phf_dispatch_union_groups_branch_tags ... ok
+test test_rust_extension_inlines_base_fields ... ok
+test test_rust_owned_codegen ... ok
+test test_rust_extension_codecs_decode_and_encode_base_fields ... ok
+test test_rust_recursive_cycle_boxing ... ok
+test test_rust_rkyv_derives ... ok
+test test_rust_simple_type_cycle_resilience ... ok
+test test_rust_topological_scc_chunking ... ok
+test test_rust_zero_copy_codegen ... ok
+test test_rust_phf_dispatch_emission ... ok
+test test_rust_simple_content_extension_shadow_rule ... ok
+test test_rust_simple_content_text_codec ... ok
+test test_rust_read_element_text_accumulates_refs_and_cdata ... ok
+test duplicate_wire_names_keep_distinct_json_values ... ok
+test binary_lexical_values_compile_and_round_trip_in_owned_and_borrowed_modes ... ok
+test empty_modules_compile_without_unused_reexports ... ok
+test named_choice_wrappers_round_trip_without_unreachable_dispatch ... ok
+
+test result: ok. 26 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 59.80s
+
+ Running tests/test_schema_attribute_entities.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/test_schema_attribute_entities-ce76904e09cb1816)
+
+running 4 tests
+test malformed_attributes_and_undefined_entities_are_errors_even_in_skipped_content ... ok
+test literal_attribute_whitespace_is_normalized_but_character_references_survive ... ok
+test namespace_and_qname_attributes_are_normalized_consistently ... ok
+test attribute_entities_reach_enum_facets_and_defaults_in_value_space ... ok
+
+test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
+
+ Running tests/test_schema_audit.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/test_schema_audit-24992dfb5b4a626c)
+
+running 13 tests
+test derived_simple_type_inherits_base_patterns ... ok
+test distinct_values_with_colliding_variant_names_stay_unique ... ok
+test duplicate_enumeration_values_are_deduped ... ok
+test all_languages_disambiguate_flat_collision ... ok
+test quick_xml_serde_skips_unknown_elements ... ok
+test generated_rust_has_no_deny_unknown_fields ... ok
+test named_group_reference_fields_are_parsed ... ok
+test chameleon_include_adopts_including_namespace_per_includer ... ok
+test restricted_simple_types_emit_named_aliases ... ok
+test nested_inline_complex_type_is_extracted_not_leaked ... ok
+test rust_flat_output_has_no_colliding_type_names ... ok
+test simple_content_extension_emits_value_field ... ok
+test diamond_includes_do_not_duplicate_upa_source_documents ... ok
+
+test result: ok. 13 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
+
+ Running tests/test_schema_ir.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/test_schema_ir-f793c1b9895343c7)
+
+running 20 tests
+test global_attribute_reference_uses_declared_type ... ok
+test consumed_particles_do_not_swallow_following_declarations ... ok
+test test_language_context_adapter ... ok
+test inline_list_item_types_preserve_enum_and_union_declarations ... ok
+test test_list_fields_do_not_trigger_spurious_cycles ... ok
+test derived_complex_type_keeps_base_and_bounded_choice ... ok
+test schema_errors_preserve_forward_imports_and_annotation_payloads ... ok
+test missing_included_schema_is_an_error ... ok
+test consumed_child_subtrees_do_not_swallow_following_types ... ok
+test test_tarjan_mutual_recursive_cycle_detection_and_boxing ... ok
+test test_tarjan_self_recursive_cycle_detection_and_boxing ... ok
+test test_parse_lexical_union_member_types_and_inline_members ... ok
+test test_substitution_groups ... ok
+test schema_for_schemas_declared_types_are_not_unknown_builtins ... ok
+test test_minijinja_template_engine_and_filters ... ok
+test xml_prefix_is_available_without_explicit_declaration ... ok
+test test_parse_complex_type_and_facets ... ok
+test imported_inline_global_attribute_types_are_resolved ... ok
+test test_sequence_nested_inside_choice_preserved_in_ir ... ok
+test test_parse_choice_as_union ... ok
+
+test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
+
+ Running tests/test_security.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/test_security-c3afa670f1d6c619)
+
+running 6 tests
+test test_cdata_section_handling ... ok
+test test_malformed_unclosed_cdata_rejection ... ok
+test test_xml_entity_roundtrip_escaping ... ok
+test test_numeric_character_references ... ok
+test unsupported_general_entities_are_rejected ... ok
+test test_max_depth_recursion_limit ... ok
+
+test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
+
+ Running tests/test_temporal_union.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/test_temporal_union-e25d1f9b83e2fdc4)
+
+running 2 tests
+test go_temporal_union_preserves_branches_and_lexicals ... ok
+test csharp_temporal_union_preserves_branches_and_lexicals ... ok
+
+test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.07s
+
+ Running tests/test_transcoder.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/test_transcoder-6854114408316a2e)
+
+running 6 tests
+test test_schemaless_pretty_transcoding ... ok
+test test_schemaless_preserves_refs_cdata_and_attr_entities ... ok
+test test_transcoder_errors ... ok
+test test_schemaless_xml_to_json_and_back ... ok
+test test_schema_directed_transcoding ... ok
+test test_schema_from_ir_transcoding ... ok
+
+test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
+
+ Running tests/test_ts_codegen.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/test_ts_codegen-4e67290c9758f4d9)
+
+running 9 tests
+test test_ts_backend_from_str_loose ... ok
+test test_ts_identifier_sanitization ... ok
+test test_ts_recursive_cycle_zod_lazy ... ok
+test test_ts_discriminated_union_choice ... ok
+test test_ts_interface_and_enum_codegen ... ok
+test test_ts_typebox_schema_generation ... ok
+test test_ts_valibot_schema_generation ... ok
+test test_ts_zod_schema_generation ... ok
+test mixed_content_inheritance_compiles_with_widened_items ... ok
+
+test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.31s
+
+ Running tests/test_ubl_csharp.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/test_ubl_csharp-b04bc8d2d5f891c2)
+
+running 2 tests
+test unprefixed_xsd_builtin_simple_content_base_uses_default_namespace ... ok
+test multi_namespace_roots_and_inherited_simple_content_compile_and_round_trip ... ok
+
+test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.07s
+
+ Running tests/test_unbounded_choice.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/test_unbounded_choice-7672e62aa5ecca1a)
+
+running 1 test
+go: creating new go.mod: module testmod
+go: to add module requirements and sums:
+ go mod tidy
+=== RUN TestUnboundedChoiceOrder
+--- PASS: TestUnboundedChoiceOrder (0.00s)
+PASS
+ok testmod 0.002s
+test test_unbounded_choice_ir_and_all_targets ... ok
+
+test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.15s
+
+ Running tests/test_upa.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/test_upa-a20019d257c7eac5)
+
+running 6 tests
+test local_form_and_in_scope_qnames_distinguish_namespaces ... ok
+test model_groups_derivation_and_substitution_members_are_checked ... ok
+test imported_groups_and_chameleon_wildcards_keep_source_namespaces ... ok
+test all_groups_and_wildcard_namespaces_are_checked ... ok
+test optional_siblings_and_choice_lookahead_violate_upa ... ok
+test occurrence_ranges_keep_particle_identity_and_count_boundaries ... ok
+
+test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
+
+ Running tests/test_value_constraints.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/test_value_constraints-73eb81a96de588c1)
+
+running 2 tests
+test fixed_constraints_cover_input_and_output_in_value_space ... ok
+test repeated_particle_cardinality_belongs_to_the_group ... ok
+
+test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
+
+ Running tests/test_xsi_type.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/test_xsi_type-2c07a0776bd0ec60)
+
+running 11 tests
+test abstract_type_without_derivations_errors ... ok
+test plain_type_attribute_is_not_mistaken_for_dispatch ... ok
+test abstract_type_requires_concrete_selector ... ok
+test from_ir_flattens_base_fields_and_registers_variants ... ok
+test nil_abstract_complex_type_skips_concrete_dispatch ... ok
+test iterparse_dispatches_each_streamed_item ... ok
+test xsi_type_resolves_namespace_inherited_from_parent ... ok
+test unknown_xsi_type_on_abstract_type_errors ... ok
+test root_xsi_type_dispatch_including_empty_element ... ok
+test nested_xsi_type_dispatch_and_round_trip ... ok
+test variant_serialization_requires_namespaces ... ok
+
+test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
+
+ Running unittests src/lib.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/polyxml-4ccc220bbd6a27a0)
+
+running 2 tests
+test tests::test_c_abi_nested_list_batch_roundtrip ... ok
+test tests::test_c_abi_namespaced_roundtrip ... ok
+
+test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
+
+ Running unittests src/lib.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/polyxml_cli-dabf613ae4318f1b)
+
+running 0 tests
+
+test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
+
+ Running unittests src/main.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/polyxml-cec02944de7101b9)
+
+running 0 tests
+
+test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
+
+ Running tests/test_cli.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/test_cli-714ccf0c30d96734)
+
+running 47 tests
+test fish_completion_filters_values_when_available ... ok
+Loading manifest: /tmp/.tmpoNUbH1/polyxml.toml
+Compiling schema: /tmp/.tmpoNUbH1/model.xsd
+test manifest_generation_does_not_ignore_cli_overrides ... ok
+ Namespace: urn:app
+ Types: 1 total (1 structs, 0 enums, 0 unions, 0 simple restrictions)
+ Root elements: 0
+Emitting target [csharp] into /tmp/.tmpoNUbH1/cs
+Parsing schema: /tmp/.tmpiAx8Ek/customer.xsd
+Emitting target [ts] into /tmp/.tmpoNUbH1/ts
+Emitting target [go] into /tmp/.tmpoNUbH1/go
+Emitting target [rust] into /tmp/.tmpoNUbH1/rs
+Build finished successfully.
+ Namespace: urn:crm
+ Types: 1 total (1 structs, 0 enums, 0 unions, 0 simple restrictions)
+ Root elements: 0
+Code generation complete.
+test test_cli_build_polyxml_manifest_with_new_features ... ok
+test test_cli_csharp_source_gen_and_record_struct ... ok
+test test_cli_cpp_modules_and_glaze ... ok
+test test_cli_generate_dry_run ... ok
+test test_cli_generate_custom_header_and_generated_tags ... ok
+test jackson3_cli_and_manifest_emit_equivalent_models ... ok
+test python_features_respect_manifest_false_values_and_backend ... ok
+test test_cli_generate_multi_lang ... ok
+test imported_substitution_helpers_do_not_require_spurious_module_owners ... ok
+test test_cli_generate_help ... ok
+Parsing schema: /tmp/.tmpSaODqQ/service.xsd
+ Namespace: urn:service
+ Types: 1 total (1 structs, 0 enums, 0 unions, 0 simple restrictions)
+ Root elements: 0
+Code generation complete.
+Parsing schema: /tmp/.tmpSaODqQ/service.xsd
+test test_cli_generate_python_backends ... ok
+ Namespace: urn:service
+ Types: 1 total (1 structs, 0 enums, 0 unions, 0 simple restrictions)
+ Root elements: 0
+Code generation complete.
+test test_cli_help ... ok
+test test_cli_go_easyjson_and_sonic_backend ... ok
+Loading manifest: /tmp/.tmpKarvgd/polyxml.toml
+Compiling schema: /tmp/.tmpKarvgd/schema.xsd
+ Types: 1 total (1 structs, 0 enums, 0 unions, 0 simple restrictions)
+ Root elements: 0
+Emitting target [rust] into /tmp/.tmpKarvgd/rs
+test test_cli_generate_rust_zero_copy_and_owned ... ok
+Emitting target [go] into /tmp/.tmpKarvgd/go
+Emitting target [csharp] into /tmp/.tmpKarvgd/cs
+Build finished successfully.
+test retained_imported_ordered_helpers_belong_to_the_unique_namespace_module ... ok
+test test_cli_manifest_custom_header_workspace_and_target_override ... ok
+test test_cli_python_aot_generation ... ok
+Parsing schema: /tmp/.tmp7RSljQ/event.xsd
+ Namespace: urn:events
+ Types: 1 total (1 structs, 0 enums, 0 unions, 0 simple restrictions)
+ Root elements: 0
+Code generation complete.
+test test_cli_rust_phf_feature ... ok
+go: creating new go.mod: module crm
+test completion_candidates_follow_target_validation ... ok
+test test_cli_python_aot_rejects_dataclass_style_and_slots ... ok
+go: to add module requirements and sums:
+ go mod tidy
+test test_cli_multiple_root_element_selection ... ok
+Parsing schema: /tmp/.tmpadBDgK/event.xsd
+test invalid_schema_grammar_and_types_fail_before_generation ... ok
+ Namespace: urn:events
+ Types: 1 total (1 structs, 0 enums, 0 unions, 0 simple restrictions)
+ Root elements: 0
+Code generation complete.
+test test_cli_rust_rkyv_feature ... ok
+Parsing schema: /tmp/.tmppbNjuC/item.xsd
+test test_cli_transcode_bidirectional ... ok
+ Namespace: urn:store
+ Types: 1 total (1 structs, 0 enums, 0 unions, 0 simple restrictions)
+ Root elements: 0
+Code generation complete.
+Parsing schema: /tmp/.tmppbNjuC/item.xsd
+ Namespace: urn:store
+ Types: 1 total (1 structs, 0 enums, 0 unions, 0 simple restrictions)
+ Root elements: 0
+Code generation complete.
+test test_cli_typescript_valibot_and_typebox_backend ... ok
+test test_cli_validate_valid_and_invalid ... ok
+test test_polyxml_toml_manifest_build ... ok
+test bash_completion_filters_values_in_the_shell ... ok
+test unified_help_shows_generation_options ... ok
+test test_cli_root_element_selection ... ok
+test test_root_selection_keeps_imported_module_types ... ok
+test test_java_csharp_model_style_options_and_manifest ... ok
+test validate_and_generate_reject_upa_violations ... ok
+test zsh_completion_filters_values_when_available ... ok
+test unified_manifest_forms_generate_identical_output_and_validate_early ... ok
+test unsupported_xsd_alternatives_fail_explicitly ... ok
+test unified_options_fail_before_schema_io_including_dry_run ... ok
+test unified_supported_backends_and_styles_validate ... ok
+=== RUN TestAccountE2E
+--- PASS: TestAccountE2E (0.00s)
+PASS
+ok crm 0.004s
+test test_cli_go_generation ... ok
+E2E C++20 driver passed!
+test test_cli_cpp_generation ... ok
+test test_cli_java_generation ... ok
+test test_cli_shared_modules_deduplication ... ok
+ Determining projects to restore...
+ Restored /tmp/.tmppl9ein/cli_csharp_app/CrmCliApp.csproj (in 224 ms).
+test test_cli_typescript_generation ... ok
+ CrmCliApp -> /tmp/.tmppl9ein/cli_csharp_app/bin/Debug/net8.0/CrmCliApp.dll
+
+Build succeeded.
+ 0 Warning(s)
+ 0 Error(s)
+
+Time Elapsed 00:00:01.49
+E2E C# CLI test passed successfully!
+test test_cli_csharp_generation ... ok
+test test_cli_rust_split_units_and_chunking ... ok
+
+test result: ok. 47 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 9.62s
+
+ Running unittests src/lib.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/polyxml_js-878a75d7b7901cc9)
+
+running 0 tests
+
+test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
+
+ Running unittests src/lib.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/_polyxml-a668b0910babaf29)
+
+running 0 tests
+
+test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
+
+ Running unittests src/lib.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/polyxml_wasm-d510c7f48918b595)
+
+running 0 tests
+
+test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
+
+ Doc-tests polyxml
+
+running 0 tests
+
+test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
+
+ Doc-tests polyxml_cli
+
+running 0 tests
+
+test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
+
+ Doc-tests polyxml_wasm
+
+running 0 tests
+
+test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
+
+[0;34m==> [4/6] Compiling Python PyO3 extension (maturin develop)...[0m
+๐น Building a mixed python/rust project
+๐ Found CPython 3.14 at /home/bailey/github/polyxml-default-literals/.venv/bin/python
+๐ Found pyo3 bindings with abi3-py3.12 support
+๐ก Using build options features from pyproject.toml
+Using Python 3.14.4 environment at: /home/bailey/github/polyxml-default-literals/.venv
+Checked 6 packages in 34ms
+ Compiling syn v3.0.5
+ Compiling serde_core v1.0.229
+ Compiling serde_derive v1.0.229
+ Compiling serde v1.0.229
+ Compiling pyo3-ffi v0.29.2
+ Compiling syn v2.0.119
+ Compiling fastrand v2.5.0
+ Compiling phf_generator v0.14.0
+ Compiling pyo3-macros-backend v0.29.2
+ Compiling thiserror-impl v2.0.21
+ Compiling minijinja v2.24.0
+ Compiling serde_json v1.0.151
+ Compiling thiserror v2.0.21
+ Compiling pyo3 v0.29.2
+ Compiling pyo3-macros v0.29.2
+ Compiling phf_codegen v0.14.0
+ Compiling quick-xml v0.42.0
+ Compiling polyxml v0.34.6 (/home/bailey/github/polyxml-default-literals/crates/polyxml-core)
+ Compiling polyxml-python v0.34.6 (/home/bailey/github/polyxml-default-literals/crates/polyxml-python)
+ Finished `dev` profile [unoptimized + debuginfo] target(s) in 24.55s
+๐ฆ Built wheel for abi3 Python โฅ 3.12 to /tmp/.tmpp6ZXi1/polyxml-0.34.6-cp312-abi3-linux_x86_64.whl
+โ๏ธ Setting installed package as editable
+๐ Installed polyxml-0.34.6
+[0;34m==> [5/6] Running Python Ruff checks...[0m
+All checks passed!
+10 files already formatted
+[0;34m==> [6/6] Running Python tests with 100% statement & branch coverage...[0m
+[32m.[0m[32m.[0m[32m.[0m[32m.[0m[31mF[0m[31mF[0m[31mF[0m[31mF[0m[31mF[0m[31mF[0m[31mF[0m[31mF[0m[31mF[0m[31mF[0m[31mF[0m[31mF[0m[31mF[0m[31mE[0m[31mE[0m[31mE[0m[31mE[0m[31mE[0m[31mF[0m[31mF[0m[31mF[0m[31mF[0m[31mF[0m[31mF[0m[31mF[0m[31mF[0m[31mF[0m[31mF[0m[31mF[0m[31mF[0m[31mF[0m[31mF[0m[31mF[0m[31mF[0m[31mF[0m[31mF[0m[31mF[0m[31mF[0m[31mF[0m[31mF[0m[31mF[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[31m [ 64%]
+[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[31m [100%][0m
+==================================== ERRORS ====================================
+[31m[1m____________ ERROR at setup of test_declared_root_models[dataclass] ____________[0m
+
+ [0m[37m@pytest[39;49;00m.fixture(scope=[33m"[39;49;00m[33mmodule[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+ [94mdef[39;49;00m[90m [39;49;00m[92mgenerated_models[39;49;00m():[90m[39;49;00m
+ [90m [39;49;00m[33m"""Generates both Dataclass and Pydantic models from SAMPLE_XSD using polyxml CLI,[39;49;00m
+ [33m verifying ruff and pyright compliance."""[39;49;00m[90m[39;49;00m
+> polyxml_bin = _get_polyxml_bin()[90m[39;49;00m
+ ^^^^^^^^^^^^^^^^^^[90m[39;49;00m
+
+[1m[31mtests/test_generated_models.py[0m:295:
+_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
+
+ [0m[94mdef[39;49;00m[90m [39;49;00m[92m_get_polyxml_bin[39;49;00m() -> pathlib.Path:[90m[39;49;00m
+ repo_root = pathlib.Path([91m__file__[39;49;00m).parent.parent.parent.parent[90m[39;49;00m
+ exe_name = [33m"[39;49;00m[33mpolyxml.exe[39;49;00m[33m"[39;49;00m [94mif[39;49;00m sys.platform == [33m"[39;49;00m[33mwin32[39;49;00m[33m"[39;49;00m [94melse[39;49;00m [33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m[90m[39;49;00m
+ candidates = [[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mdebug[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mrelease[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ ][90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+ which_path = shutil.which(exe_name) [95mor[39;49;00m shutil.which([33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+ [94mif[39;49;00m which_path:[90m[39;49;00m
+ [94mreturn[39;49;00m pathlib.Path(which_path)[90m[39;49;00m
+ [90m[39;49;00m
+ [90m# Attempt on-the-fly compilation via cargo if not found[39;49;00m[90m[39;49;00m
+ subprocess.run([90m[39;49;00m
+ [[33m"[39;49;00m[33mcargo[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mbuild[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33m-p[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mpolyxml-cli[39;49;00m[33m"[39;49;00m],[90m[39;49;00m
+ cwd=repo_root,[90m[39;49;00m
+ check=[94mTrue[39;49;00m,[90m[39;49;00m
+ capture_output=[94mTrue[39;49;00m,[90m[39;49;00m
+ )[90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+> [94mraise[39;49;00m [96mFileNotFoundError[39;49;00m([33mf[39;49;00m[33m"[39;49;00m[33mpolyxml CLI binary could not be found or built at [39;49;00m[33m{[39;49;00mcandidates[33m}[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+[1m[31mE FileNotFoundError: polyxml CLI binary could not be found or built at [PosixPath('/home/bailey/github/polyxml-default-literals/target/debug/polyxml'), PosixPath('/home/bailey/github/polyxml-default-literals/target/release/polyxml')][0m
+
+[1m[31mtests/test_generated_models.py[0m:288: FileNotFoundError
+[31m[1m____________ ERROR at setup of test_declared_root_models[pydantic] _____________[0m
+
+ [0m[37m@pytest[39;49;00m.fixture(scope=[33m"[39;49;00m[33mmodule[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+ [94mdef[39;49;00m[90m [39;49;00m[92mgenerated_models[39;49;00m():[90m[39;49;00m
+ [90m [39;49;00m[33m"""Generates both Dataclass and Pydantic models from SAMPLE_XSD using polyxml CLI,[39;49;00m
+ [33m verifying ruff and pyright compliance."""[39;49;00m[90m[39;49;00m
+> polyxml_bin = _get_polyxml_bin()[90m[39;49;00m
+ ^^^^^^^^^^^^^^^^^^[90m[39;49;00m
+
+[1m[31mtests/test_generated_models.py[0m:295:
+_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
+
+ [0m[94mdef[39;49;00m[90m [39;49;00m[92m_get_polyxml_bin[39;49;00m() -> pathlib.Path:[90m[39;49;00m
+ repo_root = pathlib.Path([91m__file__[39;49;00m).parent.parent.parent.parent[90m[39;49;00m
+ exe_name = [33m"[39;49;00m[33mpolyxml.exe[39;49;00m[33m"[39;49;00m [94mif[39;49;00m sys.platform == [33m"[39;49;00m[33mwin32[39;49;00m[33m"[39;49;00m [94melse[39;49;00m [33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m[90m[39;49;00m
+ candidates = [[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mdebug[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mrelease[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ ][90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+ which_path = shutil.which(exe_name) [95mor[39;49;00m shutil.which([33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+ [94mif[39;49;00m which_path:[90m[39;49;00m
+ [94mreturn[39;49;00m pathlib.Path(which_path)[90m[39;49;00m
+ [90m[39;49;00m
+ [90m# Attempt on-the-fly compilation via cargo if not found[39;49;00m[90m[39;49;00m
+ subprocess.run([90m[39;49;00m
+ [[33m"[39;49;00m[33mcargo[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mbuild[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33m-p[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mpolyxml-cli[39;49;00m[33m"[39;49;00m],[90m[39;49;00m
+ cwd=repo_root,[90m[39;49;00m
+ check=[94mTrue[39;49;00m,[90m[39;49;00m
+ capture_output=[94mTrue[39;49;00m,[90m[39;49;00m
+ )[90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+> [94mraise[39;49;00m [96mFileNotFoundError[39;49;00m([33mf[39;49;00m[33m"[39;49;00m[33mpolyxml CLI binary could not be found or built at [39;49;00m[33m{[39;49;00mcandidates[33m}[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+[1m[31mE FileNotFoundError: polyxml CLI binary could not be found or built at [PosixPath('/home/bailey/github/polyxml-default-literals/target/debug/polyxml'), PosixPath('/home/bailey/github/polyxml-default-literals/target/release/polyxml')][0m
+
+[1m[31mtests/test_generated_models.py[0m:288: FileNotFoundError
+[31m[1m_ ERROR at setup of test_generated_dataclass_deserialization_and_serialization _[0m
+
+ [0m[37m@pytest[39;49;00m.fixture(scope=[33m"[39;49;00m[33mmodule[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+ [94mdef[39;49;00m[90m [39;49;00m[92mgenerated_models[39;49;00m():[90m[39;49;00m
+ [90m [39;49;00m[33m"""Generates both Dataclass and Pydantic models from SAMPLE_XSD using polyxml CLI,[39;49;00m
+ [33m verifying ruff and pyright compliance."""[39;49;00m[90m[39;49;00m
+> polyxml_bin = _get_polyxml_bin()[90m[39;49;00m
+ ^^^^^^^^^^^^^^^^^^[90m[39;49;00m
+
+[1m[31mtests/test_generated_models.py[0m:295:
+_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
+
+ [0m[94mdef[39;49;00m[90m [39;49;00m[92m_get_polyxml_bin[39;49;00m() -> pathlib.Path:[90m[39;49;00m
+ repo_root = pathlib.Path([91m__file__[39;49;00m).parent.parent.parent.parent[90m[39;49;00m
+ exe_name = [33m"[39;49;00m[33mpolyxml.exe[39;49;00m[33m"[39;49;00m [94mif[39;49;00m sys.platform == [33m"[39;49;00m[33mwin32[39;49;00m[33m"[39;49;00m [94melse[39;49;00m [33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m[90m[39;49;00m
+ candidates = [[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mdebug[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mrelease[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ ][90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+ which_path = shutil.which(exe_name) [95mor[39;49;00m shutil.which([33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+ [94mif[39;49;00m which_path:[90m[39;49;00m
+ [94mreturn[39;49;00m pathlib.Path(which_path)[90m[39;49;00m
+ [90m[39;49;00m
+ [90m# Attempt on-the-fly compilation via cargo if not found[39;49;00m[90m[39;49;00m
+ subprocess.run([90m[39;49;00m
+ [[33m"[39;49;00m[33mcargo[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mbuild[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33m-p[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mpolyxml-cli[39;49;00m[33m"[39;49;00m],[90m[39;49;00m
+ cwd=repo_root,[90m[39;49;00m
+ check=[94mTrue[39;49;00m,[90m[39;49;00m
+ capture_output=[94mTrue[39;49;00m,[90m[39;49;00m
+ )[90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+> [94mraise[39;49;00m [96mFileNotFoundError[39;49;00m([33mf[39;49;00m[33m"[39;49;00m[33mpolyxml CLI binary could not be found or built at [39;49;00m[33m{[39;49;00mcandidates[33m}[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+[1m[31mE FileNotFoundError: polyxml CLI binary could not be found or built at [PosixPath('/home/bailey/github/polyxml-default-literals/target/debug/polyxml'), PosixPath('/home/bailey/github/polyxml-default-literals/target/release/polyxml')][0m
+
+[1m[31mtests/test_generated_models.py[0m:288: FileNotFoundError
+[31m[1m_ ERROR at setup of test_generated_pydantic_deserialization_and_serialization __[0m
+
+ [0m[37m@pytest[39;49;00m.fixture(scope=[33m"[39;49;00m[33mmodule[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+ [94mdef[39;49;00m[90m [39;49;00m[92mgenerated_models[39;49;00m():[90m[39;49;00m
+ [90m [39;49;00m[33m"""Generates both Dataclass and Pydantic models from SAMPLE_XSD using polyxml CLI,[39;49;00m
+ [33m verifying ruff and pyright compliance."""[39;49;00m[90m[39;49;00m
+> polyxml_bin = _get_polyxml_bin()[90m[39;49;00m
+ ^^^^^^^^^^^^^^^^^^[90m[39;49;00m
+
+[1m[31mtests/test_generated_models.py[0m:295:
+_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
+
+ [0m[94mdef[39;49;00m[90m [39;49;00m[92m_get_polyxml_bin[39;49;00m() -> pathlib.Path:[90m[39;49;00m
+ repo_root = pathlib.Path([91m__file__[39;49;00m).parent.parent.parent.parent[90m[39;49;00m
+ exe_name = [33m"[39;49;00m[33mpolyxml.exe[39;49;00m[33m"[39;49;00m [94mif[39;49;00m sys.platform == [33m"[39;49;00m[33mwin32[39;49;00m[33m"[39;49;00m [94melse[39;49;00m [33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m[90m[39;49;00m
+ candidates = [[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mdebug[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mrelease[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ ][90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+ which_path = shutil.which(exe_name) [95mor[39;49;00m shutil.which([33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+ [94mif[39;49;00m which_path:[90m[39;49;00m
+ [94mreturn[39;49;00m pathlib.Path(which_path)[90m[39;49;00m
+ [90m[39;49;00m
+ [90m# Attempt on-the-fly compilation via cargo if not found[39;49;00m[90m[39;49;00m
+ subprocess.run([90m[39;49;00m
+ [[33m"[39;49;00m[33mcargo[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mbuild[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33m-p[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mpolyxml-cli[39;49;00m[33m"[39;49;00m],[90m[39;49;00m
+ cwd=repo_root,[90m[39;49;00m
+ check=[94mTrue[39;49;00m,[90m[39;49;00m
+ capture_output=[94mTrue[39;49;00m,[90m[39;49;00m
+ )[90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+> [94mraise[39;49;00m [96mFileNotFoundError[39;49;00m([33mf[39;49;00m[33m"[39;49;00m[33mpolyxml CLI binary could not be found or built at [39;49;00m[33m{[39;49;00mcandidates[33m}[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+[1m[31mE FileNotFoundError: polyxml CLI binary could not be found or built at [PosixPath('/home/bailey/github/polyxml-default-literals/target/debug/polyxml'), PosixPath('/home/bailey/github/polyxml-default-literals/target/release/polyxml')][0m
+
+[1m[31mtests/test_generated_models.py[0m:288: FileNotFoundError
+[31m[1m______________ ERROR at setup of test_generated_dataclass_codecs _______________[0m
+
+ [0m[37m@pytest[39;49;00m.fixture(scope=[33m"[39;49;00m[33mmodule[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+ [94mdef[39;49;00m[90m [39;49;00m[92mgenerated_models[39;49;00m():[90m[39;49;00m
+ [90m [39;49;00m[33m"""Generates both Dataclass and Pydantic models from SAMPLE_XSD using polyxml CLI,[39;49;00m
+ [33m verifying ruff and pyright compliance."""[39;49;00m[90m[39;49;00m
+> polyxml_bin = _get_polyxml_bin()[90m[39;49;00m
+ ^^^^^^^^^^^^^^^^^^[90m[39;49;00m
+
+[1m[31mtests/test_generated_models.py[0m:295:
+_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
+
+ [0m[94mdef[39;49;00m[90m [39;49;00m[92m_get_polyxml_bin[39;49;00m() -> pathlib.Path:[90m[39;49;00m
+ repo_root = pathlib.Path([91m__file__[39;49;00m).parent.parent.parent.parent[90m[39;49;00m
+ exe_name = [33m"[39;49;00m[33mpolyxml.exe[39;49;00m[33m"[39;49;00m [94mif[39;49;00m sys.platform == [33m"[39;49;00m[33mwin32[39;49;00m[33m"[39;49;00m [94melse[39;49;00m [33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m[90m[39;49;00m
+ candidates = [[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mdebug[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mrelease[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ ][90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+ which_path = shutil.which(exe_name) [95mor[39;49;00m shutil.which([33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+ [94mif[39;49;00m which_path:[90m[39;49;00m
+ [94mreturn[39;49;00m pathlib.Path(which_path)[90m[39;49;00m
+ [90m[39;49;00m
+ [90m# Attempt on-the-fly compilation via cargo if not found[39;49;00m[90m[39;49;00m
+ subprocess.run([90m[39;49;00m
+ [[33m"[39;49;00m[33mcargo[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mbuild[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33m-p[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mpolyxml-cli[39;49;00m[33m"[39;49;00m],[90m[39;49;00m
+ cwd=repo_root,[90m[39;49;00m
+ check=[94mTrue[39;49;00m,[90m[39;49;00m
+ capture_output=[94mTrue[39;49;00m,[90m[39;49;00m
+ )[90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+> [94mraise[39;49;00m [96mFileNotFoundError[39;49;00m([33mf[39;49;00m[33m"[39;49;00m[33mpolyxml CLI binary could not be found or built at [39;49;00m[33m{[39;49;00mcandidates[33m}[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+[1m[31mE FileNotFoundError: polyxml CLI binary could not be found or built at [PosixPath('/home/bailey/github/polyxml-default-literals/target/debug/polyxml'), PosixPath('/home/bailey/github/polyxml-default-literals/target/release/polyxml')][0m
+
+[1m[31mtests/test_generated_models.py[0m:288: FileNotFoundError
+=================================== FAILURES ===================================
+[31m[1m______ test_generated_abstract_root_preserves_derived_payload[dataclass] _______[0m
+
+tmp_path = PosixPath('/tmp/pytest-of-bailey/pytest-14/test_generated_abstract_root_p0')
+backend = 'dataclass'
+
+ [0m[37m@pytest[39;49;00m.mark.parametrize([33m"[39;49;00m[33mbackend[39;49;00m[33m"[39;49;00m, [[33m"[39;49;00m[33mdataclass[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mpydantic[39;49;00m[33m"[39;49;00m])[90m[39;49;00m
+ [94mdef[39;49;00m[90m [39;49;00m[92mtest_generated_abstract_root_preserves_derived_payload[39;49;00m(tmp_path, backend):[90m[39;49;00m
+ schema = ([90m[39;49;00m
+ pathlib.Path([91m__file__[39;49;00m).resolve().parents[[94m3[39;49;00m][90m[39;49;00m
+ / [33m"[39;49;00m[33mresearch/fixtures/wave6/abstract_derived_xsi.xsd[39;49;00m[33m"[39;49;00m[90m[39;49;00m
+ )[90m[39;49;00m
+ subprocess.run([90m[39;49;00m
+ [[90m[39;49;00m
+> [96mstr[39;49;00m(_get_polyxml_bin()),[90m[39;49;00m
+ ^^^^^^^^^^^^^^^^^^[90m[39;49;00m
+ [33m"[39;49;00m[33mgenerate[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [96mstr[39;49;00m(schema),[90m[39;49;00m
+ [33m"[39;49;00m[33m--lang[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mpython[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33m--backend[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ backend,[90m[39;49;00m
+ [33m"[39;49;00m[33m--out[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [96mstr[39;49;00m(tmp_path),[90m[39;49;00m
+ ],[90m[39;49;00m
+ check=[94mTrue[39;49;00m,[90m[39;49;00m
+ capture_output=[94mTrue[39;49;00m,[90m[39;49;00m
+ )[90m[39;49;00m
+
+[1m[31mtests/test_generated_models.py[0m:23:
+_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
+
+ [0m[94mdef[39;49;00m[90m [39;49;00m[92m_get_polyxml_bin[39;49;00m() -> pathlib.Path:[90m[39;49;00m
+ repo_root = pathlib.Path([91m__file__[39;49;00m).parent.parent.parent.parent[90m[39;49;00m
+ exe_name = [33m"[39;49;00m[33mpolyxml.exe[39;49;00m[33m"[39;49;00m [94mif[39;49;00m sys.platform == [33m"[39;49;00m[33mwin32[39;49;00m[33m"[39;49;00m [94melse[39;49;00m [33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m[90m[39;49;00m
+ candidates = [[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mdebug[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mrelease[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ ][90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+ which_path = shutil.which(exe_name) [95mor[39;49;00m shutil.which([33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+ [94mif[39;49;00m which_path:[90m[39;49;00m
+ [94mreturn[39;49;00m pathlib.Path(which_path)[90m[39;49;00m
+ [90m[39;49;00m
+ [90m# Attempt on-the-fly compilation via cargo if not found[39;49;00m[90m[39;49;00m
+ subprocess.run([90m[39;49;00m
+ [[33m"[39;49;00m[33mcargo[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mbuild[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33m-p[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mpolyxml-cli[39;49;00m[33m"[39;49;00m],[90m[39;49;00m
+ cwd=repo_root,[90m[39;49;00m
+ check=[94mTrue[39;49;00m,[90m[39;49;00m
+ capture_output=[94mTrue[39;49;00m,[90m[39;49;00m
+ )[90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+> [94mraise[39;49;00m [96mFileNotFoundError[39;49;00m([33mf[39;49;00m[33m"[39;49;00m[33mpolyxml CLI binary could not be found or built at [39;49;00m[33m{[39;49;00mcandidates[33m}[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+[1m[31mE FileNotFoundError: polyxml CLI binary could not be found or built at [PosixPath('/home/bailey/github/polyxml-default-literals/target/debug/polyxml'), PosixPath('/home/bailey/github/polyxml-default-literals/target/release/polyxml')][0m
+
+[1m[31mtests/test_generated_models.py[0m:288: FileNotFoundError
+[31m[1m_______ test_generated_abstract_root_preserves_derived_payload[pydantic] _______[0m
+
+tmp_path = PosixPath('/tmp/pytest-of-bailey/pytest-14/test_generated_abstract_root_p1')
+backend = 'pydantic'
+
+ [0m[37m@pytest[39;49;00m.mark.parametrize([33m"[39;49;00m[33mbackend[39;49;00m[33m"[39;49;00m, [[33m"[39;49;00m[33mdataclass[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mpydantic[39;49;00m[33m"[39;49;00m])[90m[39;49;00m
+ [94mdef[39;49;00m[90m [39;49;00m[92mtest_generated_abstract_root_preserves_derived_payload[39;49;00m(tmp_path, backend):[90m[39;49;00m
+ schema = ([90m[39;49;00m
+ pathlib.Path([91m__file__[39;49;00m).resolve().parents[[94m3[39;49;00m][90m[39;49;00m
+ / [33m"[39;49;00m[33mresearch/fixtures/wave6/abstract_derived_xsi.xsd[39;49;00m[33m"[39;49;00m[90m[39;49;00m
+ )[90m[39;49;00m
+ subprocess.run([90m[39;49;00m
+ [[90m[39;49;00m
+> [96mstr[39;49;00m(_get_polyxml_bin()),[90m[39;49;00m
+ ^^^^^^^^^^^^^^^^^^[90m[39;49;00m
+ [33m"[39;49;00m[33mgenerate[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [96mstr[39;49;00m(schema),[90m[39;49;00m
+ [33m"[39;49;00m[33m--lang[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mpython[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33m--backend[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ backend,[90m[39;49;00m
+ [33m"[39;49;00m[33m--out[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [96mstr[39;49;00m(tmp_path),[90m[39;49;00m
+ ],[90m[39;49;00m
+ check=[94mTrue[39;49;00m,[90m[39;49;00m
+ capture_output=[94mTrue[39;49;00m,[90m[39;49;00m
+ )[90m[39;49;00m
+
+[1m[31mtests/test_generated_models.py[0m:23:
+_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
+
+ [0m[94mdef[39;49;00m[90m [39;49;00m[92m_get_polyxml_bin[39;49;00m() -> pathlib.Path:[90m[39;49;00m
+ repo_root = pathlib.Path([91m__file__[39;49;00m).parent.parent.parent.parent[90m[39;49;00m
+ exe_name = [33m"[39;49;00m[33mpolyxml.exe[39;49;00m[33m"[39;49;00m [94mif[39;49;00m sys.platform == [33m"[39;49;00m[33mwin32[39;49;00m[33m"[39;49;00m [94melse[39;49;00m [33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m[90m[39;49;00m
+ candidates = [[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mdebug[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mrelease[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ ][90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+ which_path = shutil.which(exe_name) [95mor[39;49;00m shutil.which([33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+ [94mif[39;49;00m which_path:[90m[39;49;00m
+ [94mreturn[39;49;00m pathlib.Path(which_path)[90m[39;49;00m
+ [90m[39;49;00m
+ [90m# Attempt on-the-fly compilation via cargo if not found[39;49;00m[90m[39;49;00m
+ subprocess.run([90m[39;49;00m
+ [[33m"[39;49;00m[33mcargo[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mbuild[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33m-p[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mpolyxml-cli[39;49;00m[33m"[39;49;00m],[90m[39;49;00m
+ cwd=repo_root,[90m[39;49;00m
+ check=[94mTrue[39;49;00m,[90m[39;49;00m
+ capture_output=[94mTrue[39;49;00m,[90m[39;49;00m
+ )[90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+> [94mraise[39;49;00m [96mFileNotFoundError[39;49;00m([33mf[39;49;00m[33m"[39;49;00m[33mpolyxml CLI binary could not be found or built at [39;49;00m[33m{[39;49;00mcandidates[33m}[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+[1m[31mE FileNotFoundError: polyxml CLI binary could not be found or built at [PosixPath('/home/bailey/github/polyxml-default-literals/target/debug/polyxml'), PosixPath('/home/bailey/github/polyxml-default-literals/target/release/polyxml')][0m
+
+[1m[31mtests/test_generated_models.py[0m:288: FileNotFoundError
+[31m[1m__________ test_roots_with_the_same_local_name_in_distinct_namespaces __________[0m
+
+tmp_path = PosixPath('/tmp/pytest-of-bailey/pytest-14/test_roots_with_the_same_local0')
+
+ [0m[94mdef[39;49;00m[90m [39;49;00m[92mtest_roots_with_the_same_local_name_in_distinct_namespaces[39;49;00m(tmp_path):[90m[39;49;00m
+ base = tmp_path / [33m"[39;49;00m[33mbase.xsd[39;49;00m[33m"[39;49;00m[90m[39;49;00m
+ base.write_text([90m[39;49;00m
+ [33m'[39;49;00m[33m[39;49;00m[33m'[39;49;00m[90m[39;49;00m
+ )[90m[39;49;00m
+ main = tmp_path / [33m"[39;49;00m[33mmain.xsd[39;49;00m[33m"[39;49;00m[90m[39;49;00m
+ main.write_text([90m[39;49;00m
+ [33m'[39;49;00m[33m[39;49;00m[33m'[39;49;00m[90m[39;49;00m
+ )[90m[39;49;00m
+ out = tmp_path / [33m"[39;49;00m[33mmodels[39;49;00m[33m"[39;49;00m[90m[39;49;00m
+ subprocess.run([90m[39;49;00m
+> [[96mstr[39;49;00m(_get_polyxml_bin()), [33m"[39;49;00m[33mgenerate[39;49;00m[33m"[39;49;00m, [96mstr[39;49;00m(main), [33m"[39;49;00m[33m--lang[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mpython[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33m--out[39;49;00m[33m"[39;49;00m, [96mstr[39;49;00m(out)],[90m[39;49;00m
+ ^^^^^^^^^^^^^^^^^^[90m[39;49;00m
+ check=[94mTrue[39;49;00m,[90m[39;49;00m
+ capture_output=[94mTrue[39;49;00m,[90m[39;49;00m
+ )[90m[39;49;00m
+
+[1m[31mtests/test_generated_models.py[0m:64:
+_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
+
+ [0m[94mdef[39;49;00m[90m [39;49;00m[92m_get_polyxml_bin[39;49;00m() -> pathlib.Path:[90m[39;49;00m
+ repo_root = pathlib.Path([91m__file__[39;49;00m).parent.parent.parent.parent[90m[39;49;00m
+ exe_name = [33m"[39;49;00m[33mpolyxml.exe[39;49;00m[33m"[39;49;00m [94mif[39;49;00m sys.platform == [33m"[39;49;00m[33mwin32[39;49;00m[33m"[39;49;00m [94melse[39;49;00m [33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m[90m[39;49;00m
+ candidates = [[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mdebug[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mrelease[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ ][90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+ which_path = shutil.which(exe_name) [95mor[39;49;00m shutil.which([33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+ [94mif[39;49;00m which_path:[90m[39;49;00m
+ [94mreturn[39;49;00m pathlib.Path(which_path)[90m[39;49;00m
+ [90m[39;49;00m
+ [90m# Attempt on-the-fly compilation via cargo if not found[39;49;00m[90m[39;49;00m
+ subprocess.run([90m[39;49;00m
+ [[33m"[39;49;00m[33mcargo[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mbuild[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33m-p[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mpolyxml-cli[39;49;00m[33m"[39;49;00m],[90m[39;49;00m
+ cwd=repo_root,[90m[39;49;00m
+ check=[94mTrue[39;49;00m,[90m[39;49;00m
+ capture_output=[94mTrue[39;49;00m,[90m[39;49;00m
+ )[90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+> [94mraise[39;49;00m [96mFileNotFoundError[39;49;00m([33mf[39;49;00m[33m"[39;49;00m[33mpolyxml CLI binary could not be found or built at [39;49;00m[33m{[39;49;00mcandidates[33m}[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+[1m[31mE FileNotFoundError: polyxml CLI binary could not be found or built at [PosixPath('/home/bailey/github/polyxml-default-literals/target/debug/polyxml'), PosixPath('/home/bailey/github/polyxml-default-literals/target/release/polyxml')][0m
+
+[1m[31mtests/test_generated_models.py[0m:288: FileNotFoundError
+[31m[1m_ test_particle_codec_regressions[nested_sequence_choice.xsd-Root-documents0-dataclass] _[0m
+
+tmp_path = PosixPath('/tmp/pytest-of-bailey/pytest-14/test_particle_codec_regression0')
+backend = 'dataclass', fixture = 'nested_sequence_choice.xsd'
+root_name = 'Root'
+documents = ['AB', 'C']
+
+ [0m[37m@pytest[39;49;00m.mark.parametrize([33m"[39;49;00m[33mbackend[39;49;00m[33m"[39;49;00m, [[33m"[39;49;00m[33mdataclass[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mpydantic[39;49;00m[33m"[39;49;00m])[90m[39;49;00m
+ [37m@pytest[39;49;00m.mark.parametrize([90m[39;49;00m
+ ([33m"[39;49;00m[33mfixture[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mroot_name[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mdocuments[39;49;00m[33m"[39;49;00m),[90m[39;49;00m
+ [[90m[39;49;00m
+ ([90m[39;49;00m
+ [33m"[39;49;00m[33mnested_sequence_choice.xsd[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mRoot[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [[90m[39;49;00m
+ [33m"[39;49;00m[33mAB[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mC[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ ],[90m[39;49;00m
+ ),[90m[39;49;00m
+ ([90m[39;49;00m
+ [33m"[39;49;00m[33mrepeated_sequence.xsd[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mRoot[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [[90m[39;49;00m
+ [33m"[39;49;00m[33mA1B1A2B2[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33m[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ ],[90m[39;49;00m
+ ),[90m[39;49;00m
+ ([90m[39;49;00m
+ [33m"[39;49;00m[33msubstitution_group.xsd[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mPortfolio[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [[90m[39;49;00m
+ [33m"[39;49;00m[33mA1B1A2[39;49;00m[33m"[39;49;00m[90m[39;49;00m
+ ],[90m[39;49;00m
+ ),[90m[39;49;00m
+ ([90m[39;49;00m
+ [33m"[39;49;00m[33mchoice_branch_cardinality.xsd[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mRoot[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [[90m[39;49;00m
+ [33m"[39;49;00m[33mA1A2[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mB[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ ],[90m[39;49;00m
+ ),[90m[39;49;00m
+ ([90m[39;49;00m
+ [33m"[39;49;00m[33mwave6/duplicate_choice_branch_name.xsd[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mPerson[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [[90m[39;49;00m
+ [33m"[39;49;00m[33m1825[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33m25[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33m[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ ],[90m[39;49;00m
+ ),[90m[39;49;00m
+ ],[90m[39;49;00m
+ )[90m[39;49;00m
+ [94mdef[39;49;00m[90m [39;49;00m[92mtest_particle_codec_regressions[39;49;00m(tmp_path, backend, fixture, root_name, documents):[90m[39;49;00m
+ schema = pathlib.Path([91m__file__[39;49;00m).resolve().parents[[94m3[39;49;00m] / [33m"[39;49;00m[33mresearch[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mfixtures[39;49;00m[33m"[39;49;00m / fixture[90m[39;49;00m
+ subprocess.run([90m[39;49;00m
+ [[90m[39;49;00m
+> [96mstr[39;49;00m(_get_polyxml_bin()),[90m[39;49;00m
+ ^^^^^^^^^^^^^^^^^^[90m[39;49;00m
+ [33m"[39;49;00m[33mgenerate[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [96mstr[39;49;00m(schema),[90m[39;49;00m
+ [33m"[39;49;00m[33m--lang[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mpython[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33m--backend[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ backend,[90m[39;49;00m
+ [33m"[39;49;00m[33m--out[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [96mstr[39;49;00m(tmp_path),[90m[39;49;00m
+ ],[90m[39;49;00m
+ check=[94mTrue[39;49;00m,[90m[39;49;00m
+ capture_output=[94mTrue[39;49;00m,[90m[39;49;00m
+ )[90m[39;49;00m
+
+[1m[31mtests/test_generated_models.py[0m:126:
+_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
+
+ [0m[94mdef[39;49;00m[90m [39;49;00m[92m_get_polyxml_bin[39;49;00m() -> pathlib.Path:[90m[39;49;00m
+ repo_root = pathlib.Path([91m__file__[39;49;00m).parent.parent.parent.parent[90m[39;49;00m
+ exe_name = [33m"[39;49;00m[33mpolyxml.exe[39;49;00m[33m"[39;49;00m [94mif[39;49;00m sys.platform == [33m"[39;49;00m[33mwin32[39;49;00m[33m"[39;49;00m [94melse[39;49;00m [33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m[90m[39;49;00m
+ candidates = [[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mdebug[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mrelease[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ ][90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+ which_path = shutil.which(exe_name) [95mor[39;49;00m shutil.which([33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+ [94mif[39;49;00m which_path:[90m[39;49;00m
+ [94mreturn[39;49;00m pathlib.Path(which_path)[90m[39;49;00m
+ [90m[39;49;00m
+ [90m# Attempt on-the-fly compilation via cargo if not found[39;49;00m[90m[39;49;00m
+ subprocess.run([90m[39;49;00m
+ [[33m"[39;49;00m[33mcargo[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mbuild[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33m-p[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mpolyxml-cli[39;49;00m[33m"[39;49;00m],[90m[39;49;00m
+ cwd=repo_root,[90m[39;49;00m
+ check=[94mTrue[39;49;00m,[90m[39;49;00m
+ capture_output=[94mTrue[39;49;00m,[90m[39;49;00m
+ )[90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+> [94mraise[39;49;00m [96mFileNotFoundError[39;49;00m([33mf[39;49;00m[33m"[39;49;00m[33mpolyxml CLI binary could not be found or built at [39;49;00m[33m{[39;49;00mcandidates[33m}[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+[1m[31mE FileNotFoundError: polyxml CLI binary could not be found or built at [PosixPath('/home/bailey/github/polyxml-default-literals/target/debug/polyxml'), PosixPath('/home/bailey/github/polyxml-default-literals/target/release/polyxml')][0m
+
+[1m[31mtests/test_generated_models.py[0m:288: FileNotFoundError
+[31m[1m_ test_particle_codec_regressions[nested_sequence_choice.xsd-Root-documents0-pydantic] _[0m
+
+tmp_path = PosixPath('/tmp/pytest-of-bailey/pytest-14/test_particle_codec_regression1')
+backend = 'pydantic', fixture = 'nested_sequence_choice.xsd', root_name = 'Root'
+documents = ['AB', 'C']
+
+ [0m[37m@pytest[39;49;00m.mark.parametrize([33m"[39;49;00m[33mbackend[39;49;00m[33m"[39;49;00m, [[33m"[39;49;00m[33mdataclass[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mpydantic[39;49;00m[33m"[39;49;00m])[90m[39;49;00m
+ [37m@pytest[39;49;00m.mark.parametrize([90m[39;49;00m
+ ([33m"[39;49;00m[33mfixture[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mroot_name[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mdocuments[39;49;00m[33m"[39;49;00m),[90m[39;49;00m
+ [[90m[39;49;00m
+ ([90m[39;49;00m
+ [33m"[39;49;00m[33mnested_sequence_choice.xsd[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mRoot[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [[90m[39;49;00m
+ [33m"[39;49;00m[33mAB[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mC[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ ],[90m[39;49;00m
+ ),[90m[39;49;00m
+ ([90m[39;49;00m
+ [33m"[39;49;00m[33mrepeated_sequence.xsd[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mRoot[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [[90m[39;49;00m
+ [33m"[39;49;00m[33mA1B1A2B2[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33m[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ ],[90m[39;49;00m
+ ),[90m[39;49;00m
+ ([90m[39;49;00m
+ [33m"[39;49;00m[33msubstitution_group.xsd[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mPortfolio[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [[90m[39;49;00m
+ [33m"[39;49;00m[33mA1B1A2[39;49;00m[33m"[39;49;00m[90m[39;49;00m
+ ],[90m[39;49;00m
+ ),[90m[39;49;00m
+ ([90m[39;49;00m
+ [33m"[39;49;00m[33mchoice_branch_cardinality.xsd[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mRoot[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [[90m[39;49;00m
+ [33m"[39;49;00m[33mA1A2[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mB[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ ],[90m[39;49;00m
+ ),[90m[39;49;00m
+ ([90m[39;49;00m
+ [33m"[39;49;00m[33mwave6/duplicate_choice_branch_name.xsd[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mPerson[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [[90m[39;49;00m
+ [33m"[39;49;00m[33m1825[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33m25[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33m[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ ],[90m[39;49;00m
+ ),[90m[39;49;00m
+ ],[90m[39;49;00m
+ )[90m[39;49;00m
+ [94mdef[39;49;00m[90m [39;49;00m[92mtest_particle_codec_regressions[39;49;00m(tmp_path, backend, fixture, root_name, documents):[90m[39;49;00m
+ schema = pathlib.Path([91m__file__[39;49;00m).resolve().parents[[94m3[39;49;00m] / [33m"[39;49;00m[33mresearch[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mfixtures[39;49;00m[33m"[39;49;00m / fixture[90m[39;49;00m
+ subprocess.run([90m[39;49;00m
+ [[90m[39;49;00m
+> [96mstr[39;49;00m(_get_polyxml_bin()),[90m[39;49;00m
+ ^^^^^^^^^^^^^^^^^^[90m[39;49;00m
+ [33m"[39;49;00m[33mgenerate[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [96mstr[39;49;00m(schema),[90m[39;49;00m
+ [33m"[39;49;00m[33m--lang[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mpython[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33m--backend[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ backend,[90m[39;49;00m
+ [33m"[39;49;00m[33m--out[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [96mstr[39;49;00m(tmp_path),[90m[39;49;00m
+ ],[90m[39;49;00m
+ check=[94mTrue[39;49;00m,[90m[39;49;00m
+ capture_output=[94mTrue[39;49;00m,[90m[39;49;00m
+ )[90m[39;49;00m
+
+[1m[31mtests/test_generated_models.py[0m:126:
+_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
+
+ [0m[94mdef[39;49;00m[90m [39;49;00m[92m_get_polyxml_bin[39;49;00m() -> pathlib.Path:[90m[39;49;00m
+ repo_root = pathlib.Path([91m__file__[39;49;00m).parent.parent.parent.parent[90m[39;49;00m
+ exe_name = [33m"[39;49;00m[33mpolyxml.exe[39;49;00m[33m"[39;49;00m [94mif[39;49;00m sys.platform == [33m"[39;49;00m[33mwin32[39;49;00m[33m"[39;49;00m [94melse[39;49;00m [33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m[90m[39;49;00m
+ candidates = [[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mdebug[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mrelease[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ ][90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+ which_path = shutil.which(exe_name) [95mor[39;49;00m shutil.which([33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+ [94mif[39;49;00m which_path:[90m[39;49;00m
+ [94mreturn[39;49;00m pathlib.Path(which_path)[90m[39;49;00m
+ [90m[39;49;00m
+ [90m# Attempt on-the-fly compilation via cargo if not found[39;49;00m[90m[39;49;00m
+ subprocess.run([90m[39;49;00m
+ [[33m"[39;49;00m[33mcargo[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mbuild[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33m-p[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mpolyxml-cli[39;49;00m[33m"[39;49;00m],[90m[39;49;00m
+ cwd=repo_root,[90m[39;49;00m
+ check=[94mTrue[39;49;00m,[90m[39;49;00m
+ capture_output=[94mTrue[39;49;00m,[90m[39;49;00m
+ )[90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+> [94mraise[39;49;00m [96mFileNotFoundError[39;49;00m([33mf[39;49;00m[33m"[39;49;00m[33mpolyxml CLI binary could not be found or built at [39;49;00m[33m{[39;49;00mcandidates[33m}[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+[1m[31mE FileNotFoundError: polyxml CLI binary could not be found or built at [PosixPath('/home/bailey/github/polyxml-default-literals/target/debug/polyxml'), PosixPath('/home/bailey/github/polyxml-default-literals/target/release/polyxml')][0m
+
+[1m[31mtests/test_generated_models.py[0m:288: FileNotFoundError
+[31m[1m_ test_particle_codec_regressions[repeated_sequence.xsd-Root-documents1-dataclass] _[0m
+
+tmp_path = PosixPath('/tmp/pytest-of-bailey/pytest-14/test_particle_codec_regression2')
+backend = 'dataclass', fixture = 'repeated_sequence.xsd', root_name = 'Root'
+documents = ['A1B1A2B2', '']
+
+ [0m[37m@pytest[39;49;00m.mark.parametrize([33m"[39;49;00m[33mbackend[39;49;00m[33m"[39;49;00m, [[33m"[39;49;00m[33mdataclass[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mpydantic[39;49;00m[33m"[39;49;00m])[90m[39;49;00m
+ [37m@pytest[39;49;00m.mark.parametrize([90m[39;49;00m
+ ([33m"[39;49;00m[33mfixture[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mroot_name[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mdocuments[39;49;00m[33m"[39;49;00m),[90m[39;49;00m
+ [[90m[39;49;00m
+ ([90m[39;49;00m
+ [33m"[39;49;00m[33mnested_sequence_choice.xsd[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mRoot[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [[90m[39;49;00m
+ [33m"[39;49;00m[33mAB[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mC[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ ],[90m[39;49;00m
+ ),[90m[39;49;00m
+ ([90m[39;49;00m
+ [33m"[39;49;00m[33mrepeated_sequence.xsd[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mRoot[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [[90m[39;49;00m
+ [33m"[39;49;00m[33mA1B1A2B2[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33m[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ ],[90m[39;49;00m
+ ),[90m[39;49;00m
+ ([90m[39;49;00m
+ [33m"[39;49;00m[33msubstitution_group.xsd[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mPortfolio[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [[90m[39;49;00m
+ [33m"[39;49;00m[33mA1B1A2[39;49;00m[33m"[39;49;00m[90m[39;49;00m
+ ],[90m[39;49;00m
+ ),[90m[39;49;00m
+ ([90m[39;49;00m
+ [33m"[39;49;00m[33mchoice_branch_cardinality.xsd[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mRoot[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [[90m[39;49;00m
+ [33m"[39;49;00m[33mA1A2[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mB[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ ],[90m[39;49;00m
+ ),[90m[39;49;00m
+ ([90m[39;49;00m
+ [33m"[39;49;00m[33mwave6/duplicate_choice_branch_name.xsd[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mPerson[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [[90m[39;49;00m
+ [33m"[39;49;00m[33m1825[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33m25[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33m[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ ],[90m[39;49;00m
+ ),[90m[39;49;00m
+ ],[90m[39;49;00m
+ )[90m[39;49;00m
+ [94mdef[39;49;00m[90m [39;49;00m[92mtest_particle_codec_regressions[39;49;00m(tmp_path, backend, fixture, root_name, documents):[90m[39;49;00m
+ schema = pathlib.Path([91m__file__[39;49;00m).resolve().parents[[94m3[39;49;00m] / [33m"[39;49;00m[33mresearch[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mfixtures[39;49;00m[33m"[39;49;00m / fixture[90m[39;49;00m
+ subprocess.run([90m[39;49;00m
+ [[90m[39;49;00m
+> [96mstr[39;49;00m(_get_polyxml_bin()),[90m[39;49;00m
+ ^^^^^^^^^^^^^^^^^^[90m[39;49;00m
+ [33m"[39;49;00m[33mgenerate[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [96mstr[39;49;00m(schema),[90m[39;49;00m
+ [33m"[39;49;00m[33m--lang[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mpython[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33m--backend[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ backend,[90m[39;49;00m
+ [33m"[39;49;00m[33m--out[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [96mstr[39;49;00m(tmp_path),[90m[39;49;00m
+ ],[90m[39;49;00m
+ check=[94mTrue[39;49;00m,[90m[39;49;00m
+ capture_output=[94mTrue[39;49;00m,[90m[39;49;00m
+ )[90m[39;49;00m
+
+[1m[31mtests/test_generated_models.py[0m:126:
+_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
+
+ [0m[94mdef[39;49;00m[90m [39;49;00m[92m_get_polyxml_bin[39;49;00m() -> pathlib.Path:[90m[39;49;00m
+ repo_root = pathlib.Path([91m__file__[39;49;00m).parent.parent.parent.parent[90m[39;49;00m
+ exe_name = [33m"[39;49;00m[33mpolyxml.exe[39;49;00m[33m"[39;49;00m [94mif[39;49;00m sys.platform == [33m"[39;49;00m[33mwin32[39;49;00m[33m"[39;49;00m [94melse[39;49;00m [33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m[90m[39;49;00m
+ candidates = [[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mdebug[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mrelease[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ ][90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+ which_path = shutil.which(exe_name) [95mor[39;49;00m shutil.which([33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+ [94mif[39;49;00m which_path:[90m[39;49;00m
+ [94mreturn[39;49;00m pathlib.Path(which_path)[90m[39;49;00m
+ [90m[39;49;00m
+ [90m# Attempt on-the-fly compilation via cargo if not found[39;49;00m[90m[39;49;00m
+ subprocess.run([90m[39;49;00m
+ [[33m"[39;49;00m[33mcargo[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mbuild[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33m-p[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mpolyxml-cli[39;49;00m[33m"[39;49;00m],[90m[39;49;00m
+ cwd=repo_root,[90m[39;49;00m
+ check=[94mTrue[39;49;00m,[90m[39;49;00m
+ capture_output=[94mTrue[39;49;00m,[90m[39;49;00m
+ )[90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+> [94mraise[39;49;00m [96mFileNotFoundError[39;49;00m([33mf[39;49;00m[33m"[39;49;00m[33mpolyxml CLI binary could not be found or built at [39;49;00m[33m{[39;49;00mcandidates[33m}[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+[1m[31mE FileNotFoundError: polyxml CLI binary could not be found or built at [PosixPath('/home/bailey/github/polyxml-default-literals/target/debug/polyxml'), PosixPath('/home/bailey/github/polyxml-default-literals/target/release/polyxml')][0m
+
+[1m[31mtests/test_generated_models.py[0m:288: FileNotFoundError
+[31m[1m_ test_particle_codec_regressions[repeated_sequence.xsd-Root-documents1-pydantic] _[0m
+
+tmp_path = PosixPath('/tmp/pytest-of-bailey/pytest-14/test_particle_codec_regression3')
+backend = 'pydantic', fixture = 'repeated_sequence.xsd', root_name = 'Root'
+documents = ['A1B1A2B2', '']
+
+ [0m[37m@pytest[39;49;00m.mark.parametrize([33m"[39;49;00m[33mbackend[39;49;00m[33m"[39;49;00m, [[33m"[39;49;00m[33mdataclass[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mpydantic[39;49;00m[33m"[39;49;00m])[90m[39;49;00m
+ [37m@pytest[39;49;00m.mark.parametrize([90m[39;49;00m
+ ([33m"[39;49;00m[33mfixture[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mroot_name[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mdocuments[39;49;00m[33m"[39;49;00m),[90m[39;49;00m
+ [[90m[39;49;00m
+ ([90m[39;49;00m
+ [33m"[39;49;00m[33mnested_sequence_choice.xsd[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mRoot[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [[90m[39;49;00m
+ [33m"[39;49;00m[33mAB[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mC[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ ],[90m[39;49;00m
+ ),[90m[39;49;00m
+ ([90m[39;49;00m
+ [33m"[39;49;00m[33mrepeated_sequence.xsd[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mRoot[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [[90m[39;49;00m
+ [33m"[39;49;00m[33mA1B1A2B2[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33m[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ ],[90m[39;49;00m
+ ),[90m[39;49;00m
+ ([90m[39;49;00m
+ [33m"[39;49;00m[33msubstitution_group.xsd[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mPortfolio[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [[90m[39;49;00m
+ [33m"[39;49;00m[33mA1B1A2[39;49;00m[33m"[39;49;00m[90m[39;49;00m
+ ],[90m[39;49;00m
+ ),[90m[39;49;00m
+ ([90m[39;49;00m
+ [33m"[39;49;00m[33mchoice_branch_cardinality.xsd[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mRoot[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [[90m[39;49;00m
+ [33m"[39;49;00m[33mA1A2[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mB[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ ],[90m[39;49;00m
+ ),[90m[39;49;00m
+ ([90m[39;49;00m
+ [33m"[39;49;00m[33mwave6/duplicate_choice_branch_name.xsd[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mPerson[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [[90m[39;49;00m
+ [33m"[39;49;00m[33m1825[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33m25[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33m[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ ],[90m[39;49;00m
+ ),[90m[39;49;00m
+ ],[90m[39;49;00m
+ )[90m[39;49;00m
+ [94mdef[39;49;00m[90m [39;49;00m[92mtest_particle_codec_regressions[39;49;00m(tmp_path, backend, fixture, root_name, documents):[90m[39;49;00m
+ schema = pathlib.Path([91m__file__[39;49;00m).resolve().parents[[94m3[39;49;00m] / [33m"[39;49;00m[33mresearch[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mfixtures[39;49;00m[33m"[39;49;00m / fixture[90m[39;49;00m
+ subprocess.run([90m[39;49;00m
+ [[90m[39;49;00m
+> [96mstr[39;49;00m(_get_polyxml_bin()),[90m[39;49;00m
+ ^^^^^^^^^^^^^^^^^^[90m[39;49;00m
+ [33m"[39;49;00m[33mgenerate[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [96mstr[39;49;00m(schema),[90m[39;49;00m
+ [33m"[39;49;00m[33m--lang[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mpython[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33m--backend[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ backend,[90m[39;49;00m
+ [33m"[39;49;00m[33m--out[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [96mstr[39;49;00m(tmp_path),[90m[39;49;00m
+ ],[90m[39;49;00m
+ check=[94mTrue[39;49;00m,[90m[39;49;00m
+ capture_output=[94mTrue[39;49;00m,[90m[39;49;00m
+ )[90m[39;49;00m
+
+[1m[31mtests/test_generated_models.py[0m:126:
+_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
+
+ [0m[94mdef[39;49;00m[90m [39;49;00m[92m_get_polyxml_bin[39;49;00m() -> pathlib.Path:[90m[39;49;00m
+ repo_root = pathlib.Path([91m__file__[39;49;00m).parent.parent.parent.parent[90m[39;49;00m
+ exe_name = [33m"[39;49;00m[33mpolyxml.exe[39;49;00m[33m"[39;49;00m [94mif[39;49;00m sys.platform == [33m"[39;49;00m[33mwin32[39;49;00m[33m"[39;49;00m [94melse[39;49;00m [33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m[90m[39;49;00m
+ candidates = [[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mdebug[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mrelease[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ ][90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+ which_path = shutil.which(exe_name) [95mor[39;49;00m shutil.which([33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+ [94mif[39;49;00m which_path:[90m[39;49;00m
+ [94mreturn[39;49;00m pathlib.Path(which_path)[90m[39;49;00m
+ [90m[39;49;00m
+ [90m# Attempt on-the-fly compilation via cargo if not found[39;49;00m[90m[39;49;00m
+ subprocess.run([90m[39;49;00m
+ [[33m"[39;49;00m[33mcargo[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mbuild[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33m-p[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mpolyxml-cli[39;49;00m[33m"[39;49;00m],[90m[39;49;00m
+ cwd=repo_root,[90m[39;49;00m
+ check=[94mTrue[39;49;00m,[90m[39;49;00m
+ capture_output=[94mTrue[39;49;00m,[90m[39;49;00m
+ )[90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+> [94mraise[39;49;00m [96mFileNotFoundError[39;49;00m([33mf[39;49;00m[33m"[39;49;00m[33mpolyxml CLI binary could not be found or built at [39;49;00m[33m{[39;49;00mcandidates[33m}[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+[1m[31mE FileNotFoundError: polyxml CLI binary could not be found or built at [PosixPath('/home/bailey/github/polyxml-default-literals/target/debug/polyxml'), PosixPath('/home/bailey/github/polyxml-default-literals/target/release/polyxml')][0m
+
+[1m[31mtests/test_generated_models.py[0m:288: FileNotFoundError
+[31m[1m_ test_particle_codec_regressions[substitution_group.xsd-Portfolio-documents2-dataclass] _[0m
+
+tmp_path = PosixPath('/tmp/pytest-of-bailey/pytest-14/test_particle_codec_regression4')
+backend = 'dataclass', fixture = 'substitution_group.xsd'
+root_name = 'Portfolio'
+documents = ["A1B1A2"]
+
+ [0m[37m@pytest[39;49;00m.mark.parametrize([33m"[39;49;00m[33mbackend[39;49;00m[33m"[39;49;00m, [[33m"[39;49;00m[33mdataclass[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mpydantic[39;49;00m[33m"[39;49;00m])[90m[39;49;00m
+ [37m@pytest[39;49;00m.mark.parametrize([90m[39;49;00m
+ ([33m"[39;49;00m[33mfixture[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mroot_name[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mdocuments[39;49;00m[33m"[39;49;00m),[90m[39;49;00m
+ [[90m[39;49;00m
+ ([90m[39;49;00m
+ [33m"[39;49;00m[33mnested_sequence_choice.xsd[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mRoot[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [[90m[39;49;00m
+ [33m"[39;49;00m[33mAB[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mC[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ ],[90m[39;49;00m
+ ),[90m[39;49;00m
+ ([90m[39;49;00m
+ [33m"[39;49;00m[33mrepeated_sequence.xsd[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mRoot[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [[90m[39;49;00m
+ [33m"[39;49;00m[33mA1B1A2B2[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33m[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ ],[90m[39;49;00m
+ ),[90m[39;49;00m
+ ([90m[39;49;00m
+ [33m"[39;49;00m[33msubstitution_group.xsd[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mPortfolio[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [[90m[39;49;00m
+ [33m"[39;49;00m[33mA1B1A2[39;49;00m[33m"[39;49;00m[90m[39;49;00m
+ ],[90m[39;49;00m
+ ),[90m[39;49;00m
+ ([90m[39;49;00m
+ [33m"[39;49;00m[33mchoice_branch_cardinality.xsd[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mRoot[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [[90m[39;49;00m
+ [33m"[39;49;00m[33mA1A2[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mB[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ ],[90m[39;49;00m
+ ),[90m[39;49;00m
+ ([90m[39;49;00m
+ [33m"[39;49;00m[33mwave6/duplicate_choice_branch_name.xsd[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mPerson[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [[90m[39;49;00m
+ [33m"[39;49;00m[33m1825[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33m25[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33m[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ ],[90m[39;49;00m
+ ),[90m[39;49;00m
+ ],[90m[39;49;00m
+ )[90m[39;49;00m
+ [94mdef[39;49;00m[90m [39;49;00m[92mtest_particle_codec_regressions[39;49;00m(tmp_path, backend, fixture, root_name, documents):[90m[39;49;00m
+ schema = pathlib.Path([91m__file__[39;49;00m).resolve().parents[[94m3[39;49;00m] / [33m"[39;49;00m[33mresearch[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mfixtures[39;49;00m[33m"[39;49;00m / fixture[90m[39;49;00m
+ subprocess.run([90m[39;49;00m
+ [[90m[39;49;00m
+> [96mstr[39;49;00m(_get_polyxml_bin()),[90m[39;49;00m
+ ^^^^^^^^^^^^^^^^^^[90m[39;49;00m
+ [33m"[39;49;00m[33mgenerate[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [96mstr[39;49;00m(schema),[90m[39;49;00m
+ [33m"[39;49;00m[33m--lang[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mpython[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33m--backend[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ backend,[90m[39;49;00m
+ [33m"[39;49;00m[33m--out[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [96mstr[39;49;00m(tmp_path),[90m[39;49;00m
+ ],[90m[39;49;00m
+ check=[94mTrue[39;49;00m,[90m[39;49;00m
+ capture_output=[94mTrue[39;49;00m,[90m[39;49;00m
+ )[90m[39;49;00m
+
+[1m[31mtests/test_generated_models.py[0m:126:
+_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
+
+ [0m[94mdef[39;49;00m[90m [39;49;00m[92m_get_polyxml_bin[39;49;00m() -> pathlib.Path:[90m[39;49;00m
+ repo_root = pathlib.Path([91m__file__[39;49;00m).parent.parent.parent.parent[90m[39;49;00m
+ exe_name = [33m"[39;49;00m[33mpolyxml.exe[39;49;00m[33m"[39;49;00m [94mif[39;49;00m sys.platform == [33m"[39;49;00m[33mwin32[39;49;00m[33m"[39;49;00m [94melse[39;49;00m [33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m[90m[39;49;00m
+ candidates = [[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mdebug[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mrelease[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ ][90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+ which_path = shutil.which(exe_name) [95mor[39;49;00m shutil.which([33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+ [94mif[39;49;00m which_path:[90m[39;49;00m
+ [94mreturn[39;49;00m pathlib.Path(which_path)[90m[39;49;00m
+ [90m[39;49;00m
+ [90m# Attempt on-the-fly compilation via cargo if not found[39;49;00m[90m[39;49;00m
+ subprocess.run([90m[39;49;00m
+ [[33m"[39;49;00m[33mcargo[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mbuild[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33m-p[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mpolyxml-cli[39;49;00m[33m"[39;49;00m],[90m[39;49;00m
+ cwd=repo_root,[90m[39;49;00m
+ check=[94mTrue[39;49;00m,[90m[39;49;00m
+ capture_output=[94mTrue[39;49;00m,[90m[39;49;00m
+ )[90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+> [94mraise[39;49;00m [96mFileNotFoundError[39;49;00m([33mf[39;49;00m[33m"[39;49;00m[33mpolyxml CLI binary could not be found or built at [39;49;00m[33m{[39;49;00mcandidates[33m}[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+[1m[31mE FileNotFoundError: polyxml CLI binary could not be found or built at [PosixPath('/home/bailey/github/polyxml-default-literals/target/debug/polyxml'), PosixPath('/home/bailey/github/polyxml-default-literals/target/release/polyxml')][0m
+
+[1m[31mtests/test_generated_models.py[0m:288: FileNotFoundError
+[31m[1m_ test_particle_codec_regressions[substitution_group.xsd-Portfolio-documents2-pydantic] _[0m
+
+tmp_path = PosixPath('/tmp/pytest-of-bailey/pytest-14/test_particle_codec_regression5')
+backend = 'pydantic', fixture = 'substitution_group.xsd'
+root_name = 'Portfolio'
+documents = ["A1B1A2"]
+
+ [0m[37m@pytest[39;49;00m.mark.parametrize([33m"[39;49;00m[33mbackend[39;49;00m[33m"[39;49;00m, [[33m"[39;49;00m[33mdataclass[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mpydantic[39;49;00m[33m"[39;49;00m])[90m[39;49;00m
+ [37m@pytest[39;49;00m.mark.parametrize([90m[39;49;00m
+ ([33m"[39;49;00m[33mfixture[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mroot_name[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mdocuments[39;49;00m[33m"[39;49;00m),[90m[39;49;00m
+ [[90m[39;49;00m
+ ([90m[39;49;00m
+ [33m"[39;49;00m[33mnested_sequence_choice.xsd[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mRoot[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [[90m[39;49;00m
+ [33m"[39;49;00m[33mAB[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mC[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ ],[90m[39;49;00m
+ ),[90m[39;49;00m
+ ([90m[39;49;00m
+ [33m"[39;49;00m[33mrepeated_sequence.xsd[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mRoot[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [[90m[39;49;00m
+ [33m"[39;49;00m[33mA1B1A2B2[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33m[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ ],[90m[39;49;00m
+ ),[90m[39;49;00m
+ ([90m[39;49;00m
+ [33m"[39;49;00m[33msubstitution_group.xsd[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mPortfolio[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [[90m[39;49;00m
+ [33m"[39;49;00m[33mA1B1A2[39;49;00m[33m"[39;49;00m[90m[39;49;00m
+ ],[90m[39;49;00m
+ ),[90m[39;49;00m
+ ([90m[39;49;00m
+ [33m"[39;49;00m[33mchoice_branch_cardinality.xsd[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mRoot[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [[90m[39;49;00m
+ [33m"[39;49;00m[33mA1A2[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mB[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ ],[90m[39;49;00m
+ ),[90m[39;49;00m
+ ([90m[39;49;00m
+ [33m"[39;49;00m[33mwave6/duplicate_choice_branch_name.xsd[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mPerson[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [[90m[39;49;00m
+ [33m"[39;49;00m[33m1825[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33m25[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33m[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ ],[90m[39;49;00m
+ ),[90m[39;49;00m
+ ],[90m[39;49;00m
+ )[90m[39;49;00m
+ [94mdef[39;49;00m[90m [39;49;00m[92mtest_particle_codec_regressions[39;49;00m(tmp_path, backend, fixture, root_name, documents):[90m[39;49;00m
+ schema = pathlib.Path([91m__file__[39;49;00m).resolve().parents[[94m3[39;49;00m] / [33m"[39;49;00m[33mresearch[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mfixtures[39;49;00m[33m"[39;49;00m / fixture[90m[39;49;00m
+ subprocess.run([90m[39;49;00m
+ [[90m[39;49;00m
+> [96mstr[39;49;00m(_get_polyxml_bin()),[90m[39;49;00m
+ ^^^^^^^^^^^^^^^^^^[90m[39;49;00m
+ [33m"[39;49;00m[33mgenerate[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [96mstr[39;49;00m(schema),[90m[39;49;00m
+ [33m"[39;49;00m[33m--lang[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mpython[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33m--backend[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ backend,[90m[39;49;00m
+ [33m"[39;49;00m[33m--out[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [96mstr[39;49;00m(tmp_path),[90m[39;49;00m
+ ],[90m[39;49;00m
+ check=[94mTrue[39;49;00m,[90m[39;49;00m
+ capture_output=[94mTrue[39;49;00m,[90m[39;49;00m
+ )[90m[39;49;00m
+
+[1m[31mtests/test_generated_models.py[0m:126:
+_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
+
+ [0m[94mdef[39;49;00m[90m [39;49;00m[92m_get_polyxml_bin[39;49;00m() -> pathlib.Path:[90m[39;49;00m
+ repo_root = pathlib.Path([91m__file__[39;49;00m).parent.parent.parent.parent[90m[39;49;00m
+ exe_name = [33m"[39;49;00m[33mpolyxml.exe[39;49;00m[33m"[39;49;00m [94mif[39;49;00m sys.platform == [33m"[39;49;00m[33mwin32[39;49;00m[33m"[39;49;00m [94melse[39;49;00m [33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m[90m[39;49;00m
+ candidates = [[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mdebug[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mrelease[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ ][90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+ which_path = shutil.which(exe_name) [95mor[39;49;00m shutil.which([33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+ [94mif[39;49;00m which_path:[90m[39;49;00m
+ [94mreturn[39;49;00m pathlib.Path(which_path)[90m[39;49;00m
+ [90m[39;49;00m
+ [90m# Attempt on-the-fly compilation via cargo if not found[39;49;00m[90m[39;49;00m
+ subprocess.run([90m[39;49;00m
+ [[33m"[39;49;00m[33mcargo[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mbuild[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33m-p[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mpolyxml-cli[39;49;00m[33m"[39;49;00m],[90m[39;49;00m
+ cwd=repo_root,[90m[39;49;00m
+ check=[94mTrue[39;49;00m,[90m[39;49;00m
+ capture_output=[94mTrue[39;49;00m,[90m[39;49;00m
+ )[90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+> [94mraise[39;49;00m [96mFileNotFoundError[39;49;00m([33mf[39;49;00m[33m"[39;49;00m[33mpolyxml CLI binary could not be found or built at [39;49;00m[33m{[39;49;00mcandidates[33m}[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+[1m[31mE FileNotFoundError: polyxml CLI binary could not be found or built at [PosixPath('/home/bailey/github/polyxml-default-literals/target/debug/polyxml'), PosixPath('/home/bailey/github/polyxml-default-literals/target/release/polyxml')][0m
+
+[1m[31mtests/test_generated_models.py[0m:288: FileNotFoundError
+[31m[1m_ test_particle_codec_regressions[choice_branch_cardinality.xsd-Root-documents3-dataclass] _[0m
+
+tmp_path = PosixPath('/tmp/pytest-of-bailey/pytest-14/test_particle_codec_regression6')
+backend = 'dataclass', fixture = 'choice_branch_cardinality.xsd'
+root_name = 'Root'
+documents = ['A1A2', 'B']
+
+ [0m[37m@pytest[39;49;00m.mark.parametrize([33m"[39;49;00m[33mbackend[39;49;00m[33m"[39;49;00m, [[33m"[39;49;00m[33mdataclass[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mpydantic[39;49;00m[33m"[39;49;00m])[90m[39;49;00m
+ [37m@pytest[39;49;00m.mark.parametrize([90m[39;49;00m
+ ([33m"[39;49;00m[33mfixture[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mroot_name[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mdocuments[39;49;00m[33m"[39;49;00m),[90m[39;49;00m
+ [[90m[39;49;00m
+ ([90m[39;49;00m
+ [33m"[39;49;00m[33mnested_sequence_choice.xsd[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mRoot[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [[90m[39;49;00m
+ [33m"[39;49;00m[33mAB[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mC[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ ],[90m[39;49;00m
+ ),[90m[39;49;00m
+ ([90m[39;49;00m
+ [33m"[39;49;00m[33mrepeated_sequence.xsd[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mRoot[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [[90m[39;49;00m
+ [33m"[39;49;00m[33mA1B1A2B2[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33m[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ ],[90m[39;49;00m
+ ),[90m[39;49;00m
+ ([90m[39;49;00m
+ [33m"[39;49;00m[33msubstitution_group.xsd[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mPortfolio[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [[90m[39;49;00m
+ [33m"[39;49;00m[33mA1B1A2[39;49;00m[33m"[39;49;00m[90m[39;49;00m
+ ],[90m[39;49;00m
+ ),[90m[39;49;00m
+ ([90m[39;49;00m
+ [33m"[39;49;00m[33mchoice_branch_cardinality.xsd[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mRoot[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [[90m[39;49;00m
+ [33m"[39;49;00m[33mA1A2[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mB[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ ],[90m[39;49;00m
+ ),[90m[39;49;00m
+ ([90m[39;49;00m
+ [33m"[39;49;00m[33mwave6/duplicate_choice_branch_name.xsd[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mPerson[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [[90m[39;49;00m
+ [33m"[39;49;00m[33m1825[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33m25[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33m[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ ],[90m[39;49;00m
+ ),[90m[39;49;00m
+ ],[90m[39;49;00m
+ )[90m[39;49;00m
+ [94mdef[39;49;00m[90m [39;49;00m[92mtest_particle_codec_regressions[39;49;00m(tmp_path, backend, fixture, root_name, documents):[90m[39;49;00m
+ schema = pathlib.Path([91m__file__[39;49;00m).resolve().parents[[94m3[39;49;00m] / [33m"[39;49;00m[33mresearch[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mfixtures[39;49;00m[33m"[39;49;00m / fixture[90m[39;49;00m
+ subprocess.run([90m[39;49;00m
+ [[90m[39;49;00m
+> [96mstr[39;49;00m(_get_polyxml_bin()),[90m[39;49;00m
+ ^^^^^^^^^^^^^^^^^^[90m[39;49;00m
+ [33m"[39;49;00m[33mgenerate[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [96mstr[39;49;00m(schema),[90m[39;49;00m
+ [33m"[39;49;00m[33m--lang[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mpython[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33m--backend[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ backend,[90m[39;49;00m
+ [33m"[39;49;00m[33m--out[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [96mstr[39;49;00m(tmp_path),[90m[39;49;00m
+ ],[90m[39;49;00m
+ check=[94mTrue[39;49;00m,[90m[39;49;00m
+ capture_output=[94mTrue[39;49;00m,[90m[39;49;00m
+ )[90m[39;49;00m
+
+[1m[31mtests/test_generated_models.py[0m:126:
+_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
+
+ [0m[94mdef[39;49;00m[90m [39;49;00m[92m_get_polyxml_bin[39;49;00m() -> pathlib.Path:[90m[39;49;00m
+ repo_root = pathlib.Path([91m__file__[39;49;00m).parent.parent.parent.parent[90m[39;49;00m
+ exe_name = [33m"[39;49;00m[33mpolyxml.exe[39;49;00m[33m"[39;49;00m [94mif[39;49;00m sys.platform == [33m"[39;49;00m[33mwin32[39;49;00m[33m"[39;49;00m [94melse[39;49;00m [33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m[90m[39;49;00m
+ candidates = [[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mdebug[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mrelease[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ ][90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+ which_path = shutil.which(exe_name) [95mor[39;49;00m shutil.which([33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+ [94mif[39;49;00m which_path:[90m[39;49;00m
+ [94mreturn[39;49;00m pathlib.Path(which_path)[90m[39;49;00m
+ [90m[39;49;00m
+ [90m# Attempt on-the-fly compilation via cargo if not found[39;49;00m[90m[39;49;00m
+ subprocess.run([90m[39;49;00m
+ [[33m"[39;49;00m[33mcargo[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mbuild[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33m-p[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mpolyxml-cli[39;49;00m[33m"[39;49;00m],[90m[39;49;00m
+ cwd=repo_root,[90m[39;49;00m
+ check=[94mTrue[39;49;00m,[90m[39;49;00m
+ capture_output=[94mTrue[39;49;00m,[90m[39;49;00m
+ )[90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+> [94mraise[39;49;00m [96mFileNotFoundError[39;49;00m([33mf[39;49;00m[33m"[39;49;00m[33mpolyxml CLI binary could not be found or built at [39;49;00m[33m{[39;49;00mcandidates[33m}[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+[1m[31mE FileNotFoundError: polyxml CLI binary could not be found or built at [PosixPath('/home/bailey/github/polyxml-default-literals/target/debug/polyxml'), PosixPath('/home/bailey/github/polyxml-default-literals/target/release/polyxml')][0m
+
+[1m[31mtests/test_generated_models.py[0m:288: FileNotFoundError
+[31m[1m_ test_particle_codec_regressions[choice_branch_cardinality.xsd-Root-documents3-pydantic] _[0m
+
+tmp_path = PosixPath('/tmp/pytest-of-bailey/pytest-14/test_particle_codec_regression7')
+backend = 'pydantic', fixture = 'choice_branch_cardinality.xsd'
+root_name = 'Root'
+documents = ['A1A2', 'B']
+
+ [0m[37m@pytest[39;49;00m.mark.parametrize([33m"[39;49;00m[33mbackend[39;49;00m[33m"[39;49;00m, [[33m"[39;49;00m[33mdataclass[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mpydantic[39;49;00m[33m"[39;49;00m])[90m[39;49;00m
+ [37m@pytest[39;49;00m.mark.parametrize([90m[39;49;00m
+ ([33m"[39;49;00m[33mfixture[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mroot_name[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mdocuments[39;49;00m[33m"[39;49;00m),[90m[39;49;00m
+ [[90m[39;49;00m
+ ([90m[39;49;00m
+ [33m"[39;49;00m[33mnested_sequence_choice.xsd[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mRoot[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [[90m[39;49;00m
+ [33m"[39;49;00m[33mAB[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mC[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ ],[90m[39;49;00m
+ ),[90m[39;49;00m
+ ([90m[39;49;00m
+ [33m"[39;49;00m[33mrepeated_sequence.xsd[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mRoot[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [[90m[39;49;00m
+ [33m"[39;49;00m[33mA1B1A2B2[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33m[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ ],[90m[39;49;00m
+ ),[90m[39;49;00m
+ ([90m[39;49;00m
+ [33m"[39;49;00m[33msubstitution_group.xsd[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mPortfolio[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [[90m[39;49;00m
+ [33m"[39;49;00m[33mA1B1A2[39;49;00m[33m"[39;49;00m[90m[39;49;00m
+ ],[90m[39;49;00m
+ ),[90m[39;49;00m
+ ([90m[39;49;00m
+ [33m"[39;49;00m[33mchoice_branch_cardinality.xsd[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mRoot[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [[90m[39;49;00m
+ [33m"[39;49;00m[33mA1A2[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mB[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ ],[90m[39;49;00m
+ ),[90m[39;49;00m
+ ([90m[39;49;00m
+ [33m"[39;49;00m[33mwave6/duplicate_choice_branch_name.xsd[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mPerson[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [[90m[39;49;00m
+ [33m"[39;49;00m[33m1825[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33m25[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33m[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ ],[90m[39;49;00m
+ ),[90m[39;49;00m
+ ],[90m[39;49;00m
+ )[90m[39;49;00m
+ [94mdef[39;49;00m[90m [39;49;00m[92mtest_particle_codec_regressions[39;49;00m(tmp_path, backend, fixture, root_name, documents):[90m[39;49;00m
+ schema = pathlib.Path([91m__file__[39;49;00m).resolve().parents[[94m3[39;49;00m] / [33m"[39;49;00m[33mresearch[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mfixtures[39;49;00m[33m"[39;49;00m / fixture[90m[39;49;00m
+ subprocess.run([90m[39;49;00m
+ [[90m[39;49;00m
+> [96mstr[39;49;00m(_get_polyxml_bin()),[90m[39;49;00m
+ ^^^^^^^^^^^^^^^^^^[90m[39;49;00m
+ [33m"[39;49;00m[33mgenerate[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [96mstr[39;49;00m(schema),[90m[39;49;00m
+ [33m"[39;49;00m[33m--lang[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mpython[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33m--backend[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ backend,[90m[39;49;00m
+ [33m"[39;49;00m[33m--out[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [96mstr[39;49;00m(tmp_path),[90m[39;49;00m
+ ],[90m[39;49;00m
+ check=[94mTrue[39;49;00m,[90m[39;49;00m
+ capture_output=[94mTrue[39;49;00m,[90m[39;49;00m
+ )[90m[39;49;00m
+
+[1m[31mtests/test_generated_models.py[0m:126:
+_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
+
+ [0m[94mdef[39;49;00m[90m [39;49;00m[92m_get_polyxml_bin[39;49;00m() -> pathlib.Path:[90m[39;49;00m
+ repo_root = pathlib.Path([91m__file__[39;49;00m).parent.parent.parent.parent[90m[39;49;00m
+ exe_name = [33m"[39;49;00m[33mpolyxml.exe[39;49;00m[33m"[39;49;00m [94mif[39;49;00m sys.platform == [33m"[39;49;00m[33mwin32[39;49;00m[33m"[39;49;00m [94melse[39;49;00m [33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m[90m[39;49;00m
+ candidates = [[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mdebug[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mrelease[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ ][90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+ which_path = shutil.which(exe_name) [95mor[39;49;00m shutil.which([33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+ [94mif[39;49;00m which_path:[90m[39;49;00m
+ [94mreturn[39;49;00m pathlib.Path(which_path)[90m[39;49;00m
+ [90m[39;49;00m
+ [90m# Attempt on-the-fly compilation via cargo if not found[39;49;00m[90m[39;49;00m
+ subprocess.run([90m[39;49;00m
+ [[33m"[39;49;00m[33mcargo[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mbuild[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33m-p[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mpolyxml-cli[39;49;00m[33m"[39;49;00m],[90m[39;49;00m
+ cwd=repo_root,[90m[39;49;00m
+ check=[94mTrue[39;49;00m,[90m[39;49;00m
+ capture_output=[94mTrue[39;49;00m,[90m[39;49;00m
+ )[90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+> [94mraise[39;49;00m [96mFileNotFoundError[39;49;00m([33mf[39;49;00m[33m"[39;49;00m[33mpolyxml CLI binary could not be found or built at [39;49;00m[33m{[39;49;00mcandidates[33m}[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+[1m[31mE FileNotFoundError: polyxml CLI binary could not be found or built at [PosixPath('/home/bailey/github/polyxml-default-literals/target/debug/polyxml'), PosixPath('/home/bailey/github/polyxml-default-literals/target/release/polyxml')][0m
+
+[1m[31mtests/test_generated_models.py[0m:288: FileNotFoundError
+[31m[1m_ test_particle_codec_regressions[wave6/duplicate_choice_branch_name.xsd-Person-documents4-dataclass] _[0m
+
+tmp_path = PosixPath('/tmp/pytest-of-bailey/pytest-14/test_particle_codec_regression8')
+backend = 'dataclass', fixture = 'wave6/duplicate_choice_branch_name.xsd'
+root_name = 'Person'
+documents = ['1825', '25', '']
+
+ [0m[37m@pytest[39;49;00m.mark.parametrize([33m"[39;49;00m[33mbackend[39;49;00m[33m"[39;49;00m, [[33m"[39;49;00m[33mdataclass[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mpydantic[39;49;00m[33m"[39;49;00m])[90m[39;49;00m
+ [37m@pytest[39;49;00m.mark.parametrize([90m[39;49;00m
+ ([33m"[39;49;00m[33mfixture[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mroot_name[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mdocuments[39;49;00m[33m"[39;49;00m),[90m[39;49;00m
+ [[90m[39;49;00m
+ ([90m[39;49;00m
+ [33m"[39;49;00m[33mnested_sequence_choice.xsd[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mRoot[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [[90m[39;49;00m
+ [33m"[39;49;00m[33mAB[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mC[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ ],[90m[39;49;00m
+ ),[90m[39;49;00m
+ ([90m[39;49;00m
+ [33m"[39;49;00m[33mrepeated_sequence.xsd[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mRoot[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [[90m[39;49;00m
+ [33m"[39;49;00m[33mA1B1A2B2[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33m[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ ],[90m[39;49;00m
+ ),[90m[39;49;00m
+ ([90m[39;49;00m
+ [33m"[39;49;00m[33msubstitution_group.xsd[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mPortfolio[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [[90m[39;49;00m
+ [33m"[39;49;00m[33mA1B1A2[39;49;00m[33m"[39;49;00m[90m[39;49;00m
+ ],[90m[39;49;00m
+ ),[90m[39;49;00m
+ ([90m[39;49;00m
+ [33m"[39;49;00m[33mchoice_branch_cardinality.xsd[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mRoot[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [[90m[39;49;00m
+ [33m"[39;49;00m[33mA1A2[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mB[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ ],[90m[39;49;00m
+ ),[90m[39;49;00m
+ ([90m[39;49;00m
+ [33m"[39;49;00m[33mwave6/duplicate_choice_branch_name.xsd[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mPerson[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [[90m[39;49;00m
+ [33m"[39;49;00m[33m1825[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33m25[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33m[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ ],[90m[39;49;00m
+ ),[90m[39;49;00m
+ ],[90m[39;49;00m
+ )[90m[39;49;00m
+ [94mdef[39;49;00m[90m [39;49;00m[92mtest_particle_codec_regressions[39;49;00m(tmp_path, backend, fixture, root_name, documents):[90m[39;49;00m
+ schema = pathlib.Path([91m__file__[39;49;00m).resolve().parents[[94m3[39;49;00m] / [33m"[39;49;00m[33mresearch[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mfixtures[39;49;00m[33m"[39;49;00m / fixture[90m[39;49;00m
+ subprocess.run([90m[39;49;00m
+ [[90m[39;49;00m
+> [96mstr[39;49;00m(_get_polyxml_bin()),[90m[39;49;00m
+ ^^^^^^^^^^^^^^^^^^[90m[39;49;00m
+ [33m"[39;49;00m[33mgenerate[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [96mstr[39;49;00m(schema),[90m[39;49;00m
+ [33m"[39;49;00m[33m--lang[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mpython[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33m--backend[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ backend,[90m[39;49;00m
+ [33m"[39;49;00m[33m--out[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [96mstr[39;49;00m(tmp_path),[90m[39;49;00m
+ ],[90m[39;49;00m
+ check=[94mTrue[39;49;00m,[90m[39;49;00m
+ capture_output=[94mTrue[39;49;00m,[90m[39;49;00m
+ )[90m[39;49;00m
+
+[1m[31mtests/test_generated_models.py[0m:126:
+_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
+
+ [0m[94mdef[39;49;00m[90m [39;49;00m[92m_get_polyxml_bin[39;49;00m() -> pathlib.Path:[90m[39;49;00m
+ repo_root = pathlib.Path([91m__file__[39;49;00m).parent.parent.parent.parent[90m[39;49;00m
+ exe_name = [33m"[39;49;00m[33mpolyxml.exe[39;49;00m[33m"[39;49;00m [94mif[39;49;00m sys.platform == [33m"[39;49;00m[33mwin32[39;49;00m[33m"[39;49;00m [94melse[39;49;00m [33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m[90m[39;49;00m
+ candidates = [[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mdebug[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mrelease[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ ][90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+ which_path = shutil.which(exe_name) [95mor[39;49;00m shutil.which([33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+ [94mif[39;49;00m which_path:[90m[39;49;00m
+ [94mreturn[39;49;00m pathlib.Path(which_path)[90m[39;49;00m
+ [90m[39;49;00m
+ [90m# Attempt on-the-fly compilation via cargo if not found[39;49;00m[90m[39;49;00m
+ subprocess.run([90m[39;49;00m
+ [[33m"[39;49;00m[33mcargo[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mbuild[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33m-p[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mpolyxml-cli[39;49;00m[33m"[39;49;00m],[90m[39;49;00m
+ cwd=repo_root,[90m[39;49;00m
+ check=[94mTrue[39;49;00m,[90m[39;49;00m
+ capture_output=[94mTrue[39;49;00m,[90m[39;49;00m
+ )[90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+> [94mraise[39;49;00m [96mFileNotFoundError[39;49;00m([33mf[39;49;00m[33m"[39;49;00m[33mpolyxml CLI binary could not be found or built at [39;49;00m[33m{[39;49;00mcandidates[33m}[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+[1m[31mE FileNotFoundError: polyxml CLI binary could not be found or built at [PosixPath('/home/bailey/github/polyxml-default-literals/target/debug/polyxml'), PosixPath('/home/bailey/github/polyxml-default-literals/target/release/polyxml')][0m
+
+[1m[31mtests/test_generated_models.py[0m:288: FileNotFoundError
+[31m[1m_ test_particle_codec_regressions[wave6/duplicate_choice_branch_name.xsd-Person-documents4-pydantic] _[0m
+
+tmp_path = PosixPath('/tmp/pytest-of-bailey/pytest-14/test_particle_codec_regression9')
+backend = 'pydantic', fixture = 'wave6/duplicate_choice_branch_name.xsd'
+root_name = 'Person'
+documents = ['1825', '25', '']
+
+ [0m[37m@pytest[39;49;00m.mark.parametrize([33m"[39;49;00m[33mbackend[39;49;00m[33m"[39;49;00m, [[33m"[39;49;00m[33mdataclass[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mpydantic[39;49;00m[33m"[39;49;00m])[90m[39;49;00m
+ [37m@pytest[39;49;00m.mark.parametrize([90m[39;49;00m
+ ([33m"[39;49;00m[33mfixture[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mroot_name[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mdocuments[39;49;00m[33m"[39;49;00m),[90m[39;49;00m
+ [[90m[39;49;00m
+ ([90m[39;49;00m
+ [33m"[39;49;00m[33mnested_sequence_choice.xsd[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mRoot[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [[90m[39;49;00m
+ [33m"[39;49;00m[33mAB[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mC[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ ],[90m[39;49;00m
+ ),[90m[39;49;00m
+ ([90m[39;49;00m
+ [33m"[39;49;00m[33mrepeated_sequence.xsd[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mRoot[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [[90m[39;49;00m
+ [33m"[39;49;00m[33mA1B1A2B2[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33m[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ ],[90m[39;49;00m
+ ),[90m[39;49;00m
+ ([90m[39;49;00m
+ [33m"[39;49;00m[33msubstitution_group.xsd[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mPortfolio[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [[90m[39;49;00m
+ [33m"[39;49;00m[33mA1B1A2[39;49;00m[33m"[39;49;00m[90m[39;49;00m
+ ],[90m[39;49;00m
+ ),[90m[39;49;00m
+ ([90m[39;49;00m
+ [33m"[39;49;00m[33mchoice_branch_cardinality.xsd[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mRoot[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [[90m[39;49;00m
+ [33m"[39;49;00m[33mA1A2[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mB[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ ],[90m[39;49;00m
+ ),[90m[39;49;00m
+ ([90m[39;49;00m
+ [33m"[39;49;00m[33mwave6/duplicate_choice_branch_name.xsd[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mPerson[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [[90m[39;49;00m
+ [33m"[39;49;00m[33m1825[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33m25[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33m[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ ],[90m[39;49;00m
+ ),[90m[39;49;00m
+ ],[90m[39;49;00m
+ )[90m[39;49;00m
+ [94mdef[39;49;00m[90m [39;49;00m[92mtest_particle_codec_regressions[39;49;00m(tmp_path, backend, fixture, root_name, documents):[90m[39;49;00m
+ schema = pathlib.Path([91m__file__[39;49;00m).resolve().parents[[94m3[39;49;00m] / [33m"[39;49;00m[33mresearch[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mfixtures[39;49;00m[33m"[39;49;00m / fixture[90m[39;49;00m
+ subprocess.run([90m[39;49;00m
+ [[90m[39;49;00m
+> [96mstr[39;49;00m(_get_polyxml_bin()),[90m[39;49;00m
+ ^^^^^^^^^^^^^^^^^^[90m[39;49;00m
+ [33m"[39;49;00m[33mgenerate[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [96mstr[39;49;00m(schema),[90m[39;49;00m
+ [33m"[39;49;00m[33m--lang[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mpython[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33m--backend[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ backend,[90m[39;49;00m
+ [33m"[39;49;00m[33m--out[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [96mstr[39;49;00m(tmp_path),[90m[39;49;00m
+ ],[90m[39;49;00m
+ check=[94mTrue[39;49;00m,[90m[39;49;00m
+ capture_output=[94mTrue[39;49;00m,[90m[39;49;00m
+ )[90m[39;49;00m
+
+[1m[31mtests/test_generated_models.py[0m:126:
+_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
+
+ [0m[94mdef[39;49;00m[90m [39;49;00m[92m_get_polyxml_bin[39;49;00m() -> pathlib.Path:[90m[39;49;00m
+ repo_root = pathlib.Path([91m__file__[39;49;00m).parent.parent.parent.parent[90m[39;49;00m
+ exe_name = [33m"[39;49;00m[33mpolyxml.exe[39;49;00m[33m"[39;49;00m [94mif[39;49;00m sys.platform == [33m"[39;49;00m[33mwin32[39;49;00m[33m"[39;49;00m [94melse[39;49;00m [33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m[90m[39;49;00m
+ candidates = [[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mdebug[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mrelease[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ ][90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+ which_path = shutil.which(exe_name) [95mor[39;49;00m shutil.which([33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+ [94mif[39;49;00m which_path:[90m[39;49;00m
+ [94mreturn[39;49;00m pathlib.Path(which_path)[90m[39;49;00m
+ [90m[39;49;00m
+ [90m# Attempt on-the-fly compilation via cargo if not found[39;49;00m[90m[39;49;00m
+ subprocess.run([90m[39;49;00m
+ [[33m"[39;49;00m[33mcargo[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mbuild[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33m-p[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mpolyxml-cli[39;49;00m[33m"[39;49;00m],[90m[39;49;00m
+ cwd=repo_root,[90m[39;49;00m
+ check=[94mTrue[39;49;00m,[90m[39;49;00m
+ capture_output=[94mTrue[39;49;00m,[90m[39;49;00m
+ )[90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+> [94mraise[39;49;00m [96mFileNotFoundError[39;49;00m([33mf[39;49;00m[33m"[39;49;00m[33mpolyxml CLI binary could not be found or built at [39;49;00m[33m{[39;49;00mcandidates[33m}[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+[1m[31mE FileNotFoundError: polyxml CLI binary could not be found or built at [PosixPath('/home/bailey/github/polyxml-default-literals/target/debug/polyxml'), PosixPath('/home/bailey/github/polyxml-default-literals/target/release/polyxml')][0m
+
+[1m[31mtests/test_generated_models.py[0m:288: FileNotFoundError
+[31m[1m__________________________ test_codecs_flag_disabled ___________________________[0m
+
+ [0m[94mdef[39;49;00m[90m [39;49;00m[92mtest_codecs_flag_disabled[39;49;00m():[90m[39;49;00m
+> polyxml_bin = _get_polyxml_bin()[90m[39;49;00m
+ ^^^^^^^^^^^^^^^^^^[90m[39;49;00m
+
+[1m[31mtests/test_generated_models.py[0m:506:
+_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
+
+ [0m[94mdef[39;49;00m[90m [39;49;00m[92m_get_polyxml_bin[39;49;00m() -> pathlib.Path:[90m[39;49;00m
+ repo_root = pathlib.Path([91m__file__[39;49;00m).parent.parent.parent.parent[90m[39;49;00m
+ exe_name = [33m"[39;49;00m[33mpolyxml.exe[39;49;00m[33m"[39;49;00m [94mif[39;49;00m sys.platform == [33m"[39;49;00m[33mwin32[39;49;00m[33m"[39;49;00m [94melse[39;49;00m [33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m[90m[39;49;00m
+ candidates = [[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mdebug[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mrelease[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ ][90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+ which_path = shutil.which(exe_name) [95mor[39;49;00m shutil.which([33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+ [94mif[39;49;00m which_path:[90m[39;49;00m
+ [94mreturn[39;49;00m pathlib.Path(which_path)[90m[39;49;00m
+ [90m[39;49;00m
+ [90m# Attempt on-the-fly compilation via cargo if not found[39;49;00m[90m[39;49;00m
+ subprocess.run([90m[39;49;00m
+ [[33m"[39;49;00m[33mcargo[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mbuild[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33m-p[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mpolyxml-cli[39;49;00m[33m"[39;49;00m],[90m[39;49;00m
+ cwd=repo_root,[90m[39;49;00m
+ check=[94mTrue[39;49;00m,[90m[39;49;00m
+ capture_output=[94mTrue[39;49;00m,[90m[39;49;00m
+ )[90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+> [94mraise[39;49;00m [96mFileNotFoundError[39;49;00m([33mf[39;49;00m[33m"[39;49;00m[33mpolyxml CLI binary could not be found or built at [39;49;00m[33m{[39;49;00mcandidates[33m}[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+[1m[31mE FileNotFoundError: polyxml CLI binary could not be found or built at [PosixPath('/home/bailey/github/polyxml-default-literals/target/debug/polyxml'), PosixPath('/home/bailey/github/polyxml-default-literals/target/release/polyxml')][0m
+
+[1m[31mtests/test_generated_models.py[0m:288: FileNotFoundError
+[31m[1m___________ test_generated_models_reject_general_entities[dataclass] ___________[0m
+
+tmp_path = PosixPath('/tmp/pytest-of-bailey/pytest-14/test_generated_models_reject_g0')
+backend = 'dataclass'
+
+ [0m[37m@pytest[39;49;00m.mark.parametrize([33m"[39;49;00m[33mbackend[39;49;00m[33m"[39;49;00m, [[33m"[39;49;00m[33mdataclass[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mpydantic[39;49;00m[33m"[39;49;00m])[90m[39;49;00m
+ [94mdef[39;49;00m[90m [39;49;00m[92mtest_generated_models_reject_general_entities[39;49;00m(tmp_path, backend):[90m[39;49;00m
+ schema = pathlib.Path([91m__file__[39;49;00m).resolve().parents[[94m3[39;49;00m] / [33m"[39;49;00m[33mresearch/fixtures/wave7/xxe_text.xsd[39;49;00m[33m"[39;49;00m[90m[39;49;00m
+ subprocess.run([90m[39;49;00m
+ [[90m[39;49;00m
+> [96mstr[39;49;00m(_get_polyxml_bin()),[90m[39;49;00m
+ ^^^^^^^^^^^^^^^^^^[90m[39;49;00m
+ [33m"[39;49;00m[33mgenerate[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [96mstr[39;49;00m(schema),[90m[39;49;00m
+ [33m"[39;49;00m[33m--lang[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mpython[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33m--backend[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ backend,[90m[39;49;00m
+ [33m"[39;49;00m[33m--out[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [96mstr[39;49;00m(tmp_path),[90m[39;49;00m
+ ],[90m[39;49;00m
+ check=[94mTrue[39;49;00m,[90m[39;49;00m
+ capture_output=[94mTrue[39;49;00m,[90m[39;49;00m
+ )[90m[39;49;00m
+
+[1m[31mtests/test_generated_models.py[0m:541:
+_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
+
+ [0m[94mdef[39;49;00m[90m [39;49;00m[92m_get_polyxml_bin[39;49;00m() -> pathlib.Path:[90m[39;49;00m
+ repo_root = pathlib.Path([91m__file__[39;49;00m).parent.parent.parent.parent[90m[39;49;00m
+ exe_name = [33m"[39;49;00m[33mpolyxml.exe[39;49;00m[33m"[39;49;00m [94mif[39;49;00m sys.platform == [33m"[39;49;00m[33mwin32[39;49;00m[33m"[39;49;00m [94melse[39;49;00m [33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m[90m[39;49;00m
+ candidates = [[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mdebug[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mrelease[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ ][90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+ which_path = shutil.which(exe_name) [95mor[39;49;00m shutil.which([33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+ [94mif[39;49;00m which_path:[90m[39;49;00m
+ [94mreturn[39;49;00m pathlib.Path(which_path)[90m[39;49;00m
+ [90m[39;49;00m
+ [90m# Attempt on-the-fly compilation via cargo if not found[39;49;00m[90m[39;49;00m
+ subprocess.run([90m[39;49;00m
+ [[33m"[39;49;00m[33mcargo[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mbuild[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33m-p[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mpolyxml-cli[39;49;00m[33m"[39;49;00m],[90m[39;49;00m
+ cwd=repo_root,[90m[39;49;00m
+ check=[94mTrue[39;49;00m,[90m[39;49;00m
+ capture_output=[94mTrue[39;49;00m,[90m[39;49;00m
+ )[90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+> [94mraise[39;49;00m [96mFileNotFoundError[39;49;00m([33mf[39;49;00m[33m"[39;49;00m[33mpolyxml CLI binary could not be found or built at [39;49;00m[33m{[39;49;00mcandidates[33m}[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+[1m[31mE FileNotFoundError: polyxml CLI binary could not be found or built at [PosixPath('/home/bailey/github/polyxml-default-literals/target/debug/polyxml'), PosixPath('/home/bailey/github/polyxml-default-literals/target/release/polyxml')][0m
+
+[1m[31mtests/test_generated_models.py[0m:288: FileNotFoundError
+[31m[1m___________ test_generated_models_reject_general_entities[pydantic] ____________[0m
+
+tmp_path = PosixPath('/tmp/pytest-of-bailey/pytest-14/test_generated_models_reject_g1')
+backend = 'pydantic'
+
+ [0m[37m@pytest[39;49;00m.mark.parametrize([33m"[39;49;00m[33mbackend[39;49;00m[33m"[39;49;00m, [[33m"[39;49;00m[33mdataclass[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mpydantic[39;49;00m[33m"[39;49;00m])[90m[39;49;00m
+ [94mdef[39;49;00m[90m [39;49;00m[92mtest_generated_models_reject_general_entities[39;49;00m(tmp_path, backend):[90m[39;49;00m
+ schema = pathlib.Path([91m__file__[39;49;00m).resolve().parents[[94m3[39;49;00m] / [33m"[39;49;00m[33mresearch/fixtures/wave7/xxe_text.xsd[39;49;00m[33m"[39;49;00m[90m[39;49;00m
+ subprocess.run([90m[39;49;00m
+ [[90m[39;49;00m
+> [96mstr[39;49;00m(_get_polyxml_bin()),[90m[39;49;00m
+ ^^^^^^^^^^^^^^^^^^[90m[39;49;00m
+ [33m"[39;49;00m[33mgenerate[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [96mstr[39;49;00m(schema),[90m[39;49;00m
+ [33m"[39;49;00m[33m--lang[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mpython[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33m--backend[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ backend,[90m[39;49;00m
+ [33m"[39;49;00m[33m--out[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [96mstr[39;49;00m(tmp_path),[90m[39;49;00m
+ ],[90m[39;49;00m
+ check=[94mTrue[39;49;00m,[90m[39;49;00m
+ capture_output=[94mTrue[39;49;00m,[90m[39;49;00m
+ )[90m[39;49;00m
+
+[1m[31mtests/test_generated_models.py[0m:541:
+_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
+
+ [0m[94mdef[39;49;00m[90m [39;49;00m[92m_get_polyxml_bin[39;49;00m() -> pathlib.Path:[90m[39;49;00m
+ repo_root = pathlib.Path([91m__file__[39;49;00m).parent.parent.parent.parent[90m[39;49;00m
+ exe_name = [33m"[39;49;00m[33mpolyxml.exe[39;49;00m[33m"[39;49;00m [94mif[39;49;00m sys.platform == [33m"[39;49;00m[33mwin32[39;49;00m[33m"[39;49;00m [94melse[39;49;00m [33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m[90m[39;49;00m
+ candidates = [[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mdebug[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mrelease[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ ][90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+ which_path = shutil.which(exe_name) [95mor[39;49;00m shutil.which([33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+ [94mif[39;49;00m which_path:[90m[39;49;00m
+ [94mreturn[39;49;00m pathlib.Path(which_path)[90m[39;49;00m
+ [90m[39;49;00m
+ [90m# Attempt on-the-fly compilation via cargo if not found[39;49;00m[90m[39;49;00m
+ subprocess.run([90m[39;49;00m
+ [[33m"[39;49;00m[33mcargo[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mbuild[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33m-p[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mpolyxml-cli[39;49;00m[33m"[39;49;00m],[90m[39;49;00m
+ cwd=repo_root,[90m[39;49;00m
+ check=[94mTrue[39;49;00m,[90m[39;49;00m
+ capture_output=[94mTrue[39;49;00m,[90m[39;49;00m
+ )[90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+> [94mraise[39;49;00m [96mFileNotFoundError[39;49;00m([33mf[39;49;00m[33m"[39;49;00m[33mpolyxml CLI binary could not be found or built at [39;49;00m[33m{[39;49;00mcandidates[33m}[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+[1m[31mE FileNotFoundError: polyxml CLI binary could not be found or built at [PosixPath('/home/bailey/github/polyxml-default-literals/target/debug/polyxml'), PosixPath('/home/bailey/github/polyxml-default-literals/target/release/polyxml')][0m
+
+[1m[31mtests/test_generated_models.py[0m:288: FileNotFoundError
+[31m[1m______________ test_element_defaults_preserve_absence[dataclass] _______________[0m
+
+tmp_path = PosixPath('/tmp/pytest-of-bailey/pytest-14/test_element_defaults_preserve0')
+backend = 'dataclass'
+
+ [0m[37m@pytest[39;49;00m.mark.parametrize([33m"[39;49;00m[33mbackend[39;49;00m[33m"[39;49;00m, [[33m"[39;49;00m[33mdataclass[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mpydantic[39;49;00m[33m"[39;49;00m])[90m[39;49;00m
+ [94mdef[39;49;00m[90m [39;49;00m[92mtest_element_defaults_preserve_absence[39;49;00m(tmp_path, backend):[90m[39;49;00m
+ schema = pathlib.Path([91m__file__[39;49;00m).resolve().parents[[94m3[39;49;00m] / [33m"[39;49;00m[33mresearch/fixtures/element_defaults.xsd[39;49;00m[33m"[39;49;00m[90m[39;49;00m
+ subprocess.run([90m[39;49;00m
+ [[90m[39;49;00m
+> [96mstr[39;49;00m(_get_polyxml_bin()),[90m[39;49;00m
+ ^^^^^^^^^^^^^^^^^^[90m[39;49;00m
+ [33m"[39;49;00m[33mgenerate[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [96mstr[39;49;00m(schema),[90m[39;49;00m
+ [33m"[39;49;00m[33m--lang[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mpython[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33m--backend[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ backend,[90m[39;49;00m
+ [33m"[39;49;00m[33m--out[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [96mstr[39;49;00m(tmp_path),[90m[39;49;00m
+ ],[90m[39;49;00m
+ check=[94mTrue[39;49;00m,[90m[39;49;00m
+ capture_output=[94mTrue[39;49;00m,[90m[39;49;00m
+ )[90m[39;49;00m
+
+[1m[31mtests/test_generated_models.py[0m:575:
+_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
+
+ [0m[94mdef[39;49;00m[90m [39;49;00m[92m_get_polyxml_bin[39;49;00m() -> pathlib.Path:[90m[39;49;00m
+ repo_root = pathlib.Path([91m__file__[39;49;00m).parent.parent.parent.parent[90m[39;49;00m
+ exe_name = [33m"[39;49;00m[33mpolyxml.exe[39;49;00m[33m"[39;49;00m [94mif[39;49;00m sys.platform == [33m"[39;49;00m[33mwin32[39;49;00m[33m"[39;49;00m [94melse[39;49;00m [33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m[90m[39;49;00m
+ candidates = [[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mdebug[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mrelease[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ ][90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+ which_path = shutil.which(exe_name) [95mor[39;49;00m shutil.which([33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+ [94mif[39;49;00m which_path:[90m[39;49;00m
+ [94mreturn[39;49;00m pathlib.Path(which_path)[90m[39;49;00m
+ [90m[39;49;00m
+ [90m# Attempt on-the-fly compilation via cargo if not found[39;49;00m[90m[39;49;00m
+ subprocess.run([90m[39;49;00m
+ [[33m"[39;49;00m[33mcargo[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mbuild[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33m-p[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mpolyxml-cli[39;49;00m[33m"[39;49;00m],[90m[39;49;00m
+ cwd=repo_root,[90m[39;49;00m
+ check=[94mTrue[39;49;00m,[90m[39;49;00m
+ capture_output=[94mTrue[39;49;00m,[90m[39;49;00m
+ )[90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+> [94mraise[39;49;00m [96mFileNotFoundError[39;49;00m([33mf[39;49;00m[33m"[39;49;00m[33mpolyxml CLI binary could not be found or built at [39;49;00m[33m{[39;49;00mcandidates[33m}[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+[1m[31mE FileNotFoundError: polyxml CLI binary could not be found or built at [PosixPath('/home/bailey/github/polyxml-default-literals/target/debug/polyxml'), PosixPath('/home/bailey/github/polyxml-default-literals/target/release/polyxml')][0m
+
+[1m[31mtests/test_generated_models.py[0m:288: FileNotFoundError
+[31m[1m_______________ test_element_defaults_preserve_absence[pydantic] _______________[0m
+
+tmp_path = PosixPath('/tmp/pytest-of-bailey/pytest-14/test_element_defaults_preserve1')
+backend = 'pydantic'
+
+ [0m[37m@pytest[39;49;00m.mark.parametrize([33m"[39;49;00m[33mbackend[39;49;00m[33m"[39;49;00m, [[33m"[39;49;00m[33mdataclass[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mpydantic[39;49;00m[33m"[39;49;00m])[90m[39;49;00m
+ [94mdef[39;49;00m[90m [39;49;00m[92mtest_element_defaults_preserve_absence[39;49;00m(tmp_path, backend):[90m[39;49;00m
+ schema = pathlib.Path([91m__file__[39;49;00m).resolve().parents[[94m3[39;49;00m] / [33m"[39;49;00m[33mresearch/fixtures/element_defaults.xsd[39;49;00m[33m"[39;49;00m[90m[39;49;00m
+ subprocess.run([90m[39;49;00m
+ [[90m[39;49;00m
+> [96mstr[39;49;00m(_get_polyxml_bin()),[90m[39;49;00m
+ ^^^^^^^^^^^^^^^^^^[90m[39;49;00m
+ [33m"[39;49;00m[33mgenerate[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [96mstr[39;49;00m(schema),[90m[39;49;00m
+ [33m"[39;49;00m[33m--lang[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mpython[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33m--backend[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ backend,[90m[39;49;00m
+ [33m"[39;49;00m[33m--out[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [96mstr[39;49;00m(tmp_path),[90m[39;49;00m
+ ],[90m[39;49;00m
+ check=[94mTrue[39;49;00m,[90m[39;49;00m
+ capture_output=[94mTrue[39;49;00m,[90m[39;49;00m
+ )[90m[39;49;00m
+
+[1m[31mtests/test_generated_models.py[0m:575:
+_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
+
+ [0m[94mdef[39;49;00m[90m [39;49;00m[92m_get_polyxml_bin[39;49;00m() -> pathlib.Path:[90m[39;49;00m
+ repo_root = pathlib.Path([91m__file__[39;49;00m).parent.parent.parent.parent[90m[39;49;00m
+ exe_name = [33m"[39;49;00m[33mpolyxml.exe[39;49;00m[33m"[39;49;00m [94mif[39;49;00m sys.platform == [33m"[39;49;00m[33mwin32[39;49;00m[33m"[39;49;00m [94melse[39;49;00m [33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m[90m[39;49;00m
+ candidates = [[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mdebug[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mrelease[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ ][90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+ which_path = shutil.which(exe_name) [95mor[39;49;00m shutil.which([33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+ [94mif[39;49;00m which_path:[90m[39;49;00m
+ [94mreturn[39;49;00m pathlib.Path(which_path)[90m[39;49;00m
+ [90m[39;49;00m
+ [90m# Attempt on-the-fly compilation via cargo if not found[39;49;00m[90m[39;49;00m
+ subprocess.run([90m[39;49;00m
+ [[33m"[39;49;00m[33mcargo[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mbuild[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33m-p[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mpolyxml-cli[39;49;00m[33m"[39;49;00m],[90m[39;49;00m
+ cwd=repo_root,[90m[39;49;00m
+ check=[94mTrue[39;49;00m,[90m[39;49;00m
+ capture_output=[94mTrue[39;49;00m,[90m[39;49;00m
+ )[90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+> [94mraise[39;49;00m [96mFileNotFoundError[39;49;00m([33mf[39;49;00m[33m"[39;49;00m[33mpolyxml CLI binary could not be found or built at [39;49;00m[33m{[39;49;00mcandidates[33m}[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+[1m[31mE FileNotFoundError: polyxml CLI binary could not be found or built at [PosixPath('/home/bailey/github/polyxml-default-literals/target/debug/polyxml'), PosixPath('/home/bailey/github/polyxml-default-literals/target/release/polyxml')][0m
+
+[1m[31mtests/test_generated_models.py[0m:288: FileNotFoundError
+[31m[1m____________ test_fixed_values_validate_input_and_output[dataclass] ____________[0m
+
+tmp_path = PosixPath('/tmp/pytest-of-bailey/pytest-14/test_fixed_values_validate_inp0')
+backend = 'dataclass'
+
+ [0m[37m@pytest[39;49;00m.mark.parametrize([33m"[39;49;00m[33mbackend[39;49;00m[33m"[39;49;00m, [[33m"[39;49;00m[33mdataclass[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mpydantic[39;49;00m[33m"[39;49;00m])[90m[39;49;00m
+ [94mdef[39;49;00m[90m [39;49;00m[92mtest_fixed_values_validate_input_and_output[39;49;00m(tmp_path, backend):[90m[39;49;00m
+ schema = pathlib.Path([91m__file__[39;49;00m).resolve().parents[[94m3[39;49;00m] / [33m"[39;49;00m[33mresearch/fixtures/fixed_values.xsd[39;49;00m[33m"[39;49;00m[90m[39;49;00m
+ subprocess.run([90m[39;49;00m
+ [[90m[39;49;00m
+> [96mstr[39;49;00m(_get_polyxml_bin()),[90m[39;49;00m
+ ^^^^^^^^^^^^^^^^^^[90m[39;49;00m
+ [33m"[39;49;00m[33mgenerate[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [96mstr[39;49;00m(schema),[90m[39;49;00m
+ [33m"[39;49;00m[33m--lang[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mpython[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33m--backend[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ backend,[90m[39;49;00m
+ [33m"[39;49;00m[33m--out[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [96mstr[39;49;00m(tmp_path),[90m[39;49;00m
+ ],[90m[39;49;00m
+ check=[94mTrue[39;49;00m,[90m[39;49;00m
+ capture_output=[94mTrue[39;49;00m,[90m[39;49;00m
+ )[90m[39;49;00m
+
+[1m[31mtests/test_generated_models.py[0m:608:
+_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
+
+ [0m[94mdef[39;49;00m[90m [39;49;00m[92m_get_polyxml_bin[39;49;00m() -> pathlib.Path:[90m[39;49;00m
+ repo_root = pathlib.Path([91m__file__[39;49;00m).parent.parent.parent.parent[90m[39;49;00m
+ exe_name = [33m"[39;49;00m[33mpolyxml.exe[39;49;00m[33m"[39;49;00m [94mif[39;49;00m sys.platform == [33m"[39;49;00m[33mwin32[39;49;00m[33m"[39;49;00m [94melse[39;49;00m [33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m[90m[39;49;00m
+ candidates = [[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mdebug[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mrelease[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ ][90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+ which_path = shutil.which(exe_name) [95mor[39;49;00m shutil.which([33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+ [94mif[39;49;00m which_path:[90m[39;49;00m
+ [94mreturn[39;49;00m pathlib.Path(which_path)[90m[39;49;00m
+ [90m[39;49;00m
+ [90m# Attempt on-the-fly compilation via cargo if not found[39;49;00m[90m[39;49;00m
+ subprocess.run([90m[39;49;00m
+ [[33m"[39;49;00m[33mcargo[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mbuild[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33m-p[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mpolyxml-cli[39;49;00m[33m"[39;49;00m],[90m[39;49;00m
+ cwd=repo_root,[90m[39;49;00m
+ check=[94mTrue[39;49;00m,[90m[39;49;00m
+ capture_output=[94mTrue[39;49;00m,[90m[39;49;00m
+ )[90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+> [94mraise[39;49;00m [96mFileNotFoundError[39;49;00m([33mf[39;49;00m[33m"[39;49;00m[33mpolyxml CLI binary could not be found or built at [39;49;00m[33m{[39;49;00mcandidates[33m}[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+[1m[31mE FileNotFoundError: polyxml CLI binary could not be found or built at [PosixPath('/home/bailey/github/polyxml-default-literals/target/debug/polyxml'), PosixPath('/home/bailey/github/polyxml-default-literals/target/release/polyxml')][0m
+
+[1m[31mtests/test_generated_models.py[0m:288: FileNotFoundError
+[31m[1m____________ test_fixed_values_validate_input_and_output[pydantic] _____________[0m
+
+tmp_path = PosixPath('/tmp/pytest-of-bailey/pytest-14/test_fixed_values_validate_inp1')
+backend = 'pydantic'
+
+ [0m[37m@pytest[39;49;00m.mark.parametrize([33m"[39;49;00m[33mbackend[39;49;00m[33m"[39;49;00m, [[33m"[39;49;00m[33mdataclass[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mpydantic[39;49;00m[33m"[39;49;00m])[90m[39;49;00m
+ [94mdef[39;49;00m[90m [39;49;00m[92mtest_fixed_values_validate_input_and_output[39;49;00m(tmp_path, backend):[90m[39;49;00m
+ schema = pathlib.Path([91m__file__[39;49;00m).resolve().parents[[94m3[39;49;00m] / [33m"[39;49;00m[33mresearch/fixtures/fixed_values.xsd[39;49;00m[33m"[39;49;00m[90m[39;49;00m
+ subprocess.run([90m[39;49;00m
+ [[90m[39;49;00m
+> [96mstr[39;49;00m(_get_polyxml_bin()),[90m[39;49;00m
+ ^^^^^^^^^^^^^^^^^^[90m[39;49;00m
+ [33m"[39;49;00m[33mgenerate[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [96mstr[39;49;00m(schema),[90m[39;49;00m
+ [33m"[39;49;00m[33m--lang[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mpython[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33m--backend[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ backend,[90m[39;49;00m
+ [33m"[39;49;00m[33m--out[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [96mstr[39;49;00m(tmp_path),[90m[39;49;00m
+ ],[90m[39;49;00m
+ check=[94mTrue[39;49;00m,[90m[39;49;00m
+ capture_output=[94mTrue[39;49;00m,[90m[39;49;00m
+ )[90m[39;49;00m
+
+[1m[31mtests/test_generated_models.py[0m:608:
+_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
+
+ [0m[94mdef[39;49;00m[90m [39;49;00m[92m_get_polyxml_bin[39;49;00m() -> pathlib.Path:[90m[39;49;00m
+ repo_root = pathlib.Path([91m__file__[39;49;00m).parent.parent.parent.parent[90m[39;49;00m
+ exe_name = [33m"[39;49;00m[33mpolyxml.exe[39;49;00m[33m"[39;49;00m [94mif[39;49;00m sys.platform == [33m"[39;49;00m[33mwin32[39;49;00m[33m"[39;49;00m [94melse[39;49;00m [33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m[90m[39;49;00m
+ candidates = [[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mdebug[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mrelease[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ ][90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+ which_path = shutil.which(exe_name) [95mor[39;49;00m shutil.which([33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+ [94mif[39;49;00m which_path:[90m[39;49;00m
+ [94mreturn[39;49;00m pathlib.Path(which_path)[90m[39;49;00m
+ [90m[39;49;00m
+ [90m# Attempt on-the-fly compilation via cargo if not found[39;49;00m[90m[39;49;00m
+ subprocess.run([90m[39;49;00m
+ [[33m"[39;49;00m[33mcargo[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mbuild[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33m-p[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mpolyxml-cli[39;49;00m[33m"[39;49;00m],[90m[39;49;00m
+ cwd=repo_root,[90m[39;49;00m
+ check=[94mTrue[39;49;00m,[90m[39;49;00m
+ capture_output=[94mTrue[39;49;00m,[90m[39;49;00m
+ )[90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+> [94mraise[39;49;00m [96mFileNotFoundError[39;49;00m([33mf[39;49;00m[33m"[39;49;00m[33mpolyxml CLI binary could not be found or built at [39;49;00m[33m{[39;49;00mcandidates[33m}[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+[1m[31mE FileNotFoundError: polyxml CLI binary could not be found or built at [PosixPath('/home/bailey/github/polyxml-default-literals/target/debug/polyxml'), PosixPath('/home/bailey/github/polyxml-default-literals/target/release/polyxml')][0m
+
+[1m[31mtests/test_generated_models.py[0m:288: FileNotFoundError
+[31m[1m__________ test_separate_choice_groups_enforce_constraints[dataclass] __________[0m
+
+tmp_path = PosixPath('/tmp/pytest-of-bailey/pytest-14/test_separate_choice_groups_en0')
+backend = 'dataclass'
+
+ [0m[37m@pytest[39;49;00m.mark.parametrize([33m"[39;49;00m[33mbackend[39;49;00m[33m"[39;49;00m, [[33m"[39;49;00m[33mdataclass[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mpydantic[39;49;00m[33m"[39;49;00m])[90m[39;49;00m
+ [94mdef[39;49;00m[90m [39;49;00m[92mtest_separate_choice_groups_enforce_constraints[39;49;00m(tmp_path, backend):[90m[39;49;00m
+ schema = ([90m[39;49;00m
+ pathlib.Path([91m__file__[39;49;00m).resolve().parents[[94m3[39;49;00m][90m[39;49;00m
+ / [33m"[39;49;00m[33mresearch/fixtures/wave6/two_choice_groups.xsd[39;49;00m[33m"[39;49;00m[90m[39;49;00m
+ )[90m[39;49;00m
+ subprocess.run([90m[39;49;00m
+ [[90m[39;49;00m
+> [96mstr[39;49;00m(_get_polyxml_bin()),[90m[39;49;00m
+ ^^^^^^^^^^^^^^^^^^[90m[39;49;00m
+ [33m"[39;49;00m[33mgenerate[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [96mstr[39;49;00m(schema),[90m[39;49;00m
+ [33m"[39;49;00m[33m--lang[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mpython[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33m--backend[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ backend,[90m[39;49;00m
+ [33m"[39;49;00m[33m--out[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [96mstr[39;49;00m(tmp_path),[90m[39;49;00m
+ ],[90m[39;49;00m
+ check=[94mTrue[39;49;00m,[90m[39;49;00m
+ capture_output=[94mTrue[39;49;00m,[90m[39;49;00m
+ )[90m[39;49;00m
+
+[1m[31mtests/test_generated_models.py[0m:647:
+_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
+
+ [0m[94mdef[39;49;00m[90m [39;49;00m[92m_get_polyxml_bin[39;49;00m() -> pathlib.Path:[90m[39;49;00m
+ repo_root = pathlib.Path([91m__file__[39;49;00m).parent.parent.parent.parent[90m[39;49;00m
+ exe_name = [33m"[39;49;00m[33mpolyxml.exe[39;49;00m[33m"[39;49;00m [94mif[39;49;00m sys.platform == [33m"[39;49;00m[33mwin32[39;49;00m[33m"[39;49;00m [94melse[39;49;00m [33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m[90m[39;49;00m
+ candidates = [[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mdebug[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mrelease[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ ][90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+ which_path = shutil.which(exe_name) [95mor[39;49;00m shutil.which([33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+ [94mif[39;49;00m which_path:[90m[39;49;00m
+ [94mreturn[39;49;00m pathlib.Path(which_path)[90m[39;49;00m
+ [90m[39;49;00m
+ [90m# Attempt on-the-fly compilation via cargo if not found[39;49;00m[90m[39;49;00m
+ subprocess.run([90m[39;49;00m
+ [[33m"[39;49;00m[33mcargo[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mbuild[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33m-p[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mpolyxml-cli[39;49;00m[33m"[39;49;00m],[90m[39;49;00m
+ cwd=repo_root,[90m[39;49;00m
+ check=[94mTrue[39;49;00m,[90m[39;49;00m
+ capture_output=[94mTrue[39;49;00m,[90m[39;49;00m
+ )[90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+> [94mraise[39;49;00m [96mFileNotFoundError[39;49;00m([33mf[39;49;00m[33m"[39;49;00m[33mpolyxml CLI binary could not be found or built at [39;49;00m[33m{[39;49;00mcandidates[33m}[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+[1m[31mE FileNotFoundError: polyxml CLI binary could not be found or built at [PosixPath('/home/bailey/github/polyxml-default-literals/target/debug/polyxml'), PosixPath('/home/bailey/github/polyxml-default-literals/target/release/polyxml')][0m
+
+[1m[31mtests/test_generated_models.py[0m:288: FileNotFoundError
+[31m[1m__________ test_separate_choice_groups_enforce_constraints[pydantic] ___________[0m
+
+tmp_path = PosixPath('/tmp/pytest-of-bailey/pytest-14/test_separate_choice_groups_en1')
+backend = 'pydantic'
+
+ [0m[37m@pytest[39;49;00m.mark.parametrize([33m"[39;49;00m[33mbackend[39;49;00m[33m"[39;49;00m, [[33m"[39;49;00m[33mdataclass[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mpydantic[39;49;00m[33m"[39;49;00m])[90m[39;49;00m
+ [94mdef[39;49;00m[90m [39;49;00m[92mtest_separate_choice_groups_enforce_constraints[39;49;00m(tmp_path, backend):[90m[39;49;00m
+ schema = ([90m[39;49;00m
+ pathlib.Path([91m__file__[39;49;00m).resolve().parents[[94m3[39;49;00m][90m[39;49;00m
+ / [33m"[39;49;00m[33mresearch/fixtures/wave6/two_choice_groups.xsd[39;49;00m[33m"[39;49;00m[90m[39;49;00m
+ )[90m[39;49;00m
+ subprocess.run([90m[39;49;00m
+ [[90m[39;49;00m
+> [96mstr[39;49;00m(_get_polyxml_bin()),[90m[39;49;00m
+ ^^^^^^^^^^^^^^^^^^[90m[39;49;00m
+ [33m"[39;49;00m[33mgenerate[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [96mstr[39;49;00m(schema),[90m[39;49;00m
+ [33m"[39;49;00m[33m--lang[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mpython[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33m--backend[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ backend,[90m[39;49;00m
+ [33m"[39;49;00m[33m--out[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [96mstr[39;49;00m(tmp_path),[90m[39;49;00m
+ ],[90m[39;49;00m
+ check=[94mTrue[39;49;00m,[90m[39;49;00m
+ capture_output=[94mTrue[39;49;00m,[90m[39;49;00m
+ )[90m[39;49;00m
+
+[1m[31mtests/test_generated_models.py[0m:647:
+_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
+
+ [0m[94mdef[39;49;00m[90m [39;49;00m[92m_get_polyxml_bin[39;49;00m() -> pathlib.Path:[90m[39;49;00m
+ repo_root = pathlib.Path([91m__file__[39;49;00m).parent.parent.parent.parent[90m[39;49;00m
+ exe_name = [33m"[39;49;00m[33mpolyxml.exe[39;49;00m[33m"[39;49;00m [94mif[39;49;00m sys.platform == [33m"[39;49;00m[33mwin32[39;49;00m[33m"[39;49;00m [94melse[39;49;00m [33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m[90m[39;49;00m
+ candidates = [[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mdebug[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mrelease[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ ][90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+ which_path = shutil.which(exe_name) [95mor[39;49;00m shutil.which([33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+ [94mif[39;49;00m which_path:[90m[39;49;00m
+ [94mreturn[39;49;00m pathlib.Path(which_path)[90m[39;49;00m
+ [90m[39;49;00m
+ [90m# Attempt on-the-fly compilation via cargo if not found[39;49;00m[90m[39;49;00m
+ subprocess.run([90m[39;49;00m
+ [[33m"[39;49;00m[33mcargo[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mbuild[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33m-p[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mpolyxml-cli[39;49;00m[33m"[39;49;00m],[90m[39;49;00m
+ cwd=repo_root,[90m[39;49;00m
+ check=[94mTrue[39;49;00m,[90m[39;49;00m
+ capture_output=[94mTrue[39;49;00m,[90m[39;49;00m
+ )[90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+> [94mraise[39;49;00m [96mFileNotFoundError[39;49;00m([33mf[39;49;00m[33m"[39;49;00m[33mpolyxml CLI binary could not be found or built at [39;49;00m[33m{[39;49;00mcandidates[33m}[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+[1m[31mE FileNotFoundError: polyxml CLI binary could not be found or built at [PosixPath('/home/bailey/github/polyxml-default-literals/target/debug/polyxml'), PosixPath('/home/bailey/github/polyxml-default-literals/target/release/polyxml')][0m
+
+[1m[31mtests/test_generated_models.py[0m:288: FileNotFoundError
+[31m[1m________________ test_repeated_sequence_constraints[dataclass] _________________[0m
+
+tmp_path = PosixPath('/tmp/pytest-of-bailey/pytest-14/test_repeated_sequence_constra0')
+backend = 'dataclass'
+
+ [0m[37m@pytest[39;49;00m.mark.parametrize([33m"[39;49;00m[33mbackend[39;49;00m[33m"[39;49;00m, [[33m"[39;49;00m[33mdataclass[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mpydantic[39;49;00m[33m"[39;49;00m])[90m[39;49;00m
+ [94mdef[39;49;00m[90m [39;49;00m[92mtest_repeated_sequence_constraints[39;49;00m(tmp_path, backend):[90m[39;49;00m
+ schema = pathlib.Path([91m__file__[39;49;00m).resolve().parents[[94m3[39;49;00m] / [33m"[39;49;00m[33mresearch/fixtures/repeated_sequence.xsd[39;49;00m[33m"[39;49;00m[90m[39;49;00m
+ subprocess.run([90m[39;49;00m
+ [[90m[39;49;00m
+> [96mstr[39;49;00m(_get_polyxml_bin()),[90m[39;49;00m
+ ^^^^^^^^^^^^^^^^^^[90m[39;49;00m
+ [33m"[39;49;00m[33mgenerate[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [96mstr[39;49;00m(schema),[90m[39;49;00m
+ [33m"[39;49;00m[33m--lang[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mpython[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33m--backend[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ backend,[90m[39;49;00m
+ [33m"[39;49;00m[33m--out[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [96mstr[39;49;00m(tmp_path),[90m[39;49;00m
+ ],[90m[39;49;00m
+ check=[94mTrue[39;49;00m,[90m[39;49;00m
+ capture_output=[94mTrue[39;49;00m,[90m[39;49;00m
+ )[90m[39;49;00m
+
+[1m[31mtests/test_generated_models.py[0m:686:
+_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
+
+ [0m[94mdef[39;49;00m[90m [39;49;00m[92m_get_polyxml_bin[39;49;00m() -> pathlib.Path:[90m[39;49;00m
+ repo_root = pathlib.Path([91m__file__[39;49;00m).parent.parent.parent.parent[90m[39;49;00m
+ exe_name = [33m"[39;49;00m[33mpolyxml.exe[39;49;00m[33m"[39;49;00m [94mif[39;49;00m sys.platform == [33m"[39;49;00m[33mwin32[39;49;00m[33m"[39;49;00m [94melse[39;49;00m [33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m[90m[39;49;00m
+ candidates = [[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mdebug[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mrelease[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ ][90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+ which_path = shutil.which(exe_name) [95mor[39;49;00m shutil.which([33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+ [94mif[39;49;00m which_path:[90m[39;49;00m
+ [94mreturn[39;49;00m pathlib.Path(which_path)[90m[39;49;00m
+ [90m[39;49;00m
+ [90m# Attempt on-the-fly compilation via cargo if not found[39;49;00m[90m[39;49;00m
+ subprocess.run([90m[39;49;00m
+ [[33m"[39;49;00m[33mcargo[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mbuild[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33m-p[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mpolyxml-cli[39;49;00m[33m"[39;49;00m],[90m[39;49;00m
+ cwd=repo_root,[90m[39;49;00m
+ check=[94mTrue[39;49;00m,[90m[39;49;00m
+ capture_output=[94mTrue[39;49;00m,[90m[39;49;00m
+ )[90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+> [94mraise[39;49;00m [96mFileNotFoundError[39;49;00m([33mf[39;49;00m[33m"[39;49;00m[33mpolyxml CLI binary could not be found or built at [39;49;00m[33m{[39;49;00mcandidates[33m}[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+[1m[31mE FileNotFoundError: polyxml CLI binary could not be found or built at [PosixPath('/home/bailey/github/polyxml-default-literals/target/debug/polyxml'), PosixPath('/home/bailey/github/polyxml-default-literals/target/release/polyxml')][0m
+
+[1m[31mtests/test_generated_models.py[0m:288: FileNotFoundError
+[31m[1m_________________ test_repeated_sequence_constraints[pydantic] _________________[0m
+
+tmp_path = PosixPath('/tmp/pytest-of-bailey/pytest-14/test_repeated_sequence_constra1')
+backend = 'pydantic'
+
+ [0m[37m@pytest[39;49;00m.mark.parametrize([33m"[39;49;00m[33mbackend[39;49;00m[33m"[39;49;00m, [[33m"[39;49;00m[33mdataclass[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mpydantic[39;49;00m[33m"[39;49;00m])[90m[39;49;00m
+ [94mdef[39;49;00m[90m [39;49;00m[92mtest_repeated_sequence_constraints[39;49;00m(tmp_path, backend):[90m[39;49;00m
+ schema = pathlib.Path([91m__file__[39;49;00m).resolve().parents[[94m3[39;49;00m] / [33m"[39;49;00m[33mresearch/fixtures/repeated_sequence.xsd[39;49;00m[33m"[39;49;00m[90m[39;49;00m
+ subprocess.run([90m[39;49;00m
+ [[90m[39;49;00m
+> [96mstr[39;49;00m(_get_polyxml_bin()),[90m[39;49;00m
+ ^^^^^^^^^^^^^^^^^^[90m[39;49;00m
+ [33m"[39;49;00m[33mgenerate[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [96mstr[39;49;00m(schema),[90m[39;49;00m
+ [33m"[39;49;00m[33m--lang[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mpython[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33m--backend[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ backend,[90m[39;49;00m
+ [33m"[39;49;00m[33m--out[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [96mstr[39;49;00m(tmp_path),[90m[39;49;00m
+ ],[90m[39;49;00m
+ check=[94mTrue[39;49;00m,[90m[39;49;00m
+ capture_output=[94mTrue[39;49;00m,[90m[39;49;00m
+ )[90m[39;49;00m
+
+[1m[31mtests/test_generated_models.py[0m:686:
+_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
+
+ [0m[94mdef[39;49;00m[90m [39;49;00m[92m_get_polyxml_bin[39;49;00m() -> pathlib.Path:[90m[39;49;00m
+ repo_root = pathlib.Path([91m__file__[39;49;00m).parent.parent.parent.parent[90m[39;49;00m
+ exe_name = [33m"[39;49;00m[33mpolyxml.exe[39;49;00m[33m"[39;49;00m [94mif[39;49;00m sys.platform == [33m"[39;49;00m[33mwin32[39;49;00m[33m"[39;49;00m [94melse[39;49;00m [33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m[90m[39;49;00m
+ candidates = [[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mdebug[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mrelease[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ ][90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+ which_path = shutil.which(exe_name) [95mor[39;49;00m shutil.which([33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+ [94mif[39;49;00m which_path:[90m[39;49;00m
+ [94mreturn[39;49;00m pathlib.Path(which_path)[90m[39;49;00m
+ [90m[39;49;00m
+ [90m# Attempt on-the-fly compilation via cargo if not found[39;49;00m[90m[39;49;00m
+ subprocess.run([90m[39;49;00m
+ [[33m"[39;49;00m[33mcargo[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mbuild[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33m-p[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mpolyxml-cli[39;49;00m[33m"[39;49;00m],[90m[39;49;00m
+ cwd=repo_root,[90m[39;49;00m
+ check=[94mTrue[39;49;00m,[90m[39;49;00m
+ capture_output=[94mTrue[39;49;00m,[90m[39;49;00m
+ )[90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+> [94mraise[39;49;00m [96mFileNotFoundError[39;49;00m([33mf[39;49;00m[33m"[39;49;00m[33mpolyxml CLI binary could not be found or built at [39;49;00m[33m{[39;49;00mcandidates[33m}[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+[1m[31mE FileNotFoundError: polyxml CLI binary could not be found or built at [PosixPath('/home/bailey/github/polyxml-default-literals/target/debug/polyxml'), PosixPath('/home/bailey/github/polyxml-default-literals/target/release/polyxml')][0m
+
+[1m[31mtests/test_generated_models.py[0m:288: FileNotFoundError
+[31m[1m_____________________ test_typed_lexical_lists[dataclass] ______________________[0m
+
+tmp_path = PosixPath('/tmp/pytest-of-bailey/pytest-14/test_typed_lexical_lists_datac0')
+backend = 'dataclass'
+
+ [0m[37m@pytest[39;49;00m.mark.parametrize([33m"[39;49;00m[33mbackend[39;49;00m[33m"[39;49;00m, [[33m"[39;49;00m[33mdataclass[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mpydantic[39;49;00m[33m"[39;49;00m])[90m[39;49;00m
+ [94mdef[39;49;00m[90m [39;49;00m[92mtest_typed_lexical_lists[39;49;00m(tmp_path, backend):[90m[39;49;00m
+ schema = pathlib.Path([91m__file__[39;49;00m).resolve().parents[[94m3[39;49;00m] / [33m"[39;49;00m[33mresearch/fixtures/list_simple_types.xsd[39;49;00m[33m"[39;49;00m[90m[39;49;00m
+ subprocess.run([90m[39;49;00m
+ [[90m[39;49;00m
+> [96mstr[39;49;00m(_get_polyxml_bin()),[90m[39;49;00m
+ ^^^^^^^^^^^^^^^^^^[90m[39;49;00m
+ [33m"[39;49;00m[33mgenerate[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [96mstr[39;49;00m(schema),[90m[39;49;00m
+ [33m"[39;49;00m[33m--lang[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mpython[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33m--backend[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ backend,[90m[39;49;00m
+ [33m"[39;49;00m[33m--out[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [96mstr[39;49;00m(tmp_path),[90m[39;49;00m
+ ],[90m[39;49;00m
+ check=[94mTrue[39;49;00m,[90m[39;49;00m
+ capture_output=[94mTrue[39;49;00m,[90m[39;49;00m
+ )[90m[39;49;00m
+
+[1m[31mtests/test_generated_models.py[0m:723:
+_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
+
+ [0m[94mdef[39;49;00m[90m [39;49;00m[92m_get_polyxml_bin[39;49;00m() -> pathlib.Path:[90m[39;49;00m
+ repo_root = pathlib.Path([91m__file__[39;49;00m).parent.parent.parent.parent[90m[39;49;00m
+ exe_name = [33m"[39;49;00m[33mpolyxml.exe[39;49;00m[33m"[39;49;00m [94mif[39;49;00m sys.platform == [33m"[39;49;00m[33mwin32[39;49;00m[33m"[39;49;00m [94melse[39;49;00m [33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m[90m[39;49;00m
+ candidates = [[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mdebug[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mrelease[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ ][90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+ which_path = shutil.which(exe_name) [95mor[39;49;00m shutil.which([33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+ [94mif[39;49;00m which_path:[90m[39;49;00m
+ [94mreturn[39;49;00m pathlib.Path(which_path)[90m[39;49;00m
+ [90m[39;49;00m
+ [90m# Attempt on-the-fly compilation via cargo if not found[39;49;00m[90m[39;49;00m
+ subprocess.run([90m[39;49;00m
+ [[33m"[39;49;00m[33mcargo[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mbuild[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33m-p[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mpolyxml-cli[39;49;00m[33m"[39;49;00m],[90m[39;49;00m
+ cwd=repo_root,[90m[39;49;00m
+ check=[94mTrue[39;49;00m,[90m[39;49;00m
+ capture_output=[94mTrue[39;49;00m,[90m[39;49;00m
+ )[90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+> [94mraise[39;49;00m [96mFileNotFoundError[39;49;00m([33mf[39;49;00m[33m"[39;49;00m[33mpolyxml CLI binary could not be found or built at [39;49;00m[33m{[39;49;00mcandidates[33m}[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+[1m[31mE FileNotFoundError: polyxml CLI binary could not be found or built at [PosixPath('/home/bailey/github/polyxml-default-literals/target/debug/polyxml'), PosixPath('/home/bailey/github/polyxml-default-literals/target/release/polyxml')][0m
+
+[1m[31mtests/test_generated_models.py[0m:288: FileNotFoundError
+[31m[1m______________________ test_typed_lexical_lists[pydantic] ______________________[0m
+
+tmp_path = PosixPath('/tmp/pytest-of-bailey/pytest-14/test_typed_lexical_lists_pydan0')
+backend = 'pydantic'
+
+ [0m[37m@pytest[39;49;00m.mark.parametrize([33m"[39;49;00m[33mbackend[39;49;00m[33m"[39;49;00m, [[33m"[39;49;00m[33mdataclass[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mpydantic[39;49;00m[33m"[39;49;00m])[90m[39;49;00m
+ [94mdef[39;49;00m[90m [39;49;00m[92mtest_typed_lexical_lists[39;49;00m(tmp_path, backend):[90m[39;49;00m
+ schema = pathlib.Path([91m__file__[39;49;00m).resolve().parents[[94m3[39;49;00m] / [33m"[39;49;00m[33mresearch/fixtures/list_simple_types.xsd[39;49;00m[33m"[39;49;00m[90m[39;49;00m
+ subprocess.run([90m[39;49;00m
+ [[90m[39;49;00m
+> [96mstr[39;49;00m(_get_polyxml_bin()),[90m[39;49;00m
+ ^^^^^^^^^^^^^^^^^^[90m[39;49;00m
+ [33m"[39;49;00m[33mgenerate[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [96mstr[39;49;00m(schema),[90m[39;49;00m
+ [33m"[39;49;00m[33m--lang[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mpython[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33m--backend[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ backend,[90m[39;49;00m
+ [33m"[39;49;00m[33m--out[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [96mstr[39;49;00m(tmp_path),[90m[39;49;00m
+ ],[90m[39;49;00m
+ check=[94mTrue[39;49;00m,[90m[39;49;00m
+ capture_output=[94mTrue[39;49;00m,[90m[39;49;00m
+ )[90m[39;49;00m
+
+[1m[31mtests/test_generated_models.py[0m:723:
+_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
+
+ [0m[94mdef[39;49;00m[90m [39;49;00m[92m_get_polyxml_bin[39;49;00m() -> pathlib.Path:[90m[39;49;00m
+ repo_root = pathlib.Path([91m__file__[39;49;00m).parent.parent.parent.parent[90m[39;49;00m
+ exe_name = [33m"[39;49;00m[33mpolyxml.exe[39;49;00m[33m"[39;49;00m [94mif[39;49;00m sys.platform == [33m"[39;49;00m[33mwin32[39;49;00m[33m"[39;49;00m [94melse[39;49;00m [33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m[90m[39;49;00m
+ candidates = [[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mdebug[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mrelease[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ ][90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+ which_path = shutil.which(exe_name) [95mor[39;49;00m shutil.which([33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+ [94mif[39;49;00m which_path:[90m[39;49;00m
+ [94mreturn[39;49;00m pathlib.Path(which_path)[90m[39;49;00m
+ [90m[39;49;00m
+ [90m# Attempt on-the-fly compilation via cargo if not found[39;49;00m[90m[39;49;00m
+ subprocess.run([90m[39;49;00m
+ [[33m"[39;49;00m[33mcargo[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mbuild[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33m-p[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mpolyxml-cli[39;49;00m[33m"[39;49;00m],[90m[39;49;00m
+ cwd=repo_root,[90m[39;49;00m
+ check=[94mTrue[39;49;00m,[90m[39;49;00m
+ capture_output=[94mTrue[39;49;00m,[90m[39;49;00m
+ )[90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+> [94mraise[39;49;00m [96mFileNotFoundError[39;49;00m([33mf[39;49;00m[33m"[39;49;00m[33mpolyxml CLI binary could not be found or built at [39;49;00m[33m{[39;49;00mcandidates[33m}[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+[1m[31mE FileNotFoundError: polyxml CLI binary could not be found or built at [PosixPath('/home/bailey/github/polyxml-default-literals/target/debug/polyxml'), PosixPath('/home/bailey/github/polyxml-default-literals/target/release/polyxml')][0m
+
+[1m[31mtests/test_generated_models.py[0m:288: FileNotFoundError
+[31m[1m_____________ test_named_lexical_list_item_constraints[dataclass] ______________[0m
+
+tmp_path = PosixPath('/tmp/pytest-of-bailey/pytest-14/test_named_lexical_list_item_c0')
+backend = 'dataclass'
+
+ [0m[37m@pytest[39;49;00m.mark.parametrize([33m"[39;49;00m[33mbackend[39;49;00m[33m"[39;49;00m, [[33m"[39;49;00m[33mdataclass[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mpydantic[39;49;00m[33m"[39;49;00m])[90m[39;49;00m
+ [94mdef[39;49;00m[90m [39;49;00m[92mtest_named_lexical_list_item_constraints[39;49;00m(tmp_path, backend):[90m[39;49;00m
+ schema = ([90m[39;49;00m
+ pathlib.Path([91m__file__[39;49;00m).resolve().parents[[94m3[39;49;00m] / [33m"[39;49;00m[33mresearch/fixtures/restricted_list_items.xsd[39;49;00m[33m"[39;49;00m[90m[39;49;00m
+ )[90m[39;49;00m
+ subprocess.run([90m[39;49;00m
+ [[90m[39;49;00m
+> [96mstr[39;49;00m(_get_polyxml_bin()),[90m[39;49;00m
+ ^^^^^^^^^^^^^^^^^^[90m[39;49;00m
+ [33m"[39;49;00m[33mgenerate[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [96mstr[39;49;00m(schema),[90m[39;49;00m
+ [33m"[39;49;00m[33m--lang[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mpython[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33m--backend[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ backend,[90m[39;49;00m
+ [33m"[39;49;00m[33m--out[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [96mstr[39;49;00m(tmp_path),[90m[39;49;00m
+ ],[90m[39;49;00m
+ check=[94mTrue[39;49;00m,[90m[39;49;00m
+ capture_output=[94mTrue[39;49;00m,[90m[39;49;00m
+ )[90m[39;49;00m
+
+[1m[31mtests/test_generated_models.py[0m:758:
+_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
+
+ [0m[94mdef[39;49;00m[90m [39;49;00m[92m_get_polyxml_bin[39;49;00m() -> pathlib.Path:[90m[39;49;00m
+ repo_root = pathlib.Path([91m__file__[39;49;00m).parent.parent.parent.parent[90m[39;49;00m
+ exe_name = [33m"[39;49;00m[33mpolyxml.exe[39;49;00m[33m"[39;49;00m [94mif[39;49;00m sys.platform == [33m"[39;49;00m[33mwin32[39;49;00m[33m"[39;49;00m [94melse[39;49;00m [33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m[90m[39;49;00m
+ candidates = [[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mdebug[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mrelease[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ ][90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+ which_path = shutil.which(exe_name) [95mor[39;49;00m shutil.which([33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+ [94mif[39;49;00m which_path:[90m[39;49;00m
+ [94mreturn[39;49;00m pathlib.Path(which_path)[90m[39;49;00m
+ [90m[39;49;00m
+ [90m# Attempt on-the-fly compilation via cargo if not found[39;49;00m[90m[39;49;00m
+ subprocess.run([90m[39;49;00m
+ [[33m"[39;49;00m[33mcargo[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mbuild[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33m-p[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mpolyxml-cli[39;49;00m[33m"[39;49;00m],[90m[39;49;00m
+ cwd=repo_root,[90m[39;49;00m
+ check=[94mTrue[39;49;00m,[90m[39;49;00m
+ capture_output=[94mTrue[39;49;00m,[90m[39;49;00m
+ )[90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+> [94mraise[39;49;00m [96mFileNotFoundError[39;49;00m([33mf[39;49;00m[33m"[39;49;00m[33mpolyxml CLI binary could not be found or built at [39;49;00m[33m{[39;49;00mcandidates[33m}[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+[1m[31mE FileNotFoundError: polyxml CLI binary could not be found or built at [PosixPath('/home/bailey/github/polyxml-default-literals/target/debug/polyxml'), PosixPath('/home/bailey/github/polyxml-default-literals/target/release/polyxml')][0m
+
+[1m[31mtests/test_generated_models.py[0m:288: FileNotFoundError
+[31m[1m______________ test_named_lexical_list_item_constraints[pydantic] ______________[0m
+
+tmp_path = PosixPath('/tmp/pytest-of-bailey/pytest-14/test_named_lexical_list_item_c1')
+backend = 'pydantic'
+
+ [0m[37m@pytest[39;49;00m.mark.parametrize([33m"[39;49;00m[33mbackend[39;49;00m[33m"[39;49;00m, [[33m"[39;49;00m[33mdataclass[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mpydantic[39;49;00m[33m"[39;49;00m])[90m[39;49;00m
+ [94mdef[39;49;00m[90m [39;49;00m[92mtest_named_lexical_list_item_constraints[39;49;00m(tmp_path, backend):[90m[39;49;00m
+ schema = ([90m[39;49;00m
+ pathlib.Path([91m__file__[39;49;00m).resolve().parents[[94m3[39;49;00m] / [33m"[39;49;00m[33mresearch/fixtures/restricted_list_items.xsd[39;49;00m[33m"[39;49;00m[90m[39;49;00m
+ )[90m[39;49;00m
+ subprocess.run([90m[39;49;00m
+ [[90m[39;49;00m
+> [96mstr[39;49;00m(_get_polyxml_bin()),[90m[39;49;00m
+ ^^^^^^^^^^^^^^^^^^[90m[39;49;00m
+ [33m"[39;49;00m[33mgenerate[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [96mstr[39;49;00m(schema),[90m[39;49;00m
+ [33m"[39;49;00m[33m--lang[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mpython[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33m--backend[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ backend,[90m[39;49;00m
+ [33m"[39;49;00m[33m--out[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [96mstr[39;49;00m(tmp_path),[90m[39;49;00m
+ ],[90m[39;49;00m
+ check=[94mTrue[39;49;00m,[90m[39;49;00m
+ capture_output=[94mTrue[39;49;00m,[90m[39;49;00m
+ )[90m[39;49;00m
+
+[1m[31mtests/test_generated_models.py[0m:758:
+_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
+
+ [0m[94mdef[39;49;00m[90m [39;49;00m[92m_get_polyxml_bin[39;49;00m() -> pathlib.Path:[90m[39;49;00m
+ repo_root = pathlib.Path([91m__file__[39;49;00m).parent.parent.parent.parent[90m[39;49;00m
+ exe_name = [33m"[39;49;00m[33mpolyxml.exe[39;49;00m[33m"[39;49;00m [94mif[39;49;00m sys.platform == [33m"[39;49;00m[33mwin32[39;49;00m[33m"[39;49;00m [94melse[39;49;00m [33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m[90m[39;49;00m
+ candidates = [[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mdebug[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mrelease[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ ][90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+ which_path = shutil.which(exe_name) [95mor[39;49;00m shutil.which([33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+ [94mif[39;49;00m which_path:[90m[39;49;00m
+ [94mreturn[39;49;00m pathlib.Path(which_path)[90m[39;49;00m
+ [90m[39;49;00m
+ [90m# Attempt on-the-fly compilation via cargo if not found[39;49;00m[90m[39;49;00m
+ subprocess.run([90m[39;49;00m
+ [[33m"[39;49;00m[33mcargo[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mbuild[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33m-p[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mpolyxml-cli[39;49;00m[33m"[39;49;00m],[90m[39;49;00m
+ cwd=repo_root,[90m[39;49;00m
+ check=[94mTrue[39;49;00m,[90m[39;49;00m
+ capture_output=[94mTrue[39;49;00m,[90m[39;49;00m
+ )[90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+> [94mraise[39;49;00m [96mFileNotFoundError[39;49;00m([33mf[39;49;00m[33m"[39;49;00m[33mpolyxml CLI binary could not be found or built at [39;49;00m[33m{[39;49;00mcandidates[33m}[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+[1m[31mE FileNotFoundError: polyxml CLI binary could not be found or built at [PosixPath('/home/bailey/github/polyxml-default-literals/target/debug/polyxml'), PosixPath('/home/bailey/github/polyxml-default-literals/target/release/polyxml')][0m
+
+[1m[31mtests/test_generated_models.py[0m:288: FileNotFoundError
+[31m[1m______________ test_repeated_choice_branch_boundaries[dataclass] _______________[0m
+
+tmp_path = PosixPath('/tmp/pytest-of-bailey/pytest-14/test_repeated_choice_branch_bo0')
+backend = 'dataclass'
+
+ [0m[37m@pytest[39;49;00m.mark.parametrize([33m"[39;49;00m[33mbackend[39;49;00m[33m"[39;49;00m, [[33m"[39;49;00m[33mdataclass[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mpydantic[39;49;00m[33m"[39;49;00m])[90m[39;49;00m
+ [94mdef[39;49;00m[90m [39;49;00m[92mtest_repeated_choice_branch_boundaries[39;49;00m(tmp_path, backend):[90m[39;49;00m
+ schema = ([90m[39;49;00m
+ pathlib.Path([91m__file__[39;49;00m).resolve().parents[[94m3[39;49;00m][90m[39;49;00m
+ / [33m"[39;49;00m[33mresearch/fixtures/choice_branch_cardinality.xsd[39;49;00m[33m"[39;49;00m[90m[39;49;00m
+ )[90m[39;49;00m
+ subprocess.run([90m[39;49;00m
+ [[90m[39;49;00m
+> [96mstr[39;49;00m(_get_polyxml_bin()),[90m[39;49;00m
+ ^^^^^^^^^^^^^^^^^^[90m[39;49;00m
+ [33m"[39;49;00m[33mgenerate[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [96mstr[39;49;00m(schema),[90m[39;49;00m
+ [33m"[39;49;00m[33m--lang[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mpython[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33m--backend[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ backend,[90m[39;49;00m
+ [33m"[39;49;00m[33m--out[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [96mstr[39;49;00m(tmp_path),[90m[39;49;00m
+ ],[90m[39;49;00m
+ check=[94mTrue[39;49;00m,[90m[39;49;00m
+ capture_output=[94mTrue[39;49;00m,[90m[39;49;00m
+ )[90m[39;49;00m
+
+[1m[31mtests/test_generated_models.py[0m:796:
+_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
+
+ [0m[94mdef[39;49;00m[90m [39;49;00m[92m_get_polyxml_bin[39;49;00m() -> pathlib.Path:[90m[39;49;00m
+ repo_root = pathlib.Path([91m__file__[39;49;00m).parent.parent.parent.parent[90m[39;49;00m
+ exe_name = [33m"[39;49;00m[33mpolyxml.exe[39;49;00m[33m"[39;49;00m [94mif[39;49;00m sys.platform == [33m"[39;49;00m[33mwin32[39;49;00m[33m"[39;49;00m [94melse[39;49;00m [33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m[90m[39;49;00m
+ candidates = [[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mdebug[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mrelease[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ ][90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+ which_path = shutil.which(exe_name) [95mor[39;49;00m shutil.which([33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+ [94mif[39;49;00m which_path:[90m[39;49;00m
+ [94mreturn[39;49;00m pathlib.Path(which_path)[90m[39;49;00m
+ [90m[39;49;00m
+ [90m# Attempt on-the-fly compilation via cargo if not found[39;49;00m[90m[39;49;00m
+ subprocess.run([90m[39;49;00m
+ [[33m"[39;49;00m[33mcargo[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mbuild[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33m-p[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mpolyxml-cli[39;49;00m[33m"[39;49;00m],[90m[39;49;00m
+ cwd=repo_root,[90m[39;49;00m
+ check=[94mTrue[39;49;00m,[90m[39;49;00m
+ capture_output=[94mTrue[39;49;00m,[90m[39;49;00m
+ )[90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+> [94mraise[39;49;00m [96mFileNotFoundError[39;49;00m([33mf[39;49;00m[33m"[39;49;00m[33mpolyxml CLI binary could not be found or built at [39;49;00m[33m{[39;49;00mcandidates[33m}[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+[1m[31mE FileNotFoundError: polyxml CLI binary could not be found or built at [PosixPath('/home/bailey/github/polyxml-default-literals/target/debug/polyxml'), PosixPath('/home/bailey/github/polyxml-default-literals/target/release/polyxml')][0m
+
+[1m[31mtests/test_generated_models.py[0m:288: FileNotFoundError
+[31m[1m_______________ test_repeated_choice_branch_boundaries[pydantic] _______________[0m
+
+tmp_path = PosixPath('/tmp/pytest-of-bailey/pytest-14/test_repeated_choice_branch_bo1')
+backend = 'pydantic'
+
+ [0m[37m@pytest[39;49;00m.mark.parametrize([33m"[39;49;00m[33mbackend[39;49;00m[33m"[39;49;00m, [[33m"[39;49;00m[33mdataclass[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mpydantic[39;49;00m[33m"[39;49;00m])[90m[39;49;00m
+ [94mdef[39;49;00m[90m [39;49;00m[92mtest_repeated_choice_branch_boundaries[39;49;00m(tmp_path, backend):[90m[39;49;00m
+ schema = ([90m[39;49;00m
+ pathlib.Path([91m__file__[39;49;00m).resolve().parents[[94m3[39;49;00m][90m[39;49;00m
+ / [33m"[39;49;00m[33mresearch/fixtures/choice_branch_cardinality.xsd[39;49;00m[33m"[39;49;00m[90m[39;49;00m
+ )[90m[39;49;00m
+ subprocess.run([90m[39;49;00m
+ [[90m[39;49;00m
+> [96mstr[39;49;00m(_get_polyxml_bin()),[90m[39;49;00m
+ ^^^^^^^^^^^^^^^^^^[90m[39;49;00m
+ [33m"[39;49;00m[33mgenerate[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [96mstr[39;49;00m(schema),[90m[39;49;00m
+ [33m"[39;49;00m[33m--lang[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mpython[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33m--backend[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ backend,[90m[39;49;00m
+ [33m"[39;49;00m[33m--out[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [96mstr[39;49;00m(tmp_path),[90m[39;49;00m
+ ],[90m[39;49;00m
+ check=[94mTrue[39;49;00m,[90m[39;49;00m
+ capture_output=[94mTrue[39;49;00m,[90m[39;49;00m
+ )[90m[39;49;00m
+
+[1m[31mtests/test_generated_models.py[0m:796:
+_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
+
+ [0m[94mdef[39;49;00m[90m [39;49;00m[92m_get_polyxml_bin[39;49;00m() -> pathlib.Path:[90m[39;49;00m
+ repo_root = pathlib.Path([91m__file__[39;49;00m).parent.parent.parent.parent[90m[39;49;00m
+ exe_name = [33m"[39;49;00m[33mpolyxml.exe[39;49;00m[33m"[39;49;00m [94mif[39;49;00m sys.platform == [33m"[39;49;00m[33mwin32[39;49;00m[33m"[39;49;00m [94melse[39;49;00m [33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m[90m[39;49;00m
+ candidates = [[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mdebug[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mrelease[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ ][90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+ which_path = shutil.which(exe_name) [95mor[39;49;00m shutil.which([33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+ [94mif[39;49;00m which_path:[90m[39;49;00m
+ [94mreturn[39;49;00m pathlib.Path(which_path)[90m[39;49;00m
+ [90m[39;49;00m
+ [90m# Attempt on-the-fly compilation via cargo if not found[39;49;00m[90m[39;49;00m
+ subprocess.run([90m[39;49;00m
+ [[33m"[39;49;00m[33mcargo[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mbuild[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33m-p[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mpolyxml-cli[39;49;00m[33m"[39;49;00m],[90m[39;49;00m
+ cwd=repo_root,[90m[39;49;00m
+ check=[94mTrue[39;49;00m,[90m[39;49;00m
+ capture_output=[94mTrue[39;49;00m,[90m[39;49;00m
+ )[90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+> [94mraise[39;49;00m [96mFileNotFoundError[39;49;00m([33mf[39;49;00m[33m"[39;49;00m[33mpolyxml CLI binary could not be found or built at [39;49;00m[33m{[39;49;00mcandidates[33m}[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+[1m[31mE FileNotFoundError: polyxml CLI binary could not be found or built at [PosixPath('/home/bailey/github/polyxml-default-literals/target/debug/polyxml'), PosixPath('/home/bailey/github/polyxml-default-literals/target/release/polyxml')][0m
+
+[1m[31mtests/test_generated_models.py[0m:288: FileNotFoundError
+[31m[1m________ test_duplicate_choice_names_validate_branch_shapes[dataclass] _________[0m
+
+tmp_path = PosixPath('/tmp/pytest-of-bailey/pytest-14/test_duplicate_choice_names_va0')
+backend = 'dataclass'
+
+ [0m[37m@pytest[39;49;00m.mark.parametrize([33m"[39;49;00m[33mbackend[39;49;00m[33m"[39;49;00m, [[33m"[39;49;00m[33mdataclass[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mpydantic[39;49;00m[33m"[39;49;00m])[90m[39;49;00m
+ [94mdef[39;49;00m[90m [39;49;00m[92mtest_duplicate_choice_names_validate_branch_shapes[39;49;00m(tmp_path, backend):[90m[39;49;00m
+ schema = ([90m[39;49;00m
+ pathlib.Path([91m__file__[39;49;00m).resolve().parents[[94m3[39;49;00m][90m[39;49;00m
+ / [33m"[39;49;00m[33mresearch/fixtures/wave6/duplicate_choice_branch_name.xsd[39;49;00m[33m"[39;49;00m[90m[39;49;00m
+ )[90m[39;49;00m
+ subprocess.run([90m[39;49;00m
+ [[90m[39;49;00m
+> [96mstr[39;49;00m(_get_polyxml_bin()),[90m[39;49;00m
+ ^^^^^^^^^^^^^^^^^^[90m[39;49;00m
+ [33m"[39;49;00m[33mgenerate[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [96mstr[39;49;00m(schema),[90m[39;49;00m
+ [33m"[39;49;00m[33m--lang[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mpython[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33m--backend[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ backend,[90m[39;49;00m
+ [33m"[39;49;00m[33m--out[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [96mstr[39;49;00m(tmp_path),[90m[39;49;00m
+ ],[90m[39;49;00m
+ check=[94mTrue[39;49;00m,[90m[39;49;00m
+ capture_output=[94mTrue[39;49;00m,[90m[39;49;00m
+ )[90m[39;49;00m
+
+[1m[31mtests/test_generated_models.py[0m:842:
+_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
+
+ [0m[94mdef[39;49;00m[90m [39;49;00m[92m_get_polyxml_bin[39;49;00m() -> pathlib.Path:[90m[39;49;00m
+ repo_root = pathlib.Path([91m__file__[39;49;00m).parent.parent.parent.parent[90m[39;49;00m
+ exe_name = [33m"[39;49;00m[33mpolyxml.exe[39;49;00m[33m"[39;49;00m [94mif[39;49;00m sys.platform == [33m"[39;49;00m[33mwin32[39;49;00m[33m"[39;49;00m [94melse[39;49;00m [33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m[90m[39;49;00m
+ candidates = [[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mdebug[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mrelease[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ ][90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+ which_path = shutil.which(exe_name) [95mor[39;49;00m shutil.which([33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+ [94mif[39;49;00m which_path:[90m[39;49;00m
+ [94mreturn[39;49;00m pathlib.Path(which_path)[90m[39;49;00m
+ [90m[39;49;00m
+ [90m# Attempt on-the-fly compilation via cargo if not found[39;49;00m[90m[39;49;00m
+ subprocess.run([90m[39;49;00m
+ [[33m"[39;49;00m[33mcargo[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mbuild[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33m-p[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mpolyxml-cli[39;49;00m[33m"[39;49;00m],[90m[39;49;00m
+ cwd=repo_root,[90m[39;49;00m
+ check=[94mTrue[39;49;00m,[90m[39;49;00m
+ capture_output=[94mTrue[39;49;00m,[90m[39;49;00m
+ )[90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+> [94mraise[39;49;00m [96mFileNotFoundError[39;49;00m([33mf[39;49;00m[33m"[39;49;00m[33mpolyxml CLI binary could not be found or built at [39;49;00m[33m{[39;49;00mcandidates[33m}[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+[1m[31mE FileNotFoundError: polyxml CLI binary could not be found or built at [PosixPath('/home/bailey/github/polyxml-default-literals/target/debug/polyxml'), PosixPath('/home/bailey/github/polyxml-default-literals/target/release/polyxml')][0m
+
+[1m[31mtests/test_generated_models.py[0m:288: FileNotFoundError
+[31m[1m_________ test_duplicate_choice_names_validate_branch_shapes[pydantic] _________[0m
+
+tmp_path = PosixPath('/tmp/pytest-of-bailey/pytest-14/test_duplicate_choice_names_va1')
+backend = 'pydantic'
+
+ [0m[37m@pytest[39;49;00m.mark.parametrize([33m"[39;49;00m[33mbackend[39;49;00m[33m"[39;49;00m, [[33m"[39;49;00m[33mdataclass[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mpydantic[39;49;00m[33m"[39;49;00m])[90m[39;49;00m
+ [94mdef[39;49;00m[90m [39;49;00m[92mtest_duplicate_choice_names_validate_branch_shapes[39;49;00m(tmp_path, backend):[90m[39;49;00m
+ schema = ([90m[39;49;00m
+ pathlib.Path([91m__file__[39;49;00m).resolve().parents[[94m3[39;49;00m][90m[39;49;00m
+ / [33m"[39;49;00m[33mresearch/fixtures/wave6/duplicate_choice_branch_name.xsd[39;49;00m[33m"[39;49;00m[90m[39;49;00m
+ )[90m[39;49;00m
+ subprocess.run([90m[39;49;00m
+ [[90m[39;49;00m
+> [96mstr[39;49;00m(_get_polyxml_bin()),[90m[39;49;00m
+ ^^^^^^^^^^^^^^^^^^[90m[39;49;00m
+ [33m"[39;49;00m[33mgenerate[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [96mstr[39;49;00m(schema),[90m[39;49;00m
+ [33m"[39;49;00m[33m--lang[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mpython[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33m--backend[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ backend,[90m[39;49;00m
+ [33m"[39;49;00m[33m--out[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [96mstr[39;49;00m(tmp_path),[90m[39;49;00m
+ ],[90m[39;49;00m
+ check=[94mTrue[39;49;00m,[90m[39;49;00m
+ capture_output=[94mTrue[39;49;00m,[90m[39;49;00m
+ )[90m[39;49;00m
+
+[1m[31mtests/test_generated_models.py[0m:842:
+_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
+
+ [0m[94mdef[39;49;00m[90m [39;49;00m[92m_get_polyxml_bin[39;49;00m() -> pathlib.Path:[90m[39;49;00m
+ repo_root = pathlib.Path([91m__file__[39;49;00m).parent.parent.parent.parent[90m[39;49;00m
+ exe_name = [33m"[39;49;00m[33mpolyxml.exe[39;49;00m[33m"[39;49;00m [94mif[39;49;00m sys.platform == [33m"[39;49;00m[33mwin32[39;49;00m[33m"[39;49;00m [94melse[39;49;00m [33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m[90m[39;49;00m
+ candidates = [[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mdebug[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mrelease[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ ][90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+ which_path = shutil.which(exe_name) [95mor[39;49;00m shutil.which([33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+ [94mif[39;49;00m which_path:[90m[39;49;00m
+ [94mreturn[39;49;00m pathlib.Path(which_path)[90m[39;49;00m
+ [90m[39;49;00m
+ [90m# Attempt on-the-fly compilation via cargo if not found[39;49;00m[90m[39;49;00m
+ subprocess.run([90m[39;49;00m
+ [[33m"[39;49;00m[33mcargo[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mbuild[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33m-p[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mpolyxml-cli[39;49;00m[33m"[39;49;00m],[90m[39;49;00m
+ cwd=repo_root,[90m[39;49;00m
+ check=[94mTrue[39;49;00m,[90m[39;49;00m
+ capture_output=[94mTrue[39;49;00m,[90m[39;49;00m
+ )[90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+> [94mraise[39;49;00m [96mFileNotFoundError[39;49;00m([33mf[39;49;00m[33m"[39;49;00m[33mpolyxml CLI binary could not be found or built at [39;49;00m[33m{[39;49;00mcandidates[33m}[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+[1m[31mE FileNotFoundError: polyxml CLI binary could not be found or built at [PosixPath('/home/bailey/github/polyxml-default-literals/target/debug/polyxml'), PosixPath('/home/bailey/github/polyxml-default-literals/target/release/polyxml')][0m
+
+[1m[31mtests/test_generated_models.py[0m:288: FileNotFoundError
+[31m[1m____________ test_abstract_substitution_head_is_rejected[dataclass] ____________[0m
+
+tmp_path = PosixPath('/tmp/pytest-of-bailey/pytest-14/test_abstract_substitution_hea0')
+backend = 'dataclass'
+
+ [0m[37m@pytest[39;49;00m.mark.parametrize([33m"[39;49;00m[33mbackend[39;49;00m[33m"[39;49;00m, [[33m"[39;49;00m[33mdataclass[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mpydantic[39;49;00m[33m"[39;49;00m])[90m[39;49;00m
+ [94mdef[39;49;00m[90m [39;49;00m[92mtest_abstract_substitution_head_is_rejected[39;49;00m(tmp_path, backend):[90m[39;49;00m
+ schema = ([90m[39;49;00m
+ pathlib.Path([91m__file__[39;49;00m).resolve().parents[[94m3[39;49;00m] / [33m"[39;49;00m[33mresearch/fixtures/substitution_group.xsd[39;49;00m[33m"[39;49;00m[90m[39;49;00m
+ )[90m[39;49;00m
+ subprocess.run([90m[39;49;00m
+ [[90m[39;49;00m
+> [96mstr[39;49;00m(_get_polyxml_bin()),[90m[39;49;00m
+ ^^^^^^^^^^^^^^^^^^[90m[39;49;00m
+ [33m"[39;49;00m[33mgenerate[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [96mstr[39;49;00m(schema),[90m[39;49;00m
+ [33m"[39;49;00m[33m--lang[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mpython[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33m--backend[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ backend,[90m[39;49;00m
+ [33m"[39;49;00m[33m--out[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [96mstr[39;49;00m(tmp_path),[90m[39;49;00m
+ ],[90m[39;49;00m
+ check=[94mTrue[39;49;00m,[90m[39;49;00m
+ capture_output=[94mTrue[39;49;00m,[90m[39;49;00m
+ )[90m[39;49;00m
+
+[1m[31mtests/test_generated_models.py[0m:877:
+_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
+
+ [0m[94mdef[39;49;00m[90m [39;49;00m[92m_get_polyxml_bin[39;49;00m() -> pathlib.Path:[90m[39;49;00m
+ repo_root = pathlib.Path([91m__file__[39;49;00m).parent.parent.parent.parent[90m[39;49;00m
+ exe_name = [33m"[39;49;00m[33mpolyxml.exe[39;49;00m[33m"[39;49;00m [94mif[39;49;00m sys.platform == [33m"[39;49;00m[33mwin32[39;49;00m[33m"[39;49;00m [94melse[39;49;00m [33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m[90m[39;49;00m
+ candidates = [[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mdebug[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mrelease[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ ][90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+ which_path = shutil.which(exe_name) [95mor[39;49;00m shutil.which([33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+ [94mif[39;49;00m which_path:[90m[39;49;00m
+ [94mreturn[39;49;00m pathlib.Path(which_path)[90m[39;49;00m
+ [90m[39;49;00m
+ [90m# Attempt on-the-fly compilation via cargo if not found[39;49;00m[90m[39;49;00m
+ subprocess.run([90m[39;49;00m
+ [[33m"[39;49;00m[33mcargo[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mbuild[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33m-p[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mpolyxml-cli[39;49;00m[33m"[39;49;00m],[90m[39;49;00m
+ cwd=repo_root,[90m[39;49;00m
+ check=[94mTrue[39;49;00m,[90m[39;49;00m
+ capture_output=[94mTrue[39;49;00m,[90m[39;49;00m
+ )[90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+> [94mraise[39;49;00m [96mFileNotFoundError[39;49;00m([33mf[39;49;00m[33m"[39;49;00m[33mpolyxml CLI binary could not be found or built at [39;49;00m[33m{[39;49;00mcandidates[33m}[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+[1m[31mE FileNotFoundError: polyxml CLI binary could not be found or built at [PosixPath('/home/bailey/github/polyxml-default-literals/target/debug/polyxml'), PosixPath('/home/bailey/github/polyxml-default-literals/target/release/polyxml')][0m
+
+[1m[31mtests/test_generated_models.py[0m:288: FileNotFoundError
+[31m[1m____________ test_abstract_substitution_head_is_rejected[pydantic] _____________[0m
+
+tmp_path = PosixPath('/tmp/pytest-of-bailey/pytest-14/test_abstract_substitution_hea1')
+backend = 'pydantic'
+
+ [0m[37m@pytest[39;49;00m.mark.parametrize([33m"[39;49;00m[33mbackend[39;49;00m[33m"[39;49;00m, [[33m"[39;49;00m[33mdataclass[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mpydantic[39;49;00m[33m"[39;49;00m])[90m[39;49;00m
+ [94mdef[39;49;00m[90m [39;49;00m[92mtest_abstract_substitution_head_is_rejected[39;49;00m(tmp_path, backend):[90m[39;49;00m
+ schema = ([90m[39;49;00m
+ pathlib.Path([91m__file__[39;49;00m).resolve().parents[[94m3[39;49;00m] / [33m"[39;49;00m[33mresearch/fixtures/substitution_group.xsd[39;49;00m[33m"[39;49;00m[90m[39;49;00m
+ )[90m[39;49;00m
+ subprocess.run([90m[39;49;00m
+ [[90m[39;49;00m
+> [96mstr[39;49;00m(_get_polyxml_bin()),[90m[39;49;00m
+ ^^^^^^^^^^^^^^^^^^[90m[39;49;00m
+ [33m"[39;49;00m[33mgenerate[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [96mstr[39;49;00m(schema),[90m[39;49;00m
+ [33m"[39;49;00m[33m--lang[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mpython[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33m--backend[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ backend,[90m[39;49;00m
+ [33m"[39;49;00m[33m--out[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [96mstr[39;49;00m(tmp_path),[90m[39;49;00m
+ ],[90m[39;49;00m
+ check=[94mTrue[39;49;00m,[90m[39;49;00m
+ capture_output=[94mTrue[39;49;00m,[90m[39;49;00m
+ )[90m[39;49;00m
+
+[1m[31mtests/test_generated_models.py[0m:877:
+_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
+
+ [0m[94mdef[39;49;00m[90m [39;49;00m[92m_get_polyxml_bin[39;49;00m() -> pathlib.Path:[90m[39;49;00m
+ repo_root = pathlib.Path([91m__file__[39;49;00m).parent.parent.parent.parent[90m[39;49;00m
+ exe_name = [33m"[39;49;00m[33mpolyxml.exe[39;49;00m[33m"[39;49;00m [94mif[39;49;00m sys.platform == [33m"[39;49;00m[33mwin32[39;49;00m[33m"[39;49;00m [94melse[39;49;00m [33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m[90m[39;49;00m
+ candidates = [[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mdebug[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mrelease[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ ][90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+ which_path = shutil.which(exe_name) [95mor[39;49;00m shutil.which([33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+ [94mif[39;49;00m which_path:[90m[39;49;00m
+ [94mreturn[39;49;00m pathlib.Path(which_path)[90m[39;49;00m
+ [90m[39;49;00m
+ [90m# Attempt on-the-fly compilation via cargo if not found[39;49;00m[90m[39;49;00m
+ subprocess.run([90m[39;49;00m
+ [[33m"[39;49;00m[33mcargo[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mbuild[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33m-p[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mpolyxml-cli[39;49;00m[33m"[39;49;00m],[90m[39;49;00m
+ cwd=repo_root,[90m[39;49;00m
+ check=[94mTrue[39;49;00m,[90m[39;49;00m
+ capture_output=[94mTrue[39;49;00m,[90m[39;49;00m
+ )[90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+> [94mraise[39;49;00m [96mFileNotFoundError[39;49;00m([33mf[39;49;00m[33m"[39;49;00m[33mpolyxml CLI binary could not be found or built at [39;49;00m[33m{[39;49;00mcandidates[33m}[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+[1m[31mE FileNotFoundError: polyxml CLI binary could not be found or built at [PosixPath('/home/bailey/github/polyxml-default-literals/target/debug/polyxml'), PosixPath('/home/bailey/github/polyxml-default-literals/target/release/polyxml')][0m
+
+[1m[31mtests/test_generated_models.py[0m:288: FileNotFoundError
+[31m[1m_________________ test_unbounded_integer_round_trip[dataclass] _________________[0m
+
+tmp_path = PosixPath('/tmp/pytest-of-bailey/pytest-14/test_unbounded_integer_round_t0')
+backend = 'dataclass'
+
+ [0m[37m@pytest[39;49;00m.mark.parametrize([33m"[39;49;00m[33mbackend[39;49;00m[33m"[39;49;00m, [[33m"[39;49;00m[33mdataclass[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mpydantic[39;49;00m[33m"[39;49;00m])[90m[39;49;00m
+ [94mdef[39;49;00m[90m [39;49;00m[92mtest_unbounded_integer_round_trip[39;49;00m(tmp_path, backend):[90m[39;49;00m
+ schema = ([90m[39;49;00m
+ pathlib.Path([91m__file__[39;49;00m).resolve().parents[[94m3[39;49;00m][90m[39;49;00m
+ / [33m"[39;49;00m[33mresearch/fixtures/wave5/unbounded_integer.xsd[39;49;00m[33m"[39;49;00m[90m[39;49;00m
+ )[90m[39;49;00m
+ subprocess.run([90m[39;49;00m
+ [[90m[39;49;00m
+> [96mstr[39;49;00m(_get_polyxml_bin()),[90m[39;49;00m
+ ^^^^^^^^^^^^^^^^^^[90m[39;49;00m
+ [33m"[39;49;00m[33mgenerate[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [96mstr[39;49;00m(schema),[90m[39;49;00m
+ [33m"[39;49;00m[33m--lang[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mpython[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33m--backend[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ backend,[90m[39;49;00m
+ [33m"[39;49;00m[33m--out[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [96mstr[39;49;00m(tmp_path),[90m[39;49;00m
+ ],[90m[39;49;00m
+ check=[94mTrue[39;49;00m,[90m[39;49;00m
+ capture_output=[94mTrue[39;49;00m,[90m[39;49;00m
+ )[90m[39;49;00m
+
+[1m[31mtests/test_generated_models.py[0m:915:
+_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
+
+ [0m[94mdef[39;49;00m[90m [39;49;00m[92m_get_polyxml_bin[39;49;00m() -> pathlib.Path:[90m[39;49;00m
+ repo_root = pathlib.Path([91m__file__[39;49;00m).parent.parent.parent.parent[90m[39;49;00m
+ exe_name = [33m"[39;49;00m[33mpolyxml.exe[39;49;00m[33m"[39;49;00m [94mif[39;49;00m sys.platform == [33m"[39;49;00m[33mwin32[39;49;00m[33m"[39;49;00m [94melse[39;49;00m [33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m[90m[39;49;00m
+ candidates = [[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mdebug[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mrelease[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ ][90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+ which_path = shutil.which(exe_name) [95mor[39;49;00m shutil.which([33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+ [94mif[39;49;00m which_path:[90m[39;49;00m
+ [94mreturn[39;49;00m pathlib.Path(which_path)[90m[39;49;00m
+ [90m[39;49;00m
+ [90m# Attempt on-the-fly compilation via cargo if not found[39;49;00m[90m[39;49;00m
+ subprocess.run([90m[39;49;00m
+ [[33m"[39;49;00m[33mcargo[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mbuild[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33m-p[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mpolyxml-cli[39;49;00m[33m"[39;49;00m],[90m[39;49;00m
+ cwd=repo_root,[90m[39;49;00m
+ check=[94mTrue[39;49;00m,[90m[39;49;00m
+ capture_output=[94mTrue[39;49;00m,[90m[39;49;00m
+ )[90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+> [94mraise[39;49;00m [96mFileNotFoundError[39;49;00m([33mf[39;49;00m[33m"[39;49;00m[33mpolyxml CLI binary could not be found or built at [39;49;00m[33m{[39;49;00mcandidates[33m}[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+[1m[31mE FileNotFoundError: polyxml CLI binary could not be found or built at [PosixPath('/home/bailey/github/polyxml-default-literals/target/debug/polyxml'), PosixPath('/home/bailey/github/polyxml-default-literals/target/release/polyxml')][0m
+
+[1m[31mtests/test_generated_models.py[0m:288: FileNotFoundError
+[31m[1m_________________ test_unbounded_integer_round_trip[pydantic] __________________[0m
+
+tmp_path = PosixPath('/tmp/pytest-of-bailey/pytest-14/test_unbounded_integer_round_t1')
+backend = 'pydantic'
+
+ [0m[37m@pytest[39;49;00m.mark.parametrize([33m"[39;49;00m[33mbackend[39;49;00m[33m"[39;49;00m, [[33m"[39;49;00m[33mdataclass[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mpydantic[39;49;00m[33m"[39;49;00m])[90m[39;49;00m
+ [94mdef[39;49;00m[90m [39;49;00m[92mtest_unbounded_integer_round_trip[39;49;00m(tmp_path, backend):[90m[39;49;00m
+ schema = ([90m[39;49;00m
+ pathlib.Path([91m__file__[39;49;00m).resolve().parents[[94m3[39;49;00m][90m[39;49;00m
+ / [33m"[39;49;00m[33mresearch/fixtures/wave5/unbounded_integer.xsd[39;49;00m[33m"[39;49;00m[90m[39;49;00m
+ )[90m[39;49;00m
+ subprocess.run([90m[39;49;00m
+ [[90m[39;49;00m
+> [96mstr[39;49;00m(_get_polyxml_bin()),[90m[39;49;00m
+ ^^^^^^^^^^^^^^^^^^[90m[39;49;00m
+ [33m"[39;49;00m[33mgenerate[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [96mstr[39;49;00m(schema),[90m[39;49;00m
+ [33m"[39;49;00m[33m--lang[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33mpython[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [33m"[39;49;00m[33m--backend[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ backend,[90m[39;49;00m
+ [33m"[39;49;00m[33m--out[39;49;00m[33m"[39;49;00m,[90m[39;49;00m
+ [96mstr[39;49;00m(tmp_path),[90m[39;49;00m
+ ],[90m[39;49;00m
+ check=[94mTrue[39;49;00m,[90m[39;49;00m
+ capture_output=[94mTrue[39;49;00m,[90m[39;49;00m
+ )[90m[39;49;00m
+
+[1m[31mtests/test_generated_models.py[0m:915:
+_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
+
+ [0m[94mdef[39;49;00m[90m [39;49;00m[92m_get_polyxml_bin[39;49;00m() -> pathlib.Path:[90m[39;49;00m
+ repo_root = pathlib.Path([91m__file__[39;49;00m).parent.parent.parent.parent[90m[39;49;00m
+ exe_name = [33m"[39;49;00m[33mpolyxml.exe[39;49;00m[33m"[39;49;00m [94mif[39;49;00m sys.platform == [33m"[39;49;00m[33mwin32[39;49;00m[33m"[39;49;00m [94melse[39;49;00m [33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m[90m[39;49;00m
+ candidates = [[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mdebug[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ repo_root / [33m"[39;49;00m[33mtarget[39;49;00m[33m"[39;49;00m / [33m"[39;49;00m[33mrelease[39;49;00m[33m"[39;49;00m / exe_name,[90m[39;49;00m
+ ][90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+ which_path = shutil.which(exe_name) [95mor[39;49;00m shutil.which([33m"[39;49;00m[33mpolyxml[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+ [94mif[39;49;00m which_path:[90m[39;49;00m
+ [94mreturn[39;49;00m pathlib.Path(which_path)[90m[39;49;00m
+ [90m[39;49;00m
+ [90m# Attempt on-the-fly compilation via cargo if not found[39;49;00m[90m[39;49;00m
+ subprocess.run([90m[39;49;00m
+ [[33m"[39;49;00m[33mcargo[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mbuild[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33m-p[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mpolyxml-cli[39;49;00m[33m"[39;49;00m],[90m[39;49;00m
+ cwd=repo_root,[90m[39;49;00m
+ check=[94mTrue[39;49;00m,[90m[39;49;00m
+ capture_output=[94mTrue[39;49;00m,[90m[39;49;00m
+ )[90m[39;49;00m
+ [94mfor[39;49;00m c [95min[39;49;00m candidates:[90m[39;49;00m
+ [94mif[39;49;00m c.exists():[90m[39;49;00m
+ [94mreturn[39;49;00m c[90m[39;49;00m
+ [90m[39;49;00m
+> [94mraise[39;49;00m [96mFileNotFoundError[39;49;00m([33mf[39;49;00m[33m"[39;49;00m[33mpolyxml CLI binary could not be found or built at [39;49;00m[33m{[39;49;00mcandidates[33m}[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
+[1m[31mE FileNotFoundError: polyxml CLI binary could not be found or built at [PosixPath('/home/bailey/github/polyxml-default-literals/target/debug/polyxml'), PosixPath('/home/bailey/github/polyxml-default-literals/target/release/polyxml')][0m
+
+[1m[31mtests/test_generated_models.py[0m:288: FileNotFoundError
+================================ tests coverage ================================
+_______________ coverage: platform linux, python 3.14.4-final-0 ________________
+
+Name Stmts Miss Branch BrPart Cover Missing
+---------------------------------------------------
+TOTAL 181 0 58 0 100%
+
+3 files skipped due to complete coverage.
+[32mRequired test coverage of 100% reached. Total coverage: 100.00%
+[0m[36m[1m=========================== short test summary info ============================[0m
+[31mFAILED[0m tests/test_generated_models.py::[1mtest_generated_abstract_root_preserves_derived_payload[dataclass][0m - FileNotFoundError: polyxml CLI binary could not be found or built at [Posix...
+[31mFAILED[0m tests/test_generated_models.py::[1mtest_generated_abstract_root_preserves_derived_payload[pydantic][0m - FileNotFoundError: polyxml CLI binary could not be found or built at [Posix...
+[31mFAILED[0m tests/test_generated_models.py::[1mtest_roots_with_the_same_local_name_in_distinct_namespaces[0m - FileNotFoundError: polyxml CLI binary could not be found or built at [Posix...
+[31mFAILED[0m tests/test_generated_models.py::[1mtest_particle_codec_regressions[nested_sequence_choice.xsd-Root-documents0-dataclass][0m - FileNotFoundError: polyxml CLI binary could not be found or built at [Posix...
+[31mFAILED[0m tests/test_generated_models.py::[1mtest_particle_codec_regressions[nested_sequence_choice.xsd-Root-documents0-pydantic][0m - FileNotFoundError: polyxml CLI binary could not be found or built at [Posix...
+[31mFAILED[0m tests/test_generated_models.py::[1mtest_particle_codec_regressions[repeated_sequence.xsd-Root-documents1-dataclass][0m - FileNotFoundError: polyxml CLI binary could not be found or built at [Posix...
+[31mFAILED[0m tests/test_generated_models.py::[1mtest_particle_codec_regressions[repeated_sequence.xsd-Root-documents1-pydantic][0m - FileNotFoundError: polyxml CLI binary could not be found or built at [Posix...
+[31mFAILED[0m tests/test_generated_models.py::[1mtest_particle_codec_regressions[substitution_group.xsd-Portfolio-documents2-dataclass][0m - FileNotFoundError: polyxml CLI binary could not be found or built at [Posix...
+[31mFAILED[0m tests/test_generated_models.py::[1mtest_particle_codec_regressions[substitution_group.xsd-Portfolio-documents2-pydantic][0m - FileNotFoundError: polyxml CLI binary could not be found or built at [Posix...
+[31mFAILED[0m tests/test_generated_models.py::[1mtest_particle_codec_regressions[choice_branch_cardinality.xsd-Root-documents3-dataclass][0m - FileNotFoundError: polyxml CLI binary could not be found or built at [Posix...
+[31mFAILED[0m tests/test_generated_models.py::[1mtest_particle_codec_regressions[choice_branch_cardinality.xsd-Root-documents3-pydantic][0m - FileNotFoundError: polyxml CLI binary could not be found or built at [Posix...
+[31mFAILED[0m tests/test_generated_models.py::[1mtest_particle_codec_regressions[wave6/duplicate_choice_branch_name.xsd-Person-documents4-dataclass][0m - FileNotFoundError: polyxml CLI binary could not be found or built at [Posix...
+[31mFAILED[0m tests/test_generated_models.py::[1mtest_particle_codec_regressions[wave6/duplicate_choice_branch_name.xsd-Person-documents4-pydantic][0m - FileNotFoundError: polyxml CLI binary could not be found or built at [Posix...
+[31mFAILED[0m tests/test_generated_models.py::[1mtest_codecs_flag_disabled[0m - FileNotFoundError: polyxml CLI binary could not be found or built at [Posix...
+[31mFAILED[0m tests/test_generated_models.py::[1mtest_generated_models_reject_general_entities[dataclass][0m - FileNotFoundError: polyxml CLI binary could not be found or built at [Posix...
+[31mFAILED[0m tests/test_generated_models.py::[1mtest_generated_models_reject_general_entities[pydantic][0m - FileNotFoundError: polyxml CLI binary could not be found or built at [Posix...
+[31mFAILED[0m tests/test_generated_models.py::[1mtest_element_defaults_preserve_absence[dataclass][0m - FileNotFoundError: polyxml CLI binary could not be found or built at [Posix...
+[31mFAILED[0m tests/test_generated_models.py::[1mtest_element_defaults_preserve_absence[pydantic][0m - FileNotFoundError: polyxml CLI binary could not be found or built at [Posix...
+[31mFAILED[0m tests/test_generated_models.py::[1mtest_fixed_values_validate_input_and_output[dataclass][0m - FileNotFoundError: polyxml CLI binary could not be found or built at [Posix...
+[31mFAILED[0m tests/test_generated_models.py::[1mtest_fixed_values_validate_input_and_output[pydantic][0m - FileNotFoundError: polyxml CLI binary could not be found or built at [Posix...
+[31mFAILED[0m tests/test_generated_models.py::[1mtest_separate_choice_groups_enforce_constraints[dataclass][0m - FileNotFoundError: polyxml CLI binary could not be found or built at [Posix...
+[31mFAILED[0m tests/test_generated_models.py::[1mtest_separate_choice_groups_enforce_constraints[pydantic][0m - FileNotFoundError: polyxml CLI binary could not be found or built at [Posix...
+[31mFAILED[0m tests/test_generated_models.py::[1mtest_repeated_sequence_constraints[dataclass][0m - FileNotFoundError: polyxml CLI binary could not be found or built at [Posix...
+[31mFAILED[0m tests/test_generated_models.py::[1mtest_repeated_sequence_constraints[pydantic][0m - FileNotFoundError: polyxml CLI binary could not be found or built at [Posix...
+[31mFAILED[0m tests/test_generated_models.py::[1mtest_typed_lexical_lists[dataclass][0m - FileNotFoundError: polyxml CLI binary could not be found or built at [Posix...
+[31mFAILED[0m tests/test_generated_models.py::[1mtest_typed_lexical_lists[pydantic][0m - FileNotFoundError: polyxml CLI binary could not be found or built at [Posix...
+[31mFAILED[0m tests/test_generated_models.py::[1mtest_named_lexical_list_item_constraints[dataclass][0m - FileNotFoundError: polyxml CLI binary could not be found or built at [Posix...
+[31mFAILED[0m tests/test_generated_models.py::[1mtest_named_lexical_list_item_constraints[pydantic][0m - FileNotFoundError: polyxml CLI binary could not be found or built at [Posix...
+[31mFAILED[0m tests/test_generated_models.py::[1mtest_repeated_choice_branch_boundaries[dataclass][0m - FileNotFoundError: polyxml CLI binary could not be found or built at [Posix...
+[31mFAILED[0m tests/test_generated_models.py::[1mtest_repeated_choice_branch_boundaries[pydantic][0m - FileNotFoundError: polyxml CLI binary could not be found or built at [Posix...
+[31mFAILED[0m tests/test_generated_models.py::[1mtest_duplicate_choice_names_validate_branch_shapes[dataclass][0m - FileNotFoundError: polyxml CLI binary could not be found or built at [Posix...
+[31mFAILED[0m tests/test_generated_models.py::[1mtest_duplicate_choice_names_validate_branch_shapes[pydantic][0m - FileNotFoundError: polyxml CLI binary could not be found or built at [Posix...
+[31mFAILED[0m tests/test_generated_models.py::[1mtest_abstract_substitution_head_is_rejected[dataclass][0m - FileNotFoundError: polyxml CLI binary could not be found or built at [Posix...
+[31mFAILED[0m tests/test_generated_models.py::[1mtest_abstract_substitution_head_is_rejected[pydantic][0m - FileNotFoundError: polyxml CLI binary could not be found or built at [Posix...
+[31mFAILED[0m tests/test_generated_models.py::[1mtest_unbounded_integer_round_trip[dataclass][0m - FileNotFoundError: polyxml CLI binary could not be found or built at [Posix...
+[31mFAILED[0m tests/test_generated_models.py::[1mtest_unbounded_integer_round_trip[pydantic][0m - FileNotFoundError: polyxml CLI binary could not be found or built at [Posix...
+[31mERROR[0m tests/test_generated_models.py::[1mtest_declared_root_models[dataclass][0m - FileNotFoundError: polyxml CLI binary could not be found or built at [Posix...
+[31mERROR[0m tests/test_generated_models.py::[1mtest_declared_root_models[pydantic][0m - FileNotFoundError: polyxml CLI binary could not be found or built at [Posix...
+[31mERROR[0m tests/test_generated_models.py::[1mtest_generated_dataclass_deserialization_and_serialization[0m - FileNotFoundError: polyxml CLI binary could not be found or built at [Posix...
+[31mERROR[0m tests/test_generated_models.py::[1mtest_generated_pydantic_deserialization_and_serialization[0m - FileNotFoundError: polyxml CLI binary could not be found or built at [Posix...
+[31mERROR[0m tests/test_generated_models.py::[1mtest_generated_dataclass_codecs[0m - FileNotFoundError: polyxml CLI binary could not be found or built at [Posix...
+[31m[31m[1m36 failed[0m, [32m71 passed[0m, [31m[1m5 errors[0m[31m in 21.41s[0m[0m
diff --git a/research/data/runtime-followups-2026-10-03/default-literals/quality-gate.txt b/research/data/runtime-followups-2026-10-03/default-literals/quality-gate.txt
new file mode 100644
index 0000000..a3ebf79
--- /dev/null
+++ b/research/data/runtime-followups-2026-10-03/default-literals/quality-gate.txt
@@ -0,0 +1,769 @@
+memcap: <=7790 MiB (60% of 12984 MiB available) [systemd MemoryMax, swap off]
+[0;34m==> [1/6] Running Rust format check (cargo fmt)...[0m
+[0;34m==> [2/6] Running Rust Clippy (cargo clippy -D warnings)...[0m
+ Compiling pyo3-ffi v0.29.2
+ Compiling pyo3 v0.29.2
+ Checking polyxml-python v0.34.6 (/home/bailey/github/polyxml-default-literals/crates/polyxml-python)
+ Finished `dev` profile [unoptimized + debuginfo] target(s) in 1.92s
+[0;34m==> [3/6] Running Rust workspace tests (cargo test)...[0m
+ Compiling pyo3-ffi v0.29.2
+ Compiling pyo3 v0.29.2
+ Compiling polyxml-python v0.34.6 (/home/bailey/github/polyxml-default-literals/crates/polyxml-python)
+ Finished `test` profile [unoptimized + debuginfo] target(s) in 2.65s
+ Running unittests src/lib.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/polyxml-675b717e531d04ed)
+
+running 16 tests
+test integer::tests::comparison_uses_sign_and_magnitude ... ok
+test ir::root_selection_tests::inherited_base_does_not_select_sibling_types ... ok
+test ir::root_selection_tests::rejects_missing_and_ambiguous_roots ... ok
+test ir::root_selection_tests::keeps_references_descendants_and_substitutions ... ok
+test ir::chunker::tests::test_topological_scc_chunking_dag_invariants ... ok
+test json::tests::test_json_deserialization_accepts_python_field_names ... ok
+test json::tests::test_json_roundtrip_primitives ... ok
+test tests::test_deserialization_does_not_confuse_xmlns_with_attributes ... ok
+test tests::test_nested_elements_and_lists ... ok
+test tests::test_namespaced_serialization ... ok
+test ir::root_selection_tests::field_reference_keeps_substitution_group_members ... ok
+test tests::test_roundtrip_serialization_deserialization ... ok
+test tests::test_streaming_xml_item_stream ... ok
+test pattern::tests::bounded_cache_evicts_and_retains_invalid_results ... ok
+test pattern::tests::cache_matches_uncached_regex_under_churn_and_concurrency ... ok
+test pattern::tests::cyclic_working_set_above_capacity_keeps_reusing_entries ... ok
+
+test result: ok. 16 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.15s
+
+ Running tests/test_adversarial_identifiers.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/test_adversarial_identifiers-34056256ccaa17cb)
+
+running 7 tests
+test test_rust_adversarial_compilation ... ok
+test test_python_adversarial_compilation ... ok
+test test_go_adversarial_compilation ... ok
+test test_cpp_adversarial_compilation ... ok
+test test_java_adversarial_compilation ... ok
+test test_typescript_adversarial_compilation ... ok
+test test_csharp_adversarial_compilation ... ok
+
+test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.25s
+
+ Running tests/test_any_attribute.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/test_any_attribute-d5795d9c5e0fdefd)
+
+running 1 test
+test test_any_attribute_schema_parser_and_runtime_roundtrip ... ok
+
+test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
+
+ Running tests/test_any_element.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/test_any_element-1fb225d6616938e8)
+
+running 2 tests
+test test_any_element_go_codegen ... ok
+test test_any_element_schema_parser_and_runtime_roundtrip ... ok
+
+test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
+
+ Running tests/test_conformance.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/test_conformance-0b37810d65fedfce)
+
+running 4 tests
+test test_soap_envelope_conformance ... ok
+test test_ubl_invoice_conformance ... ok
+test test_atom_feed_conformance ... ok
+test test_streaming_catalog_conformance ... ok
+
+test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
+
+ Running tests/test_core.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/test_core-f4cc1079f88df2bc)
+
+running 9 tests
+test integer_mappings_keep_fixed_width_builtins ... ok
+test test_gregorian_partial_date_lexical_validation ... ok
+test test_error_handling_invalid_scalars ... ok
+test test_all_scalar_types ... ok
+test test_roundtrip_serialization_with_indentation ... ok
+test test_malformed_xml_syntax_error ... ok
+test test_xsi_nil_handling ... ok
+test unbounded_integers_round_trip_and_compare_exact_bounds ... ok
+test test_xsd_gregorian_fields_round_trip_and_reject_invalid_dates ... ok
+
+test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
+
+ Running tests/test_cpp_codegen.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/test_cpp_codegen-a4cd5571504c64d5)
+
+running 14 tests
+test simple_aliases_follow_their_base_types ... ok
+test test_cpp_cmake_modules_file_set ... ok
+test test_cpp_cmake_and_meson_generation ... ok
+test test_cpp_mode_and_backend_from_str_loose ... ok
+test test_cpp_glaze_backend_meta_generation ... ok
+test test_cpp_sanitization ... ok
+test mixed_content_mutual_cycle_compiles ... ok
+test mixed_content_self_cycle_compiles ... ok
+Inheritance test passed.
+test test_cpp_inheritance_codegen ... ok
+Recursive tree unique_ptr passed.
+test test_cpp_recursive_cycle_unique_ptr ... ok
+All C++20 tests passed successfully.
+test test_cpp_struct_and_enum_codegen_compilation ... ok
+Choice pattern matching passed.
+test test_cpp_choice_variant_compilation ... ok
+test test_cpp_modules_compilation ... ok
+ISO 20022 pacs.008 C++20 test passed.
+test test_cpp_from_xsd_schema ... ok
+
+test result: ok. 14 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.86s
+
+ Running tests/test_csharp_codegen.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/test_csharp_codegen-cf32febf6e7f0777)
+
+running 20 tests
+test choice_variants_avoid_record_member_names ... ok
+test test_csharp_record_kind_from_str_loose ... ok
+test test_csharp_any_attribute_codegen ... ok
+test emits_unrestricted_simple_types_and_validates_empty_records ... ok
+test test_csharp_sanitization ... ok
+test test_csharp_date_or_datetime_lexical_union ... ok
+test test_csharp_sequence_nested_inside_choice_codegen ... ok
+test test_csharp_source_gen_context ... ok
+ Determining projects to restore...
+ Restored /tmp/.tmp51oDF2/PaymentsApp.csproj (in 222 ms).
+ PaymentsApp -> /tmp/.tmp51oDF2/bin/Debug/net8.0/PaymentsApp.dll
+
+Build succeeded.
+ 0 Warning(s)
+ 0 Error(s)
+
+Time Elapsed 00:00:01.31
+Choice pattern matching and XML serialization passed!
+test test_csharp_choice_polymorphic_hierarchy ... ok
+test unbounded_integer_xml_preserves_digits ... ok
+ Determining projects to restore...
+ Restored /tmp/.tmp6wrcLy/CrmApp.csproj (in 169 ms).
+ CrmApp -> /tmp/.tmp6wrcLy/bin/Debug/net8.0/CrmApp.dll
+
+Build succeeded.
+ 0 Warning(s)
+ 0 Error(s)
+
+Time Elapsed 00:00:01.04
+Customer C# tests passed cleanly!
+test test_csharp_records_and_enums_generation ... ok
+ Determining projects to restore...
+ Restored /tmp/.tmpKT1yLL/TreeApp.csproj (in 166 ms).
+ TreeApp -> /tmp/.tmpKT1yLL/bin/Debug/net8.0/TreeApp.dll
+
+Build succeeded.
+ 0 Warning(s)
+ 0 Error(s)
+
+Time Elapsed 00:00:01.02
+Recursive tree C# tests passed cleanly!
+test test_csharp_recursive_cycle ... ok
+test test_csharp_mutable_inheritance_roundtrip ... ok
+test test_csharp_mutable_wrappers_and_choices_without_validation ... ok
+test test_csharp_simple_content_class_validator_and_unsealed_records ... ok
+test fixed_values_are_enforced_on_read_and_write ... ok
+test element_defaults_preserve_absence_and_empty_presence ... ok
+test lexical_union_attributes_round_trip ... ok
+test nillable_enum_collection_round_trips ... ok
+test particle_wire_structure_round_trips ... ok
+
+test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 50.88s
+
+ Running tests/test_default_literal_codegen.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/test_default_literal_codegen-4c3562e7020c30db)
+
+running 1 test
+test generated_string_defaults_and_fixed_values_preserve_xml_characters ... ok
+
+test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.01s
+
+ Running tests/test_enum_literal_codegen.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/test_enum_literal_codegen-0c92c71c8d4587d6)
+
+running 1 test
+test enum_literals_compile_and_preserve_values_in_all_seven_languages ... ok
+
+test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.40s
+
+ Running tests/test_go_codegen.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/test_go_codegen-005c45ed4341be87)
+
+running 25 tests
+test referenced_element_uses_declared_type_after_includes ... ok
+test root_alias_names_are_unique_after_go_normalization ... ok
+test test_go_any_attribute_codegen ... ok
+test test_go_backend_from_str_loose ... ok
+go: creating new go.mod: module payments
+go: to add module requirements and sums:
+ go mod tidy
+test imported_ordered_types_do_not_add_unused_bytes_import ... ok
+test test_go_date_or_datetime_lexical_union ... ok
+test test_go_easyjson_backend ... ok
+test test_go_enum_only_schema_omits_unused_xml_import ... ok
+test separate_choices_enforce_each_group ... ok
+go: creating new go.mod: module tree
+go: to add module requirements and sums:
+ go mod tidy
+test roots_and_union_attributes_round_trip ... ok
+test test_go_sanitization ... ok
+test test_go_sonic_backend ... ok
+go: creating new go.mod: module crm
+go: to add module requirements and sums:
+ go mod tidy
+test abstract_substitution_heads_are_rejected ... ok
+=== RUN TestChoiceMutualExclusivity
+ payments_test.go:44: Correctly rejected concurrent choice branches: choice ContactChoice mutual exclusivity violation: multiple branches populated (2)
+--- PASS: TestChoiceMutualExclusivity (0.00s)
+PASS
+ok payments 0.004s
+test test_go_choice_mutual_exclusivity ... ok
+test duplicate_choice_names_reject_invalid_branch_shapes ... ok
+test test_go_abstract_xsi_type_dispatch ... ok
+test nested_lexical_unions_compile_and_round_trip_in_go ... ok
+test repeated_choice_branch_rejects_mixed_and_empty_selections ... ok
+test repeated_sequence_groups_enforce_bounds_and_order ... ok
+test temporal_scalars_preserve_xsd_lexical_values ... ok
+test test_go_namespaced_element_ref_matching ... ok
+=== RUN TestRecursiveTree
+--- PASS: TestRecursiveTree (0.00s)
+PASS
+ok tree 0.002s
+test test_go_recursive_cycle_pointers ... ok
+=== RUN TestCustomerRoundtrip
+--- PASS: TestCustomerRoundtrip (0.00s)
+PASS
+ok crm 0.002s
+test test_go_struct_and_enum_generation ... ok
+test unbounded_integer_xml_preserves_digits ... ok
+test ordered_particles_and_choice_branches_round_trip ... ok
+
+test result: ok. 25 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.03s
+
+ Running tests/test_java_codegen.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/test_java_codegen-a6078e165fc64681)
+
+running 17 tests
+test test_java_jackson_backend_enum_annotations ... ok
+test test_java_identifier_sanitization ... ok
+test test_java_jackson_backend_from_str_loose ... ok
+test test_direct_codec_rejects_wildcards_and_name_collisions ... ok
+test test_java_bean_validation_annotations_are_opt_in ... ok
+test test_java_jackson_backend_struct_annotations ... ok
+test test_java_jackson_backend_simple_type_annotations ... ok
+test test_java_jackson_backend_union_annotations ... ok
+test test_java_plain_record_inlines_base_fields ... ok
+test jackson3_preserves_core_annotations_and_maps_record_text ... ok
+test test_java_sealed_interface_choice ... ok
+test test_java_module_container_class ... ok
+test test_java_records_and_enums_generation ... ok
+test test_java_plain_record_extension_javac_execute ... ok
+test test_java_record_builder_and_nested_codec_execute ... ok
+test test_java_mutable_builders_and_direct_codecs_execute ... ok
+test test_java_direct_nil_lists_choices_and_namespaces ... ok
+
+test result: ok. 17 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.43s
+
+ Running tests/test_json.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/test_json-74440efee0e911e7)
+
+running 4 tests
+test test_polyvalue_direct_json_methods ... ok
+test test_json_nested_objects_and_lists ... ok
+test test_json_primitives_and_alias_modes ... ok
+test test_json_scalar_coercion ... ok
+
+test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
+
+ Running tests/test_lexical_lists.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/test_lexical_lists-0f6750d9c4bf9a3c)
+
+running 2 tests
+test named_list_items_enforce_facets_and_enumerations ... ok
+test typed_lexical_lists_round_trip_across_codecs ... ok
+
+test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.31s
+
+ Running tests/test_lexical_union_codegen.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/test_lexical_union_codegen-3c208893561d2732)
+
+running 2 tests
+test lexical_union_xml_selects_first_valid_member_and_round_trips ... ok
+test lexical_unions_are_typed_in_all_targets ... ok
+
+test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
+
+ Running tests/test_mixed_content.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/test_mixed_content-1a697ad935ae2797)
+
+running 5 tests
+test mixed_items_field_avoids_existing_attribute_name ... ok
+test mixed_content_preserves_nested_child_order ... ok
+test mixed_content_preserves_text_and_child_order ... ok
+test parser_builds_ordered_mixed_content_union ... ok
+test generated_models_keep_typed_content_items_in_all_targets ... ok
+
+test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
+
+ Running tests/test_pattern_codegen.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/test_pattern_codegen-5eee5f9fe2ed3d1a)
+
+running 9 tests
+test generated_typescript_pattern_validation_all_backends ... ok
+test pattern_restrictions_preserve_or_groups_and_inherited_and_steps ... ok
+test gregorian_primitives_emit_validated_types_across_targets ... ok
+test generated_python_pattern_validation ... ok
+test generated_go_pattern_validation_and_xml_roundtrip ... ok
+test generated_rust_pattern_validation_and_xml_roundtrip ... ok
+test generated_java_pattern_validation_and_direct_codecs ... ok
+test generated_cpp_pattern_validation ... ok
+test generated_csharp_pattern_validation ... ok
+
+test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.05s
+
+ Running tests/test_python_codegen.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/test_python_codegen-cc734e908fb39fb6)
+
+running 16 tests
+test test_identifier_sanitization ... ok
+test multiline_xsd_documentation_stays_inside_python_comments ... ok
+test test_python_abstract_meta_emission ... ok
+test test_python_any_attribute_codegen ... ok
+test test_python_codecs_generation ... ok
+test test_python_choice_union_codegen ... ok
+test test_python_dataclass_codegen ... ok
+test test_python_any_element_codegen ... ok
+test test_python_generated_tag_and_custom_header ... ok
+test test_python_pydantic_codegen_with_facets ... ok
+test test_python_recursive_type_codegen ... ok
+test test_python_aot_codegen ... ok
+test test_python_derived_meta_inheritance ... ok
+test test_python_simplecontent_default_factory ... ok
+test test_python_sequence_nested_inside_choice_codegen ... ok
+test quoted_docstrings_preserve_text_and_remain_valid_python ... ok
+
+test result: ok. 16 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s
+
+ Running tests/test_qualified_attributes.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/test_qualified_attributes-f8397a31cf1ecf15)
+
+running 5 tests
+test global_attribute_references_round_trip_by_namespace ... ok
+test imported_inline_global_attribute_enum_round_trips ... ok
+test derived_validators_preserve_base_constraints ... ok
+test inherited_attribute_and_distinct_element_keep_separate_property_names ... ok
+test lexical_dependencies_compile_and_round_trip_without_implicit_imports ... ok
+
+test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 8.28s
+
+ Running tests/test_runtime_fast_paths.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/test_runtime_fast_paths-7bf9091b7252b7db)
+
+running 6 tests
+test repeated_nested_records_validate_their_own_lexical_lists ... ok
+test repeated_lexical_lists_keep_whitespace_validation ... ok
+test lexical_list_formatting_preserves_escaping_empty_lists_and_long_numbers ... ok
+test indexed_scalar_state_preserves_enum_pattern_and_split_text ... ok
+test cached_patterns_keep_raw_restriction_and_trimmed_pattern_semantics ... ok
+test unified_scalar_state_keeps_mixed_branch_order_nil_and_nested_frames ... ok
+
+test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
+
+ Running tests/test_rust_codecs.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/test_rust_codecs-9692e165bd5e14bf)
+
+running 4 tests
+test test_facet_validation_min_max_length ... ok
+test test_order_choice_roundtrip ... ok
+test test_empty_element_codec ... ok
+test test_recursive_boxing_roundtrip ... ok
+
+test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
+
+ Running tests/test_rust_codegen.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/test_rust_codegen-8bce8b4b67c7eca3)
+
+running 26 tests
+test test_rust_attribute_codec_loop_syntax ... ok
+test multiline_docs_and_raw_field_names_are_valid_source ... ok
+test test_rust_choice_union_codegen ... ok
+test test_rust_digit_prefixed_module_sanitization ... ok
+test test_rust_codecs_codegen ... ok
+test test_rust_enum_and_methods ... ok
+test test_rust_extension_base_cycle_cut ... ok
+test test_rust_identifier_sanitization ... ok
+test test_rust_phf_dispatch_uniquifies_like_field_metas ... ok
+test test_rust_owned_codegen ... ok
+test test_rust_phf_dispatch_union_groups_branch_tags ... ok
+test test_rust_recursive_cycle_boxing ... ok
+test test_rust_extension_codecs_decode_and_encode_base_fields ... ok
+test test_rust_extension_inlines_base_fields ... ok
+test test_rust_rkyv_derives ... ok
+test test_rust_zero_copy_codegen ... ok
+test test_rust_topological_scc_chunking ... ok
+test test_rust_simple_type_cycle_resilience ... ok
+test test_rust_simple_content_extension_shadow_rule ... ok
+test test_rust_simple_content_text_codec ... ok
+test test_rust_read_element_text_accumulates_refs_and_cdata ... ok
+test test_rust_phf_dispatch_emission ... ok
+test duplicate_wire_names_keep_distinct_json_values ... ok
+test binary_lexical_values_compile_and_round_trip_in_owned_and_borrowed_modes ... ok
+test empty_modules_compile_without_unused_reexports ... ok
+test named_choice_wrappers_round_trip_without_unreachable_dispatch ... ok
+
+test result: ok. 26 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.07s
+
+ Running tests/test_schema_attribute_entities.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/test_schema_attribute_entities-ce76904e09cb1816)
+
+running 4 tests
+test malformed_attributes_and_undefined_entities_are_errors_even_in_skipped_content ... ok
+test literal_attribute_whitespace_is_normalized_but_character_references_survive ... ok
+test namespace_and_qname_attributes_are_normalized_consistently ... ok
+test attribute_entities_reach_enum_facets_and_defaults_in_value_space ... ok
+
+test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
+
+ Running tests/test_schema_audit.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/test_schema_audit-24992dfb5b4a626c)
+
+running 13 tests
+test derived_simple_type_inherits_base_patterns ... ok
+test duplicate_enumeration_values_are_deduped ... ok
+test distinct_values_with_colliding_variant_names_stay_unique ... ok
+test quick_xml_serde_skips_unknown_elements ... ok
+test all_languages_disambiguate_flat_collision ... ok
+test generated_rust_has_no_deny_unknown_fields ... ok
+test named_group_reference_fields_are_parsed ... ok
+test nested_inline_complex_type_is_extracted_not_leaked ... ok
+test rust_flat_output_has_no_colliding_type_names ... ok
+test simple_content_extension_emits_value_field ... ok
+test chameleon_include_adopts_including_namespace_per_includer ... ok
+test restricted_simple_types_emit_named_aliases ... ok
+test diamond_includes_do_not_duplicate_upa_source_documents ... ok
+
+test result: ok. 13 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
+
+ Running tests/test_schema_ir.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/test_schema_ir-f793c1b9895343c7)
+
+running 20 tests
+test global_attribute_reference_uses_declared_type ... ok
+test consumed_particles_do_not_swallow_following_declarations ... ok
+test schema_errors_preserve_forward_imports_and_annotation_payloads ... ok
+test consumed_child_subtrees_do_not_swallow_following_types ... ok
+test test_language_context_adapter ... ok
+test inline_list_item_types_preserve_enum_and_union_declarations ... ok
+test test_list_fields_do_not_trigger_spurious_cycles ... ok
+test missing_included_schema_is_an_error ... ok
+test schema_for_schemas_declared_types_are_not_unknown_builtins ... ok
+test derived_complex_type_keeps_base_and_bounded_choice ... ok
+test test_tarjan_self_recursive_cycle_detection_and_boxing ... ok
+test test_tarjan_mutual_recursive_cycle_detection_and_boxing ... ok
+test test_parse_lexical_union_member_types_and_inline_members ... ok
+test test_substitution_groups ... ok
+test test_minijinja_template_engine_and_filters ... ok
+test test_parse_complex_type_and_facets ... ok
+test imported_inline_global_attribute_types_are_resolved ... ok
+test xml_prefix_is_available_without_explicit_declaration ... ok
+test test_parse_choice_as_union ... ok
+test test_sequence_nested_inside_choice_preserved_in_ir ... ok
+
+test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
+
+ Running tests/test_security.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/test_security-c3afa670f1d6c619)
+
+running 6 tests
+test test_malformed_unclosed_cdata_rejection ... ok
+test test_numeric_character_references ... ok
+test test_cdata_section_handling ... ok
+test unsupported_general_entities_are_rejected ... ok
+test test_xml_entity_roundtrip_escaping ... ok
+test test_max_depth_recursion_limit ... ok
+
+test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
+
+ Running tests/test_temporal_union.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/test_temporal_union-e25d1f9b83e2fdc4)
+
+running 2 tests
+test go_temporal_union_preserves_branches_and_lexicals ... ok
+test csharp_temporal_union_preserves_branches_and_lexicals ... ok
+
+test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.01s
+
+ Running tests/test_transcoder.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/test_transcoder-6854114408316a2e)
+
+running 6 tests
+test test_schemaless_pretty_transcoding ... ok
+test test_transcoder_errors ... ok
+test test_schemaless_xml_to_json_and_back ... ok
+test test_schemaless_preserves_refs_cdata_and_attr_entities ... ok
+test test_schema_from_ir_transcoding ... ok
+test test_schema_directed_transcoding ... ok
+
+test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
+
+ Running tests/test_ts_codegen.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/test_ts_codegen-4e67290c9758f4d9)
+
+running 9 tests
+test test_ts_backend_from_str_loose ... ok
+test test_ts_identifier_sanitization ... ok
+test test_ts_recursive_cycle_zod_lazy ... ok
+test test_ts_discriminated_union_choice ... ok
+test test_ts_typebox_schema_generation ... ok
+test test_ts_interface_and_enum_codegen ... ok
+test test_ts_valibot_schema_generation ... ok
+test test_ts_zod_schema_generation ... ok
+test mixed_content_inheritance_compiles_with_widened_items ... ok
+
+test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.32s
+
+ Running tests/test_ubl_csharp.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/test_ubl_csharp-b04bc8d2d5f891c2)
+
+running 2 tests
+test unprefixed_xsd_builtin_simple_content_base_uses_default_namespace ... ok
+test multi_namespace_roots_and_inherited_simple_content_compile_and_round_trip ... ok
+
+test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.01s
+
+ Running tests/test_unbounded_choice.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/test_unbounded_choice-7672e62aa5ecca1a)
+
+running 1 test
+go: creating new go.mod: module testmod
+go: to add module requirements and sums:
+ go mod tidy
+=== RUN TestUnboundedChoiceOrder
+--- PASS: TestUnboundedChoiceOrder (0.00s)
+PASS
+ok testmod 0.002s
+test test_unbounded_choice_ir_and_all_targets ... ok
+
+test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.15s
+
+ Running tests/test_upa.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/test_upa-a20019d257c7eac5)
+
+running 6 tests
+test local_form_and_in_scope_qnames_distinguish_namespaces ... ok
+test model_groups_derivation_and_substitution_members_are_checked ... ok
+test imported_groups_and_chameleon_wildcards_keep_source_namespaces ... ok
+test optional_siblings_and_choice_lookahead_violate_upa ... ok
+test all_groups_and_wildcard_namespaces_are_checked ... ok
+test occurrence_ranges_keep_particle_identity_and_count_boundaries ... ok
+
+test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
+
+ Running tests/test_value_constraints.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/test_value_constraints-73eb81a96de588c1)
+
+running 2 tests
+test fixed_constraints_cover_input_and_output_in_value_space ... ok
+test repeated_particle_cardinality_belongs_to_the_group ... ok
+
+test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
+
+ Running tests/test_xsi_type.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/test_xsi_type-2c07a0776bd0ec60)
+
+running 11 tests
+test abstract_type_without_derivations_errors ... ok
+test plain_type_attribute_is_not_mistaken_for_dispatch ... ok
+test abstract_type_requires_concrete_selector ... ok
+test iterparse_dispatches_each_streamed_item ... ok
+test from_ir_flattens_base_fields_and_registers_variants ... ok
+test nested_xsi_type_dispatch_and_round_trip ... ok
+test root_xsi_type_dispatch_including_empty_element ... ok
+test nil_abstract_complex_type_skips_concrete_dispatch ... ok
+test unknown_xsi_type_on_abstract_type_errors ... ok
+test xsi_type_resolves_namespace_inherited_from_parent ... ok
+test variant_serialization_requires_namespaces ... ok
+
+test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
+
+ Running unittests src/lib.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/polyxml-4ccc220bbd6a27a0)
+
+running 2 tests
+test tests::test_c_abi_namespaced_roundtrip ... ok
+test tests::test_c_abi_nested_list_batch_roundtrip ... ok
+
+test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
+
+ Running unittests src/lib.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/polyxml_cli-dabf613ae4318f1b)
+
+running 0 tests
+
+test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
+
+ Running unittests src/main.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/polyxml-cec02944de7101b9)
+
+running 0 tests
+
+test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
+
+ Running tests/test_cli.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/test_cli-714ccf0c30d96734)
+
+running 47 tests
+test fish_completion_filters_values_when_available ... ok
+test manifest_generation_does_not_ignore_cli_overrides ... ok
+Loading manifest: /tmp/.tmpjIemUz/polyxml.toml
+Compiling schema: /tmp/.tmpjIemUz/model.xsd
+ Namespace: urn:app
+ Types: 1 total (1 structs, 0 enums, 0 unions, 0 simple restrictions)
+ Root elements: 0
+Emitting target [csharp] into /tmp/.tmpjIemUz/cs
+Emitting target [ts] into /tmp/.tmpjIemUz/ts
+Emitting target [go] into /tmp/.tmpjIemUz/go
+Emitting target [rust] into /tmp/.tmpjIemUz/rs
+Build finished successfully.
+Parsing schema: /tmp/.tmpWpQzZc/customer.xsd
+test test_cli_build_polyxml_manifest_with_new_features ... ok
+ Namespace: urn:crm
+ Types: 1 total (1 structs, 0 enums, 0 unions, 0 simple restrictions)
+ Root elements: 0
+Code generation complete.
+test test_cli_csharp_source_gen_and_record_struct ... ok
+test test_cli_generate_custom_header_and_generated_tags ... ok
+test test_cli_cpp_modules_and_glaze ... ok
+test test_cli_generate_dry_run ... ok
+test jackson3_cli_and_manifest_emit_equivalent_models ... ok
+test test_cli_generate_help ... ok
+test test_cli_generate_multi_lang ... ok
+test python_features_respect_manifest_false_values_and_backend ... ok
+test imported_substitution_helpers_do_not_require_spurious_module_owners ... ok
+Parsing schema: /tmp/.tmpMChXrp/service.xsd
+test test_cli_help ... ok
+ Namespace: urn:service
+ Types: 1 total (1 structs, 0 enums, 0 unions, 0 simple restrictions)
+ Root elements: 0
+Code generation complete.
+test test_cli_generate_python_backends ... ok
+test retained_imported_ordered_helpers_belong_to_the_unique_namespace_module ... ok
+test test_cli_generate_rust_zero_copy_and_owned ... ok
+Loading manifest: /tmp/.tmpkcpVMJ/polyxml.toml
+Compiling schema: /tmp/.tmpkcpVMJ/schema.xsd
+Parsing schema: /tmp/.tmpMChXrp/service.xsd
+ Types: 1 total (1 structs, 0 enums, 0 unions, 0 simple restrictions)
+ Root elements: 0
+Emitting target [rust] into /tmp/.tmpkcpVMJ/rs
+ Namespace: urn:service
+ Types: 1 total (1 structs, 0 enums, 0 unions, 0 simple restrictions)
+ Root elements: 0
+Code generation complete.
+Emitting target [go] into /tmp/.tmpkcpVMJ/go
+Emitting target [csharp] into /tmp/.tmpkcpVMJ/cs
+Build finished successfully.
+test test_cli_go_easyjson_and_sonic_backend ... ok
+test test_cli_python_aot_generation ... ok
+test test_cli_manifest_custom_header_workspace_and_target_override ... ok
+test completion_candidates_follow_target_validation ... ok
+test test_cli_python_aot_rejects_dataclass_style_and_slots ... ok
+go: creating new go.mod: module crm
+Parsing schema: /tmp/.tmp4LMj9p/event.xsd
+go: to add module requirements and sums:
+ go mod tidy
+ Namespace: urn:events
+ Types: 1 total (1 structs, 0 enums, 0 unions, 0 simple restrictions)
+ Root elements: 0
+Code generation complete.
+test test_cli_multiple_root_element_selection ... ok
+test test_cli_rust_rkyv_feature ... ok
+Parsing schema: /tmp/.tmpEAXA5F/event.xsd
+ Namespace: urn:events
+ Types: 1 total (1 structs, 0 enums, 0 unions, 0 simple restrictions)
+ Root elements: 0
+Code generation complete.
+test test_cli_rust_phf_feature ... ok
+test invalid_schema_grammar_and_types_fail_before_generation ... ok
+test test_cli_validate_valid_and_invalid ... ok
+test test_cli_transcode_bidirectional ... ok
+test bash_completion_filters_values_in_the_shell ... ok
+Parsing schema: /tmp/.tmp96Kaev/item.xsd
+ Namespace: urn:store
+ Types: 1 total (1 structs, 0 enums, 0 unions, 0 simple restrictions)
+ Root elements: 0
+Code generation complete.
+test test_polyxml_toml_manifest_build ... ok
+Parsing schema: /tmp/.tmp96Kaev/item.xsd
+ Namespace: urn:store
+ Types: 1 total (1 structs, 0 enums, 0 unions, 0 simple restrictions)
+ Root elements: 0
+Code generation complete.
+test test_cli_typescript_valibot_and_typebox_backend ... ok
+test unified_help_shows_generation_options ... ok
+test test_cli_root_element_selection ... ok
+test test_root_selection_keeps_imported_module_types ... ok
+test test_java_csharp_model_style_options_and_manifest ... ok
+test unified_manifest_forms_generate_identical_output_and_validate_early ... ok
+test zsh_completion_filters_values_when_available ... ok
+test unsupported_xsd_alternatives_fail_explicitly ... ok
+test validate_and_generate_reject_upa_violations ... ok
+test unified_options_fail_before_schema_io_including_dry_run ... ok
+test unified_supported_backends_and_styles_validate ... ok
+=== RUN TestAccountE2E
+--- PASS: TestAccountE2E (0.00s)
+PASS
+ok crm 0.004s
+test test_cli_go_generation ... ok
+test test_cli_rust_split_units_and_chunking ... ok
+E2E C++20 driver passed!
+test test_cli_cpp_generation ... ok
+test test_cli_java_generation ... ok
+test test_cli_shared_modules_deduplication ... ok
+ Determining projects to restore...
+ Restored /tmp/.tmpDBAA8l/cli_csharp_app/CrmCliApp.csproj (in 195 ms).
+test test_cli_typescript_generation ... ok
+ CrmCliApp -> /tmp/.tmpDBAA8l/cli_csharp_app/bin/Debug/net8.0/CrmCliApp.dll
+
+Build succeeded.
+ 0 Warning(s)
+ 0 Error(s)
+
+Time Elapsed 00:00:01.30
+E2E C# CLI test passed successfully!
+test test_cli_csharp_generation ... ok
+
+test result: ok. 47 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.17s
+
+ Running unittests src/lib.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/polyxml_js-878a75d7b7901cc9)
+
+running 0 tests
+
+test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
+
+ Running unittests src/lib.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/_polyxml-a668b0910babaf29)
+
+running 0 tests
+
+test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
+
+ Running unittests src/lib.rs (/home/bailey/github/PolyXML/target/followup-default-verification/debug/deps/polyxml_wasm-d510c7f48918b595)
+
+running 0 tests
+
+test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
+
+ Doc-tests polyxml
+
+running 0 tests
+
+test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
+
+ Doc-tests polyxml_cli
+
+running 0 tests
+
+test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
+
+ Doc-tests polyxml_wasm
+
+running 0 tests
+
+test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
+
+[0;34m==> [4/6] Compiling Python PyO3 extension (maturin develop)...[0m
+๐น Building a mixed python/rust project
+๐ Found CPython 3.14 at /home/bailey/github/polyxml-default-literals/.venv/bin/python
+๐ Found pyo3 bindings with abi3-py3.12 support
+๐ก Using build options features from pyproject.toml
+Using Python 3.14.4 environment at: /home/bailey/github/polyxml-default-literals/.venv
+Checked 6 packages in 0.55ms
+ Compiling pyo3-ffi v0.29.2
+ Compiling pyo3 v0.29.2
+ Compiling polyxml-python v0.34.6 (/home/bailey/github/polyxml-default-literals/crates/polyxml-python)
+ Finished `dev` profile [unoptimized + debuginfo] target(s) in 2.54s
+๐ฆ Built wheel for abi3 Python โฅ 3.12 to /tmp/.tmpJVA4UN/polyxml-0.34.6-cp312-abi3-linux_x86_64.whl
+โ๏ธ Setting installed package as editable
+๐ Installed polyxml-0.34.6
+[0;34m==> [5/6] Running Python Ruff checks...[0m
+All checks passed!
+10 files already formatted
+[0;34m==> [6/6] Running Python tests with 100% statement & branch coverage...[0m
+[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m [ 62%]
+[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m [100%][0m
+================================ tests coverage ================================
+_______________ coverage: platform linux, python 3.14.4-final-0 ________________
+
+Name Stmts Miss Branch BrPart Cover Missing
+---------------------------------------------------
+TOTAL 181 0 58 0 100%
+
+3 files skipped due to complete coverage.
+[32mRequired test coverage of 100% reached. Total coverage: 100.00%
+[0m[32m[32m[1m115 passed[0m[32m in 0.54s[0m[0m
+[0;32mโจ All PolyXML dual-language quality gates passed![0m
diff --git a/research/data/runtime-followups-2026-10-03/default-literals/seven-backend-cli-smoke.txt b/research/data/runtime-followups-2026-10-03/default-literals/seven-backend-cli-smoke.txt
new file mode 100644
index 0000000..437be78
--- /dev/null
+++ b/research/data/runtime-followups-2026-10-03/default-literals/seven-backend-cli-smoke.txt
@@ -0,0 +1,21 @@
+memcap: <=7775 MiB (60% of 12959 MiB available) [systemd MemoryMax, swap off]
+[0;34m==> Building polyxml CLI binary...[0m
+[0;34m==> Testing code generation across all 7 target ecosystems...[0m
+ โข Rust (--feature zero-copy,rkyv,phf)... [0;32mOK[0m
+ โข Python (dataclasses)... [0;32mOK[0m
+ โข Python (pydantic-v2)... [0;32mOK[0m
+ โข C++20 (headers + glaze)... [0;32mOK[0m
+ โข C++20 (modules)... [0;32mOK[0m
+ โข Java 22+ (standard records)... [0;32mOK[0m
+ โข Java 22+ (jackson)... [0;32mOK[0m
+ โข Java (POJO + builder + direct codec)... [0;32mOK[0m
+ โข TypeScript (zod)... [0;32mOK[0m
+ โข TypeScript (valibot)... [0;32mOK[0m
+ โข TypeScript (typebox)... [0;32mOK[0m
+ โข Go (standard)... [0;32mOK[0m
+ โข Go (sonic)... [0;32mOK[0m
+ โข Go (easyjson)... [0;32mOK[0m
+ โข C# (record class)... [0;32mOK[0m
+ โข C# (record struct + source-gen)... [0;32mOK[0m
+ โข C# (mutable class + source-gen)... [0;32mOK[0m
+[0;32mโจ Multi-target smoke verification passed completely across all 7 ecosystems, but Python rejects its
+source as an unterminated string literal. The default formatter escaped quotes
+without correctly escaping backslashes, referenced whitespace or source line
+separators. Python default/fixed metadata additionally used Rust Debug Unicode
+escapes. Similar gaps existed in C++ string initializers and C# default/fixed
+proxy literals.
+
+Use the existing JSON-compatible literal encoder for Python and C# and the C++
+encoder for its string initializers. C# reparses these lexical values through an
+internal XML element; encode carriage returns as `
` after escaping markup
+so XML line-ending normalization does not change referenced carriage returns.
+
+This fixes literal encoding at these sites. It does not implement missing
+default semantics for other field kinds or backends, and it does not claim that
+all generated pattern/default literal sites have been audited.
+
+## Executed consumers
+
+An independent UTF-8 expected file checks quotes, literal backslash-u text,
+tabs, LF, CR, U+0085, U+2028, accented text and an emoji. Execute generated Python
+dataclasses and Pydantic models, C++ with `-Wall -Wextra -Werror`, and C# with
+`TreatWarningsAsErrors`. Check Python defaults and metadata, the C++ string
+initializer, and C# attribute initialization, empty-element defaults, proxy
+assignment and fixed-value rejection. The C# consumer targets .NET 8 but executes
+on installed .NET 10 with roll-forward; this does not test the minimum runtime.
+The actual CLI-generated Python model also matches the independent value.
+
+## Quality and bounded corpus results
+
+The complete gate passes 327 Rust tests, strict workspace formatting and Clippy,
+Ruff, and 115 Python tests with 100% statement and branch coverage. All seven CLI
+backends pass their emission smoke check; the enum test inherited from #138
+also compiles and executes all seven language consumers.
+
+The first full gate reached Python testing but could not find the CLI it built:
+the helper ignored `CARGO_TARGET_DIR`. It now searches that target and avoids an
+unrelated global CLI when the override is explicit. Three regressions exercise
+absolute/relative targets and building the matching CLI. The smoke script also
+honors the target override. The complete retry passes; both logs are retained.
+
+The companion runner uses the isolated CLI and freshly installed native binding,
+whose paths and SHA-256 hashes are recorded. Its summary and failure tables are
+byte-identical to the entity-fix comparison:
+
+| Sample | Schema expectations passed | Instance round trips passed |
+| --- | ---: | ---: |
+| CType (limit 50; 31 groups available) | 31/31 | 23/28 |
+| AttrDecl (first 50 groups) | 50/50 | 50/50 |
+| NISTXMLSchemaDatatypes (first 100 groups) | 100/100 | 447/452 |
+
+Existing failures remain; these bounded runs do not establish full conformance.
+[Raw verification logs, source probes and hashes](data/runtime-followups-2026-10-03/default-literals/)
+retain the failure preflight and successful retry. Heavy work was serial with
+one Cargo worker under the repository memory cap.
diff --git a/scripts/verify_codegen.sh b/scripts/verify_codegen.sh
index cb2b33c..608824c 100755
--- a/scripts/verify_codegen.sh
+++ b/scripts/verify_codegen.sh
@@ -18,7 +18,7 @@ NC='\033[0m'
echo -e "${BLUE}==> Building polyxml CLI binary...${NC}"
cargo build -p polyxml-cli --quiet
-POLYXML_BIN="${REPO_ROOT}/target/debug/polyxml"
+POLYXML_BIN="${CARGO_TARGET_DIR:-${REPO_ROOT}/target}/debug/polyxml"
TMP_DIR="$(mktemp -d -t polyxml-smoke-XXXXXX)"
trap 'rm -rf "${TMP_DIR}"' EXIT