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 "DocumentObjectExtension.h"
#include <vector> #include <vector>
namespace App namespace App
{ {
class DocumentObjectGroup; class DocumentObjectGroup;

View File

@ -440,7 +440,9 @@ void CmdPartDesignNewSketch::activated(int iMsg)
unsigned validPlanes = 0; unsigned validPlanes = 0;
auto group = App::GeoFeatureGroupExtension::getGroupOfObject ( pcActiveBody ); 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<App::DocumentObject*> planes;
std::vector<PartDesignGui::TaskFeaturePick::featureStatus> status; std::vector<PartDesignGui::TaskFeaturePick::featureStatus> status;

View File

@ -188,15 +188,38 @@ class DocumentBasicCases(unittest.TestCase):
grp = self.Doc.addObject("App::DocumentObject", "Extension_2") grp = self.Doc.addObject("App::DocumentObject", "Extension_2")
#we should have all methods we need to handle extensions #we should have all methods we need to handle extensions
try: try:
self.failUnless(not grp.hasExtension("App::GroupExtension")) self.failUnless(not grp.hasExtension("App::GroupExtensionPython"))
grp.addExtension("App::GroupExtension", self) grp.addExtension("App::GroupExtensionPython", self)
self.failUnless(grp.hasExtension("App::GroupExtension"))
self.failUnless(grp.hasExtension("App::GroupExtensionPython"))
grp.addObject(obj) grp.addObject(obj)
self.failUnless(len(grp.Group) == 1)
self.failUnless(grp.Group[0] == obj) self.failUnless(grp.Group[0] == obj)
except: except:
self.failUnless(True) 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 obj
del grp
del grp2
def tearDown(self): def tearDown(self):
#closing doc #closing doc