Extension: Fix test case

This commit is contained in:
Stefan Tröger 2016-06-25 20:28:14 +02:00 committed by wmayer
parent a8cf9a1fb0
commit 44d1ee0157
3 changed files with 29 additions and 5 deletions

View File

@ -30,7 +30,6 @@
#include "DocumentObjectExtension.h"
#include <vector>
namespace App
{
class DocumentObjectGroup;

View File

@ -440,7 +440,9 @@ void CmdPartDesignNewSketch::activated(int iMsg)
unsigned validPlanes = 0;
auto group = App::GeoFeatureGroupExtension::getGroupOfObject ( pcActiveBody );
auto geoGroup = dynamic_cast<App::GeoFeatureGroupExtension*>(group->getExtension(App::GeoFeatureGroupExtension::getClassTypeId()));
App::GeoFeatureGroupExtension* geoGroup = nullptr;
if(group)
geoGroup = dynamic_cast<App::GeoFeatureGroupExtension*>(group->getExtension(App::GeoFeatureGroupExtension::getClassTypeId()));
std::vector<App::DocumentObject*> planes;
std::vector<PartDesignGui::TaskFeaturePick::featureStatus> status;

View File

@ -188,15 +188,38 @@ class DocumentBasicCases(unittest.TestCase):
grp = self.Doc.addObject("App::DocumentObject", "Extension_2")
#we should have all methods we need to handle extensions
try:
self.failUnless(not grp.hasExtension("App::GroupExtension"))
grp.addExtension("App::GroupExtension", self)
self.failUnless(not grp.hasExtension("App::GroupExtensionPython"))
grp.addExtension("App::GroupExtensionPython", self)
self.failUnless(grp.hasExtension("App::GroupExtension"))
self.failUnless(grp.hasExtension("App::GroupExtensionPython"))
grp.addObject(obj)
self.failUnless(len(grp.Group) == 1)
self.failUnless(grp.Group[0] == obj)
except:
self.failUnless(True)
#test if the method override works
class SpecialGroup():
def allowObject(self, obj):
return False;
self.Doc.remove(obj)
callback = SpecialGroup()
grp2 = self.Doc.addObject("App::DocumentObject", "Extension_3")
grp2.addExtension("App::GroupExtensionPython", callback)
try:
self.failUnless(grp2.hasExtension("App::GroupExtension"))
grp2.addObject(obj)
self.failUnless(len(grp2.Group) == 0)
except:
self.failUnless(True)
self.Doc.removeObject(grp.Name)
self.Doc.removeObject(grp2.Name)
self.Doc.removeObject(obj.Name)
del obj
del grp
del grp2
def tearDown(self):
#closing doc