Exemplo n.º 1
0
 def testStatusCategoriesAreInitialized(self):
     mt = getattr(self.portal, TOOLNAME)
     cat_map = ICategoryMapper(mt)
     for pt in ['TestMember', 'TestGroup']:
         cat_set = generateCategorySetIdForType(pt)
         self.failUnless(cat_map.hasCategorySet(cat_set))
         self.failUnless(cat_map.hasCategory(cat_set,
                                             ACTIVE_STATUS_CATEGORY))
         wft = getattr(self.portal, 'portal_workflow')
         chain = wft.getChainForPortalType(pt)
         for wfid in chain:
             wf = getattr(wft, wfid)
             states = wf.states.objectIds()
             for state in states:
                 self.failUnless(cat_map.isInCategory(cat_set,
                                                      ACTIVE_STATUS_CATEGORY,
                                                      state))
Exemplo n.º 2
0
class TestCategoryMapper(ZopeTestCase.ZopeTestCase):

    layer = ZCMLLayer

    def afterSetUp(self):
        self.obj = Foo()
        self.cat_map = ICategoryMapper(self.obj)

    def testAddCategorySet(self):
        cat_set = 'category_set'
        self.cat_map.addCategorySet(cat_set)
        self.failUnless(self.cat_map.hasCategorySet(cat_set))
        self.failUnless(cat_set in self.cat_map.listCategorySets())

    def testDelCategorySet(self):
        cat_set = 'category_set'
        self.cat_map.addCategorySet(cat_set)
        self.failUnless(self.cat_map.hasCategorySet(cat_set))
        self.cat_map.delCategorySet(cat_set)
        self.failIf(self.cat_map.hasCategorySet(cat_set))
        self.failUnless(len(self.cat_map.listCategorySets()) == 0)

    def testAddCategory(self):
        cat_set1 = 'category_set1'
        cat_set2 = 'category_set2'
        cat = 'category'
        self.cat_map.addCategorySet(cat_set1)
        self.cat_map.addCategorySet(cat_set2)
        self.cat_map.addCategory(cat_set1, cat)
        self.failUnless(self.cat_map.hasCategory(cat_set1, cat))
        self.failIf(self.cat_map.hasCategory(cat_set2, cat))

    def testMissingCatSetRaisesError(self):
        self.assertRaises(KeyError, self.cat_map.addToCategory,
                          self.cat_map, 'category_set', 'category')
        self.assertRaises(KeyError, self.cat_map.removeFromCategory,
                          self.cat_map, 'category_set', 'category')
        
    def testMissingCategoryRaisesError(self):
        cat_set = 'category_set'
        self.cat_map.addCategorySet(cat_set)
        self.assertRaises(KeyError, self.cat_map.addToCategory,
                          self.cat_map, cat_set, 'category')
        self.assertRaises(KeyError, self.cat_map.removeFromCategory,
                          self.cat_map, cat_set, 'category')

    def testAddToCategory(self):
        cat_set = 'category_set'
        cat1 = 'category1'
        cat2 = 'category2'
        datum1 = 'datum1'
        datum2 = 'datum2'
        self.cat_map.addCategorySet(cat_set)
        self.cat_map.addCategory(cat_set, cat1)
        self.cat_map.addCategory(cat_set, cat2)
        self.cat_map.addToCategory(cat_set, cat1, datum1)
        self.failUnless(self.cat_map.isInCategory(cat_set, cat1, datum1))
        self.failIf(self.cat_map.isInCategory(cat_set, cat1, datum2))
        self.failIf(self.cat_map.isInCategory(cat_set, cat2, datum1))

        self.cat_map.addToCategory(cat_set, cat1, datum2)
        self.failUnless(self.cat_map.isInCategory(cat_set, cat1, datum1))
        self.failUnless(self.cat_map.isInCategory(cat_set, cat1, datum2))
        self.failUnless(set([datum1, datum2]) == \
                        set(self.cat_map.listCategoryValues(cat_set, cat1)))

    def testRemoveFromCategory(self):
        cat_set = 'category_set'
        cat = 'category'
        datum1 = 'datum1'
        datum2 = 'datum2'
        self.cat_map.addCategorySet(cat_set)
        self.cat_map.addCategory(cat_set, cat)
        self.cat_map.addToCategory(cat_set, cat, datum1)
        self.cat_map.addToCategory(cat_set, cat, datum2)
        self.failUnless(set([datum1, datum2]) == \
                        set(self.cat_map.listCategoryValues(cat_set, cat)))

        self.cat_map.removeFromCategory(cat_set, cat, datum1)
        self.failIf(self.cat_map.isInCategory(cat_set, cat, datum1))
        self.failUnless(self.cat_map.isInCategory(cat_set, cat, datum2))
        self.failUnless(set([datum2]) == \
                        set(self.cat_map.listCategoryValues(cat_set, cat)))