Version 7.11.0¶
Minor release: a new test-case generator and a richer GUI input/form
metamodel. Adds a pytest + Hypothesis test-suite generator and extends the
GUI language with alerts, structured input fields, and forms — wired end-to-end
through the metamodel, the React generator, the bidirectional web-editor
converters, and the Web Modeling Editor. Existing generators’ output for
existing models is unchanged.
Test Case Generator¶
New Test Case Generator (
besser.generators.testgen.TestCaseGenerator) emits apytest+ Hypothesis test suite from aDomainModel. It produces three layers: structural tests (each class is concrete, the constructor signature carries every attribute, onepropertyper attribute, enumeration literals are present), Hypothesis property-based tests (ast.buildsstrategy per class, instantiation invariants, attribute setter round-trips, and association-multiplicity contracts), and OCL post-condition tests translated from each method’s post-conditions.Output is deterministic: model elements are emitted in stable
timestamporder, so regenerating the suite for an unchanged model produces a byte-identicaltest_hypothesis.py.Registered in the web-editor generator registry under
test_case(categoryobject_oriented, outputtest_hypothesis.py) and exposed in the Web Modeling Editor generation menu as Python Test Cases.
GUI metamodel — input and form semantics¶
Extended
besser.BUML.metamodel.gui: a newAlertcomponent (severityviaAlertSeverity,title,content,dismissible);InputFieldgainslabel,placeholder,required,default_value,options(a list ofSelectOption),min_value,max_value,stepandmultiple, alongside additionalInputFieldTypevalues; andFormgainstitle,submit_label,show_cancel,cancel_labelandcolumns.The React generator renders the new input components, so a No-Code GUI diagram that uses them produces working React input controls.
The web-editor converters handle the new constructs in both directions —
json_to_bumlparses them from the editor andbuml_to_jsonserializes them back — so a model exported to B-UML and re-imported keeps its alerts, input-field attributes and forms (the reverse path previously dropped them).
Web Modeling Editor¶
GUI input blocks: the No-Code GUI editor palette gains the new input/alert/form blocks (frontend
#155).Test-case generation: the generation menu offers Python Test Cases, wired to the
test_casebackend generator (frontend#138).
Internal updates¶
CI prunes dangling Docker images after the Web Modeling Editor deploy step (
#566) so the runner disk does not fill up across successive deploys.