Remove create project library ability, as you should create a project first

This commit is contained in:
Dion Moult
2021-09-08 13:41:36 +10:00
parent d026fcc900
commit 177d46b7b6
6 changed files with 35 additions and 58 deletions
+11 -7
View File
@@ -33,7 +33,6 @@ class NewFile:
def scenario(function):
def subfunction(self):
run(function(self))
return subfunction
@@ -45,7 +44,7 @@ def i_add_a_cube():
bpy.ops.mesh.primitive_cube_add()
def the_object_named_name_is_selected(name):
def the_object_name_is_selected(name):
obj = bpy.context.scene.objects.get(name)
if not obj:
assert False, 'The object "{name}" could not be selected'
@@ -62,7 +61,7 @@ def i_press_operator(operator):
exec(f"bpy.ops.{operator}()")
def the_object_named_name_exists(name):
def the_object_name_exists(name):
obj = bpy.data.objects.get(name)
if not obj:
assert False, f'The object "{name}" does not exist'
@@ -76,19 +75,24 @@ def an_ifc_file_exists():
return ifc
def the_object_named_name_is_an_ifc_class(name, ifc_class):
def the_object_name_is_an_ifc_class(name, ifc_class):
ifc = an_ifc_file_exists()
element = ifc.by_id(the_object_named_name_exists(name).BIMObjectProperties.ifc_definition_id)
element = ifc.by_id(the_object_name_exists(name).BIMObjectProperties.ifc_definition_id)
assert element.is_a(ifc_class), f'Object "{name}" is a {element.is_a()}'
def the_object_name_is_in_the_collection_collection(name, collection):
assert collection in [c.name for c in the_object_name_exists(name).users_collection]
definitions = {
"an empty IFC project": an_empty_ifc_project,
"I add a cube": i_add_a_cube,
'the object named "(.*)" is selected': the_object_named_name_is_selected,
'the object "(.*)" is selected': the_object_name_is_selected,
'I select "(.*)" in "(.*)"': i_select_value_in_prop,
'I press "(.*)"': i_press_operator,
'the object named "(.*)" is an "(.*)"': the_object_named_name_is_an_ifc_class,
'the object "(.*)" is an "(.*)"': the_object_name_is_an_ifc_class,
'the object "(.*)" is in the collection "(.*)"': the_object_name_is_in_the_collection_collection,
"an IFC file exists": an_ifc_file_exists,
}
@@ -25,8 +25,12 @@ class TestCreateProject(test.bim.bootstrap.NewFile):
return """
When I press "bim.create_project"
Then an IFC file exists
And the object named "IfcProject/My Project" is an "IfcProject"
And the object named "IfcSite/My Site" is an "IfcSite"
And the object named "IfcBuilding/My Building" is an "IfcBuilding"
And the object named "IfcBuildingStorey/My Storey" is an "IfcBuildingStorey"
And the object "IfcProject/My Project" is an "IfcProject"
And the object "IfcSite/My Site" is an "IfcSite"
And the object "IfcBuilding/My Building" is an "IfcBuilding"
And the object "IfcBuildingStorey/My Storey" is an "IfcBuildingStorey"
And the object "IfcProject/My Project" is in the collection "IfcProject/My Project"
And the object "IfcSite/My Site" is in the collection "IfcSite/My Site"
And the object "IfcBuilding/My Building" is in the collection "IfcBuilding/My Building"
And the object "IfcBuildingStorey/My Storey" is in the collection "IfcBuildingStorey/My Storey"
"""
@@ -19,14 +19,27 @@
import test.bim.bootstrap
class TestCreateProject(test.bim.bootstrap.NewFile):
class TestAssignClass(test.bim.bootstrap.NewFile):
@test.bim.bootstrap.scenario
def test_assigning_a_class_to_a_cube(self):
return """
Given an empty IFC project
When I add a cube
And the object named "Cube" is selected
And the object "Cube" is selected
And I select "IfcWall" in "scene.BIMRootProperties.ifc_class"
And I press "bim.assign_class"
And the object named "IfcWall/Cube" is an "IfcWall"
And the object "IfcWall/Cube" is an "IfcWall"
"""
@test.bim.bootstrap.scenario
def test_assigning_a_type_class_to_a_cube(self):
return """
Given an empty IFC project
When I add a cube
And the object "Cube" is selected
And I select "IfcElementType" in "scene.BIMRootProperties.ifc_product"
And I select "IfcWallType" in "scene.BIMRootProperties.ifc_class"
And I press "bim.assign_class"
And the object "IfcWallType/Cube" is an "IfcWallType"
And the object "IfcWallType/Cube" is in the collection "Types"
"""