#=========================================================================
# Common test function
#=========================================================================
-def testExport(theType, theFormat, theFile, theVolume, theDelta):
+def testExport(theType, theFormat, theFile, theVolume, theDelta, theErrorExpected = False):
# Import a reference part
aSession.startOperation("Add part")
aPartFeature = aSession.moduleDocument().addFeature("Part")
aSelectionListAttr.append(anImportFeature.firstResult(), anImportFeature.firstResult().shape())
aSession.finishOperation()
- assert os.path.exists(theFile)
+ if theErrorExpected:
+ assert anExportFeature.error() != ""
+ aPart.removeFeature(anExportFeature)
+ else:
+ assert os.path.exists(theFile)
- # Test exported file by importing
- testImport(theType, theFile, theVolume, theDelta)
+ # Test exported file by importing
+ testImport(theType, theFile, theVolume, theDelta)
+
+def testExportXAO(theFile, theEmptyFormat = False):
+ type = "XAO"
+ format = "XAO"
+ if theEmptyFormat:
+ type = "Regular"
+ format = ""
-def testExportXAO(theFile):
# Import a reference part
aSession.startOperation("Add part")
aPartFeature = aSession.moduleDocument().addFeature("Part")
aSession.startOperation("Export to XAO")
anExportFeature = aPart.addFeature("Export")
anExportFeature.string("xao_file_path").setValue(theFile)
- anExportFeature.string("file_format").setValue("XAO")
- anExportFeature.string("ExportType").setValue("XAO")
+ anExportFeature.string("file_format").setValue(type)
+ anExportFeature.string("ExportType").setValue(type)
anExportFeature.string("xao_author").setValue("me")
anExportFeature.string("xao_geometry_name").setValue("mygeom")
aSession.finishOperation()
aRealVolume = 3.78827401738e-06
testExport("BREP", "BREP", os.path.join(tmp_dir, "screw_export.brep"), aRealVolume, 10 ** -17)
testExport("BRP", "BREP", os.path.join(tmp_dir, "screw_export.brp"), aRealVolume, 10 ** -17)
+ testExport("Regular", "", os.path.join(tmp_dir, "screw_export.brep"), aRealVolume, 10 ** -17)
#=========================================================================
# Export a shape into STEP
#=========================================================================
testExport("STEP", "STEP", os.path.join(tmp_dir, "screw_export.step"), 3.78825807533e-06, 10 ** -17)
testExport("STP", "STEP", os.path.join(tmp_dir, "screw_export.stp"), 3.78825807533e-06, 10 ** -17)
+ testExport("Regular", "", os.path.join(tmp_dir, "screw_export.step"), 3.78825807533e-06, 10 ** -17)
#=========================================================================
# Export a shape into IGES
#=========================================================================
testExport("IGES-5.1", "IGES-5.1", os.path.join(tmp_dir, "screw_export-5.1.iges"), 3.78829613776e-06, 10 ** -17)
testExport("IGS-5.1", "IGES-5.1", os.path.join(tmp_dir, "screw_export-5.1.igs"), 3.78829613776e-06, 10 ** -17)
+ testExport("Regular", "", os.path.join(tmp_dir, "screw_export-5.1.iges"), 3.78829613776e-06, 10 ** -17)
testExport("IGES-5.3", "IGES-5.3", os.path.join(tmp_dir, "screw_export-5.3.iges"), 3.78827401651e-06, 10 ** -17)
testExport("IGS-5.3", "IGES-5.3", os.path.join(tmp_dir, "screw_export-5.3.igs"), 3.78827401651e-06, 10 ** -17)
#=========================================================================
# Export a shape into XAO
#=========================================================================
testExportXAO(os.path.join(tmp_dir, "export.xao"))
+ testExportXAO(os.path.join(tmp_dir, "export.xao"), True)
+ #=========================================================================
+ # Check error when export to unsupported format
+ #=========================================================================
+ testExport("Regular", "", os.path.join(tmp_dir, "screw_export.dwg"), 3.78825807533e-06, 10 ** -17, True)
#=========================================================================
# End of test
#=========================================================================
shapes_dir = os.path.join(os.getenv("DATA_DIR"), "Shapes")
return os.path.join(shapes_dir, path)
-def testImport(theType, theFile, theVolume, theDelta):
+def testImport(theType, theFile, theVolume, theDelta, theErrorExpected = False):
# Create a part for import
aSession.startOperation("Create part for import")
aPartFeature = aSession.moduleDocument().addFeature("Part")
file.setValue(theFile)
aSession.finishOperation()
- # Check results
- assert anImportFeature.error() == '', "{0}: The error after execution: {1}".format(theType, anImportFeature.error())
- assert len(anImportFeature.results()) == 1, "{0}: Wrong number of results: expected = 1, real = {1}".format(theType, len(anImportFeature.results()))
- aResultBody = modelAPI_ResultBody(anImportFeature.firstResult())
- assert aResultBody, "{0}: The result is not a body".format(theType)
- aShape = aResultBody.shape()
- assert aShape, "{0}: The body does not have a shape".format(theType)
-
- # Check shape volume
- aRefVolume = theVolume
- aResVolume = GeomAlgoAPI_ShapeTools.volume(aShape)
- assert (math.fabs(aResVolume - aRefVolume) < theDelta), "{0}: The volume is wrong: expected = {1}, real = {2}".format(theType, aRefVolume, aResVolume)
+ if theErrorExpected:
+ assert anImportFeature.error() != ''
+ else:
+ # Check results
+ assert anImportFeature.error() == '', "{0}: The error after execution: {1}".format(theType, anImportFeature.error())
+ assert len(anImportFeature.results()) == 1, "{0}: Wrong number of results: expected = 1, real = {1}".format(theType, len(anImportFeature.results()))
+ aResultBody = modelAPI_ResultBody(anImportFeature.firstResult())
+ assert aResultBody, "{0}: The result is not a body".format(theType)
+ aShape = aResultBody.shape()
+ assert aShape, "{0}: The body does not have a shape".format(theType)
+
+ # Check shape volume
+ aRefVolume = theVolume
+ aResVolume = GeomAlgoAPI_ShapeTools.volume(aShape)
+ assert (math.fabs(aResVolume - aRefVolume) < theDelta), "{0}: The volume is wrong: expected = {1}, real = {2}".format(theType, aRefVolume, aResVolume)
def testImportXAO():
# Create a part for import
#=========================================================================
testImportXAO()
+ #=========================================================================
+ # Check import errors
+ #=========================================================================
+ testImport("BREP", "", 0, 10 ** -25, True)
+ shape_path = getShapePath("Brep/solid.dwg")
+ testImport("BREP", shape_path, 0, 10 ** -25, True)
+ shape_path = getShapePath("Xao/wrong_file.xao")
+ testImport("XAO", shape_path, 0, 10 ** -25, True)
+
#=========================================================================
# End of test
#=========================================================================