From e455f873059eab3cdbe671a65bbd7169b72b5800 Mon Sep 17 00:00:00 2001 From: Gorgious56 Date: Sat, 9 Oct 2021 13:26:23 +0200 Subject: [PATCH] First batch of Pset Templates tests (#1772) --- src/blenderbim/pytest.ini | 1 + .../test/bim/feature/pset_template.feature | 87 +++++++++++++++++++ src/blenderbim/test/bim/test_feature.py | 18 +++- 3 files changed, 103 insertions(+), 3 deletions(-) create mode 100644 src/blenderbim/test/bim/feature/pset_template.feature diff --git a/src/blenderbim/pytest.ini b/src/blenderbim/pytest.ini index 18cf5abd13..9abbd60225 100644 --- a/src/blenderbim/pytest.ini +++ b/src/blenderbim/pytest.ini @@ -5,4 +5,5 @@ markers = geometry owner void + pset_template spatial diff --git a/src/blenderbim/test/bim/feature/pset_template.feature b/src/blenderbim/test/bim/feature/pset_template.feature new file mode 100644 index 0000000000..a9b0a831d4 --- /dev/null +++ b/src/blenderbim/test/bim/feature/pset_template.feature @@ -0,0 +1,87 @@ +@pset_template +Feature: Pset_Template + Covers property sets and property templates creation, edition, deletion. + +Scenario: Add pset template + Given an empty IFC project + When I load a new pset template file + And I press "bim.add_pset_template" + Then nothing happens + +Scenario: Remove pset template + Given an empty IFC project + When I load a new pset template file + And I press "bim.add_pset_template" + And I press "bim.remove_pset_template" + Then nothing happens + +Scenario: Enable editing pset template + Given an empty IFC project + When I load a new pset template file + And I press "bim.add_pset_template" + And I press "bim.enable_editing_pset_template" + Then nothing happens + +Scenario: Edit pset template + Given an empty IFC project + When I load a new pset template file + And I press "bim.add_pset_template" + And I press "bim.enable_editing_pset_template" + And I press "bim.edit_pset_template" + Then nothing happens + +Scenario: Disable editing pset template + Given an empty IFC project + When I load a new pset template file + And I press "bim.add_pset_template" + And I press "bim.enable_editing_pset_template" + And I press "bim.disable_editing_pset_template" + Then nothing happens + +Scenario: Save pset template + Given an empty IFC project + When I load a new pset template file + And I press "bim.save_pset_template_file" + Then nothing happens + +Scenario: Add prop template + Given an empty IFC project + When I load a new pset template file + And I press "bim.add_pset_template" + And I press "bim.add_prop_template" + Then nothing happens + +Scenario: Remove prop template + Given an empty IFC project + When I load a new pset template file + And I press "bim.add_pset_template" + And I press "bim.add_prop_template" + And the variable "prop_template" is "2" + And I press "bim.remove_prop_template(prop_template={prop_template})" + Then nothing happens + +Scenario: Enable editing prop template + Given an empty IFC project + When I load a new pset template file + And I press "bim.add_pset_template" + And the variable "prop_template" is "2" + And I press "bim.enable_editing_prop_template(prop_template={prop_template})" + Then nothing happens + +Scenario: Edit prop template + Given an empty IFC project + When I load a new pset template file + And I press "bim.add_pset_template" + And the variable "prop_template" is "2" + And I press "bim.enable_editing_prop_template(prop_template={prop_template})" + And I press "bim.edit_prop_template" + Then nothing happens + +Scenario: Disable editing prop template + Given an empty IFC project + When I load a new pset template file + And I press "bim.add_pset_template" + And the variable "prop_template" is "2" + And I press "bim.enable_editing_prop_template(prop_template={prop_template})" + And I press "bim.disable_editing_prop_template" + Then nothing happens diff --git a/src/blenderbim/test/bim/test_feature.py b/src/blenderbim/test/bim/test_feature.py index 8f0420e855..8a599e82ed 100644 --- a/src/blenderbim/test/bim/test_feature.py +++ b/src/blenderbim/test/bim/test_feature.py @@ -18,6 +18,7 @@ import os import bpy +import ifcopenshell import blenderbim.tool as tool from blenderbim.bim.ifc import IfcStore from pytest_bdd import scenarios, given, when, then, parsers @@ -37,12 +38,23 @@ def replace_variables(value): def an_empty_ifc_project(): IfcStore.purge() bpy.ops.wm.read_homefile(app_template="") - while bpy.data.objects: - bpy.data.objects.remove(bpy.data.objects[0]) - bpy.ops.outliner.orphans_purge(do_local_ids=True, do_linked_ids=True, do_recursive=True) + if len(bpy.data.objects) > 0: + while bpy.data.objects: + bpy.data.objects.remove(bpy.data.objects[0]) + bpy.ops.outliner.orphans_purge(do_local_ids=True, do_linked_ids=True, do_recursive=True) bpy.ops.bim.create_project() +@when("I load a new pset template file") +def i_load_a_new_pset_template_file(): + IfcStore.pset_template_path = os.path.join( + bpy.context.scene.BIMProperties.data_dir, + "pset", + bpy.context.scene.BIMPsetTemplateProperties.pset_template_files + ".ifc", + ) + IfcStore.pset_template_file = ifcopenshell.open(IfcStore.pset_template_path) + + @given("I add a cube") @when("I add a cube") def i_add_a_cube():