def test_model_header(tmp_path): """Load a model with no relationships to test header.""" path = distribution().locate_file("test-models/multiple-messages.gaphor") outfile = tmp_path / "profile.py" generate(path, outfile) assert header in outfile.read_text()
def test_model_with_extension(tmp_path): """Load a model with an extension relationship.""" path = distribution().locate_file("test-models/codegen-extension.gaphor") outfile = tmp_path / "profile.py" generate(path, outfile) extension = """ from gaphor.UML import Class class NewStereotype(Class): pass """ assert extension in outfile.read_text()
def main() -> None: parser = argparse.ArgumentParser() parser.add_argument("modelfile", type=Path, help="gaphor model filename") parser.add_argument("outfile", type=Path, help="python data model filename") parser.add_argument("overrides", type=Path, help="override filename") parser.add_argument("--profile", help="generate a profile", action="store_true") args = parser.parse_args() print(f"Generating {args.outfile} from {args.modelfile}...") print(" (warnings can be ignored)") if args.profile: profile_coder.generate(args.modelfile, args.outfile, args.overrides) else: uml_coder.generate(args.modelfile, args.outfile, args.overrides) byte_compile([str(args.outfile)])