Skip to content

v7.11.0

Choose a tag to compare

@ArmenSl ArmenSl released this 06 Jul 12:04
b14abeb

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 besser.generators.testgen.TestCaseGenerator emits a pytest + Hypothesis test suite from a DomainModel: structural tests (concrete class, constructor signature, one property per attribute, enumeration literals), Hypothesis property-based tests (st.builds strategy per class, instantiation invariants, attribute setter round-trips, association-multiplicity contracts), and OCL post-condition tests.
  • Output is deterministic (stable timestamp order) — regenerating for an unchanged model yields a byte-identical test_hypothesis.py.
  • Registered in the web editor as Python Test Cases (test_case).

GUI metamodel — input and form semantics

  • Extended besser.BUML.metamodel.gui: new Alert (severity/title/content/dismissible); InputField gains label, placeholder, required, default_value, options (a SelectOption list), min_value, max_value, step, multiple, plus new InputFieldType values; Form gains title, submit_label, show_cancel, cancel_label, columns.
  • The React generator renders the new input components.
  • The web-editor converters handle the new constructs in both directions (json_to_buml and buml_to_json) — export→BUML→re-import keeps alerts, input-field attributes and forms.

Web Modeling Editor

  • GUI input blocks in the No-Code editor palette (frontend #155).
  • Python Test Cases generation menu entry wired to the test_case backend generator (frontend #138).

Internal

  • CI prunes dangling Docker images after the WME deploy step (#566).