mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-09 21:53:40 +00:00
Remove create project library ability, as you should create a project first
This commit is contained in:
@@ -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"
|
||||
"""
|
||||
|
||||
Reference in New Issue
Block a user