def test_cycles(self):
        # Python 2.4 does not support recursive comparisons to the
        # same extent as Python 2.3, so we test these recursive
        # structures by comparing the standard pickles of the original
        # and pickled/unpickled copy.  This works for things like
        # lists and tuples, but could easily break for dictionaries.

        l = [1, 2, 3]
        l.append(l)
        xml = dumps(l)
        newl = loads(xml)
        p1 = pickle.dumps(l)
        p2 = pickle.dumps(newl)
        self.assertEqual(p1, p2)

        t = l, l
        l.append(t)
        xml = dumps(l)
        newl = loads(xml)
        p1 = pickle.dumps(l)
        p2 = pickle.dumps(newl)
        self.assertEqual(p1, p2)
Esempio n. 2
0
    def importAllData(self, xml_str):
        """get data file for all objects"""
        from pprint import pprint
        print "#" * 80
        data_structure = loads(xml_str)
        print 'objects'
        pprint(data_structure['objects'])
        print 'conns'
        pprint(data_structure['conns'])
        print "#" * 80
        for obj in data_structure['objects']:
            print "Obj: ", obj['ikName']
            print "myFactory: ", obj['meta']['myFactory']
            o2 = zapi.createObject(obj['meta']['myFactory'], **obj)
            print o2
            o2.importAllData(obj)
            IBrwsOverview(o2).setTitle(obj['ikName'])
            o2.__post_init__()
            c2 = o2.getFirstContainer()
            print c2
            print "len1: ", len(c2)
            c2[o2.objectID] = o2
            print "len2: ", len(c2)
        #print data_structure
        print "conn"
        my_catalog = zapi.getUtility(ICatalog)
        for conn in data_structure['conns']:
            #(('obj1Id'. 'obj1AttrName'), ('obj2Id'. 'obj2AttrName'))
            ((obj1Id, obj1AttrName), (obj2Id, obj2AttrName)) = conn
            print "()(): ", ((obj1Id, obj1AttrName), (obj2Id, obj2AttrName))
            res1 = my_catalog.searchResults(oid_index=obj1Id)
            res2 = my_catalog.searchResults(oid_index=obj2Id)
            if len(res1) > 0 and len(res2) > 0:
                obj1 = iter(res1).next()
                obj2 = iter(res2).next()
                print "obj1: ", obj1
                print "obj2: ", obj2
                attr1 = getattr(obj1, obj1AttrName, None)
                if attr1 is not None:
                    if type(attr1) is list:
                        attr1.append(obj2)
                    else:
                        attr1 = obj2
                    obj1._p_changed = 1
                    obj2._p_changed = 1
#            for relation in 
#            res = my_catalog.searchResults(oid_index=arg_oid)
#            if len(res) > 0:
#                return iter(res).next().getDcTitle()
#            
        return True
Esempio n. 3
0
 def objmq_subscribe(self, data):
     """inject obj from mq."""
     #logger.info(u"inject obj from mq. data:%s" % data)
     # cut first line with message id
     python_pickle = loads(data[1 + data.find("\n"):])
     my_catalog = zapi.getUtility(ICatalog)
     if python_pickle['cmd'].lower() == "connect":
         if self.context.objectID == \
            python_pickle['header']['to_oid']:
             self.context.appendSlave(\
                 python_pickle['header'],
                 python_pickle['nodename'])
             return u"connected"
         else:
             return u"unknown system"
     elif python_pickle['cmd'].lower() == "connected":
         if self.context.objectID == \
            python_pickle['header']['to_oid']:
             self.context.status2Master = u"connected"
             #self.context.lastSeenMaster = datetime.now(berlinTZ)
         else:
             return u"unknown system"
     elif python_pickle['cmd'].lower() == "ping":
         if self.context.objectID == \
            python_pickle['header']['to_oid']:
             #self.context.sendPong(python_pickle['header'])
             self.context.receivedPing(python_pickle['header'])
             #self.context.lastSeenMaster = datetime.now(berlinTZ)
         else:
             return u"unknown system"
     elif python_pickle['cmd'].lower() == "pong":
         if self.context.objectID == \
            python_pickle['header']['to_oid']:
             #self.context.lastSeenMaster = datetime.now(berlinTZ)
             self.context.receivedPong(python_pickle['header'])
         else:
             return u"unknown system"
     elif python_pickle['cmd'].lower() == "obj_added":
         if self.context.objectID == \
            python_pickle['header']['to_oid']:
             #self.context.lastSeenMaster = datetime.now(berlinTZ)
             self.context.addObject(python_pickle['header'],
                                    python_pickle['oldparent'],
                                    python_pickle['newparent'],
                                    python_pickle['obj'])
         else:
             return u"unknown system"
     elif python_pickle['cmd'].lower() == "obj_removed":
         if self.context.objectID == \
            python_pickle['header']['to_oid']:
             #self.context.lastSeenMaster = datetime.now(berlinTZ)
             self.context.removeObject(python_pickle['header'],
                                       python_pickle['oldparent'],
                                       python_pickle['newparent'],
                                       python_pickle['objectOid'])
         else:
             return u"unknown system"
     elif python_pickle['cmd'].lower() == "obj_modified":
         if self.context.objectID == \
            python_pickle['header']['to_oid']:
             #self.context.lastSeenMaster = datetime.now(berlinTZ)
             self.context.modifyObject(python_pickle['header'],
                                       python_pickle['obj'])
         else:
             return u"unknown system"
     elif python_pickle['cmd'].lower() == "obj_moved":
         if self.context.objectID == \
            python_pickle['header']['to_oid']:
             #self.context.lastSeenMaster = datetime.now(berlinTZ)
             self.context.moveObject(python_pickle['header'],
                                     python_pickle['oldparent'],
                                     python_pickle['newparent'],
                                     python_pickle['objectOid'])
         else:
             return u"unknown system"
     else:
         return u"unknown command"
     return u"permission denied"
 def __test(self, v, expected_xml=None):
     xml = dumps(v)
     if expected_xml:
         self.assertEqual(xml, expected_xml)
     newv = loads(xml)
     self.assertEqual(newv, v)
 def test_False(self):
     self.__test(False)
     self.assertEqual(loads('<pickle><false/></pickle>'), False)
 def test_True(self):
     self.__test(True)
     self.assertEqual(loads('<pickle><true/></pickle>'), True)