mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-28 07:49:59 +00:00
6f90badda8
Several BDD scenarios hardcode absolute representation-item object names
whose trailing number is the IFC STEP line id
(f"Item/{item.is_a()}/{item.id()}"). Those ids drift when file-creation
order changes; a recent shift moved all of them by a uniform -4, so the
scenarios failed with "Item/.../NN does not exist".
The failing step (the_object_name_exists in test_feature.py) dumps the
full bpy.data.objects listing on failure, so the correct current ids are
recoverable directly from the CI log (run 29208793599, tested commit
36e21e882f, an ancestor of HEAD with only a .gitignore commit between).
Renumber to match:
IfcExtrudedAreaSolid/77->73, IfcPolygonalFaceSet/76->72,
IfcVertexPoint/69->65, IfcEdge/72->68, IfcFace/74->70.
Verified against the CI failure dump (a local build produces different
ids, so this is validated by CI's own object listing rather than a local
run). boolean.feature also hardcodes IfcHalfSpaceSolid/90 and panel text
[91] downstream of the failing assertion, which CI never reached and so
never dumped; left as-is to avoid guessing - they will print a fresh dump
next run for a follow-up if still stale.
This change was made with the assistance of an AI tool.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
50 lines
1.8 KiB
Gherkin
50 lines
1.8 KiB
Gherkin
@boolean
|
|
Feature: Boolean
|
|
Manage boolean hierarchies and boolean results
|
|
|
|
Scenario: Ensure added booleans are marked as manual
|
|
Given an empty IFC project
|
|
And I open the "Add" menu
|
|
And I trigger "Add Element"
|
|
And I set the "Definition" property to "IfcElement"
|
|
And I set the "Class" property to "IfcFurniture"
|
|
And I set the "Representation" property to "Custom Extruded Solid"
|
|
And I click "OK"
|
|
And the object "IfcFurniture/Unnamed" exists
|
|
And I toggle edit mode
|
|
And the object "Item/IfcExtrudedAreaSolid/73" exists
|
|
And I open the "Add Item" menu
|
|
When I click "Half Space Solid"
|
|
And the object "Item/IfcHalfSpaceSolid/90" exists
|
|
And I deselect all objects
|
|
And I toggle edit mode
|
|
And I select the object "IfcFurniture/Unnamed"
|
|
And I look at the "Property Sets" panel
|
|
Then I see "BBIM_Boolean"
|
|
And I see "[91]"
|
|
|
|
Scenario: Ensure removed booleans are unmarked as manual
|
|
Given an empty IFC project
|
|
And I open the "Add" menu
|
|
And I trigger "Add Element"
|
|
And I set the "Definition" property to "IfcElement"
|
|
And I set the "Class" property to "IfcFurniture"
|
|
And I set the "Representation" property to "Custom Extruded Solid"
|
|
And I click "OK"
|
|
And the object "IfcFurniture/Unnamed" exists
|
|
And I toggle edit mode
|
|
And the object "Item/IfcExtrudedAreaSolid/73" exists
|
|
And I open the "Add Item" menu
|
|
And I click "Half Space Solid"
|
|
And I deselect all objects
|
|
And I toggle edit mode
|
|
And I select the object "IfcFurniture/Unnamed"
|
|
And I toggle edit mode
|
|
And I select the object "Item/IfcHalfSpaceSolid/90"
|
|
When I delete the selected objects
|
|
And I toggle edit mode
|
|
And I select the object "IfcFurniture/Unnamed"
|
|
And I look at the "Property Sets" panel
|
|
Then I don't see "BBIM_Boolean"
|
|
And I don't see "[91]"
|