Exemple #1
0
def test():
    import pprint
    from FeatureFactory import FeatureFactory
    af1 = FeatureFactory.getInstance(FeatureType.ADDRESS,FeedType.FEATURES)
    a1 = af1.get(ref='one_feat')
    
    af2 = FeatureFactory.getInstance(FeatureType.ADDRESS,FeedType.CHANGEFEED)
    a2 = af2.get(ref='two_chg')
    a2.setVersion(100)
    a2.setObjectType('Parcel')
    a2.setAddressNumber(100)
    a2.setAddressId(100)
    a2.setRoadName('Smith Street')
    
    af3 = FeatureFactory.getInstance(FeatureType.ADDRESS,FeedType.RESOLUTIONFEED)
    a3 = af3.get(ref='three_res')
    a3.setChangeId(200)
    a3.setVersion(200)
    a3.setAddressNumber(200)
    a3.setRoadName('Jones Road')
    
    
    print a1,a2,a3

    r2 = af2.convert(a2,ActionType.UPDATE)
    r3 = af3.convert(a3,ApprovalType.UPDATE)

    pprint.pprint (r2)
    pprint.pprint (r3)
Exemple #2
0
def test():
    import pprint
    from FeatureFactory import FeatureFactory
    af1 = FeatureFactory.getInstance(FeatureType.ADDRESS, FeedType.FEATURES)
    a1 = af1.get(ref='one_feat')

    af2 = FeatureFactory.getInstance(FeatureType.ADDRESS, FeedType.CHANGEFEED)
    a2 = af2.get(ref='two_chg')
    a2.setVersion(100)
    a2.setObjectType('Parcel')
    a2.setAddressNumber(100)
    a2.setAddressId(100)
    a2.setRoadName('Smith Street')

    af3 = FeatureFactory.getInstance(FeatureType.ADDRESS,
                                     FeedType.RESOLUTIONFEED)
    a3 = af3.get(ref='three_res')
    a3.setChangeId(200)
    a3.setVersion(200)
    a3.setAddressNumber(200)
    a3.setRoadName('Jones Road')

    print a1, a2, a3

    r2 = af2.convert(a2, ActionType.UPDATE)
    r3 = af3.convert(a3, ApprovalType.UPDATE)

    pprint.pprint(r2)
    pprint.pprint(r3)
 def setUp(self):
     self.af = FeedRef((FeatureType.ADDRESS, FeedType.FEATURES))
     self.ac = FeedRef((FeatureType.ADDRESS, FeedType.CHANGEFEED))
     self.ar = FeedRef((FeatureType.ADDRESS, FeedType.RESOLUTIONFEED))
     self.aff = FeatureFactory.getInstance(self.af)
     self.afc = FeatureFactory.getInstance(self.ac)
     self.afr = FeatureFactory.getInstance(self.ar)
     self.dm = DataManager()
 def setUp(self):            
     self.af = FeedRef((FeatureType.ADDRESS,FeedType.FEATURES))
     self.ac = FeedRef((FeatureType.ADDRESS,FeedType.CHANGEFEED))
     self.ar = FeedRef((FeatureType.ADDRESS,FeedType.RESOLUTIONFEED))
     self.aff = FeatureFactory.getInstance(self.af)
     self.afc = FeatureFactory.getInstance(self.ac)
     self.afr = FeatureFactory.getInstance(self.ar)
     self.dm = DataManager()
    def setUp(self):
        self.dm = DataManager(ref_int)
        self.af = FeedRef((FeatureType.ADDRESS, FeedType.FEATURES))
        self.ac = FeedRef((FeatureType.ADDRESS, FeedType.CHANGEFEED))
        self.ar = FeedRef((FeatureType.ADDRESS, FeedType.RESOLUTIONFEED))

        self.afc = FeatureFactory.getInstance(self.ac)
        self.afr = FeatureFactory.getInstance(self.ar)
        self.addr_r = _getTestAddress(af[FeedType.FEATURES])
 def setUp(self):    
     self.dm = DataManager(ref_int)
     self.af = FeedRef((FeatureType.ADDRESS,FeedType.FEATURES))
     self.ac = FeedRef((FeatureType.ADDRESS,FeedType.CHANGEFEED))
     self.ar = FeedRef((FeatureType.ADDRESS,FeedType.RESOLUTIONFEED))
     
     self.afc = FeatureFactory.getInstance(self.ac)
     self.afr = FeatureFactory.getInstance(self.ar)
     self.addr_r = _getTestAddress(af[FeedType.FEATURES])
 def test(self):
     global refsnap
     refsnap = {0:None,1:None,2:None}
     af = {ft:FeatureFactory.getInstance(FeedRef((FeatureType.ADDRESS,ft))) for ft in (FeedType.FEATURES,FeedType.CHANGEFEED,FeedType.RESOLUTIONFEED)}
     gf = {ft:FeatureFactory.getInstance(FeedRef((FeatureType.GROUPS,ft))) for ft in (FeedType.CHANGEFEED,FeedType.RESOLUTIONFEED)}
     af[3] = FeatureFactory.getInstance(FeedRef((FeatureType.GROUPS,FeedType.CHANGEFEED)))
     #with DataManager(start=None) as dm:
     #    dm.start(FeedType.CHANGEFEED)
     with DataManager() as dm:
         dm.registermain(self)
         self.test1(dm,af)
def test():
    from pprint import pprint as pp
    af_f = FeatureFactory.getInstance(
        FeedRef(FeatureType.ADDRESS, FeedType.FEATURES))
    af_c = FeatureFactory.getInstance(
        FeedRef(FeatureType.ADDRESS, FeedType.CHANGEFEED))
    af_r = FeatureFactory.getInstance(
        FeedRef(FeatureType.ADDRESS, FeedType.RESOLUTIONFEED))

    #axx = af_r.get()
    ac1 = af_f.get()
    #ac1._addressedObject_externalObjectId = 1000
    ac1._components_addressType = 'Road'
    ac1._components_addressNumber = 100
    ac1._components_roadName = 'The Terrace'
    ac1._version = 1
    ac1._components_addressId = 100
    ac1._workflow_sourceUser = '******'

    ac1a = af_c.convert(ac1, ActionType.ADD)
    ac1r = af_c.convert(ac1, ActionType.RETIRE)
    ac1u = af_c.convert(ac1, ActionType.UPDATE)

    #------------------------------------------------

    ar1 = af_c.get()
    ar1._version = 100
    ar1._changeId = 100
    ar1._components_addressType = 'Road'
    ar1._components_addressNumber = 100
    ar1._components_roadName = 'The Terrace'

    ar1a = af_r.convert(ar1, ApprovalType.ACCEPT)
    ar1d = af_r.convert(ar1, ApprovalType.DECLINE)
    ar1u = af_r.convert(ar1, ApprovalType.UPDATE)

    print 'CHGF-ADD'
    pp(ac1a)
    print 'CHGF-RET'
    pp(ac1r)
    print 'CHGF-UPD'
    pp(ac1u)

    print 'RESF-ACC'
    pp(ar1a)
    print 'RESF-DEC'
    pp(ar1d)
    print 'RESF-UPD'
    pp(ar1u)
 def _processResolutionGroup(self,feat,cid,etft):
     '''Processes the res-address objects in a res-group. Subsequently populates the sub entities as feature-addresses.
     @param feat: dict representation of feature before object processing
     @type feat: Dict
     @param cid: Change ID or group change ID
     @type cid: Integer
     @param etft: Feed/Feature identifier
     @type etft: FeedRef
     @return: Instantiated feature object
     '''
     featurelist = []
     g = self.factory.get(model=feat['properties'])#group
     #HACK subst cid for cid+count string
     ce,feat2 = self.api.getOneFeature(etft,'{}/address?count={}'.format(cid,MAX_FEATURE_COUNT))#group entity/adr list
     if any(ce.values()): aimslog.error('Single-feature request failure {}'.format(ce))
     etft2 = FeedRef((FeatureType.ADDRESS,FeedType.RESOLUTIONFEED))
     factory2 = FeatureFactory.getInstance(etft2)
     for f in feat2['entities']:
         a = factory2.get(model=f['properties'])
         elist2 = []
         for e in f['entities']:
             elist2.append(self._populateEntity(e))
         a._setEntities(elist2)
         featurelist.append(a)
     g._setEntities(featurelist)
     return g
def test():
    from pprint import pprint as pp
    af_f = FeatureFactory.getInstance(FeedRef(FeatureType.ADDRESS,FeedType.FEATURES))
    af_c = FeatureFactory.getInstance(FeedRef(FeatureType.ADDRESS,FeedType.CHANGEFEED))
    af_r = FeatureFactory.getInstance(FeedRef(FeatureType.ADDRESS,FeedType.RESOLUTIONFEED))
    
    
    #axx = af_r.get()
    ac1 = af_f.get()
    #ac1._addressedObject_externalObjectId = 1000
    ac1._components_addressType = 'Road'
    ac1._components_addressNumber = 100
    ac1._components_roadName = 'The Terrace'
    ac1._version = 1
    ac1._components_addressId = 100
    ac1._workflow_sourceUser = '******'
    
    ac1a = af_c.convert(ac1,ActionType.ADD)
    ac1r = af_c.convert(ac1,ActionType.RETIRE)
    ac1u = af_c.convert(ac1,ActionType.UPDATE)
    
    #------------------------------------------------
    
    ar1 = af_c.get()
    ar1._version = 100
    ar1._changeId = 100
    ar1._components_addressType = 'Road'
    ar1._components_addressNumber = 100
    ar1._components_roadName = 'The Terrace'
    
    ar1a = af_r.convert(ar1,ApprovalType.ACCEPT)
    ar1d = af_r.convert(ar1,ApprovalType.DECLINE)
    ar1u = af_r.convert(ar1,ApprovalType.UPDATE)
    
    print 'CHGF-ADD'
    pp(ac1a)
    print 'CHGF-RET'
    pp(ac1r)
    print 'CHGF-UPD'
    pp(ac1u)
    
    print 'RESF-ACC'
    pp(ar1a)
    print 'RESF-DEC'
    pp(ar1d)
    print 'RESF-UPD'
    pp(ar1u)
 def _processAddressEntity(self,feat):        
     '''Processes feature data into address object
     @param feat: dict representation of feature before object processing
     @type feat: Dict
     @return: Instantiated Address entity
     '''
     #return EntityAddress.getInstance(feat)
     return self._processSimpleEntity(FeatureFactory.getInstance(FeedRef((FeatureType.ADDRESS,FeedType.RESOLUTIONFEED))).get,feat)
 def castTo(self,requiredtype,address):
     '''Convenience method abstracting the casting function used to downcast address objects to the various feed required formats
     @param requiredtype: Address format requirement in FeedRef format 
     @type requiredtype: FeedRef
     @param address: Address object being cast
     @type address: Address
     @return: Address
     '''
     if not requiredtype in FeedType.reverse.keys(): raise Exception('unknown feed/address type')
     return FeatureFactory.getInstance(FeedRef((FeatureType.ADDRESS,requiredtype))).cast(address)
Exemple #13
0
 def getInstance(data,etft=FeedRef((FeatureType.ADDRESS,FeedType.FEATURES))): 
     '''Gets instance of Entity object defaulting to Addressfeed/Feature
     @param data: Dict containing AF Entity object attributes
     @param etft: Address Entity feedref 
     @type etft: FeedRef
     @return: Populated Entity object 
     '''
     from FeatureFactory import FeatureFactory
     ff = FeatureFactory.getInstance(etft)
     return ff.get(model=data)
Exemple #14
0
 def getInstance(data,
                 etft=FeedRef((FeatureType.ADDRESS, FeedType.FEATURES))):
     '''Gets instance of Entity object defaulting to Addressfeed/Feature
     @param data: Dict containing AF Entity object attributes
     @param etft: Address Entity feedref 
     @type etft: FeedRef
     @return: Populated Entity object 
     '''
     from FeatureFactory import FeatureFactory
     ff = FeatureFactory.getInstance(etft)
     return ff.get(model=data)
Exemple #15
0
 def clone(a,b=None):
     '''Clones attributes of A to B and instantiates B (as type A) if not provided
     @param a: Feature object to-be cloned
     @type a: Feature
     @param b: Feature object being overwritten (optional)
     @type b: Feature
     @return: Manual deepcop of Feature object 
     '''
     #duplicates only attributes set in source object
     from FeatureFactory import FeatureFactory
     if not b: b = FeatureFactory.getInstance(a.type).get()
     for attr in a.__dict__.keys(): setattr(b,attr,getattr(a,attr))
     return b
Exemple #16
0
 def clone(a, b=None):
     '''Clones attributes of A to B and instantiates B (as type A) if not provided
     @param a: Feature object to-be cloned
     @type a: Feature
     @param b: Feature object being overwritten (optional)
     @type b: Feature
     @return: Manual deepcop of Feature object 
     '''
     #duplicates only attributes set in source object
     from FeatureFactory import FeatureFactory
     if not b: b = FeatureFactory.getInstance(a.type).get()
     for attr in a.__dict__.keys():
         setattr(b, attr, getattr(a, attr))
     return b
 def testgrpresfeedAUD(self,dm,af):
     ver = 6977370
     #cid = 4117724
     cid = 4117720
     #pull address from features (map)
     grp_r = self.gettestgroup(FeatureFactory.getInstance(FeedRef((FeatureType.GROUPS,FeedType.RESOLUTIONFEED))))
     
     aimslog.info('*** GROUP Resolution ACCEPT '+str(time.clock()))
     rqid1 = 4321234
     dm.acceptGroup(grp_r,rqid1)
     resp = None
     while True: 
         _,resp,_ = self.testresp(dm,FeedType.RESOLUTIONFEED)
         if resp: 
             print rqid1,resp[0].meta.requestId
             break
         time.sleep(5)
     ver += 1
 def testuseractions(self,dm):
     '''create and submit user actions, add/update/delete '''
     ver = 100
     uid = 100
     rqid = 100
     
     etft = FeedRef((FeatureType.USERS,FeedType.ADMIN))
     uf = FeatureFactory.getInstance(etft)
     
     user = uf.get('local_test_user')
     user.setUserId(uid)
     user._version = ver
     user._userName = '******'
     user._email = '*****@*****.**'
     user._requiresProgress = 'False'
     user._organisation = 'LINZ'
     user._role = 'follower'
     
     dm.addUser(user,rqid)
     while True: 
         _,_,resp = self.testresp(dm,FeedType.ADMIN)
         if resp: 
             print rqid,resp[0].meta.requestId
             break
         time.sleep(5)
         
     rqid+=1
     user._userName = '******'
     dm.updateUser(user,rqid)
     while True: 
         _,_,resp = self.testresp(dm,FeedType.ADMIN)
         if resp: 
             print rqid,resp[0].meta.requestId
             break
         time.sleep(5)
         
     rqid+=1
     dm.deleteUser(user,rqid)
     while True: 
         _,_,resp = self.testresp(dm,FeedType.ADMIN)
         if resp: 
             print rqid,resp[0].meta.requestId
             break
         time.sleep(5)
Exemple #19
0
 def __init__(self,params,queues):
     '''Initialise new DataSync object splitting out config parameters
     @param params: List of configuration parameters
     @type params: List<?>
     @param queues: List of IOR queues
     @type queues: Dict<String,Queue.Queue>        
     '''
     #from DataManager import FEEDS
     super(DataSync,self).__init__()
     #thread reference, ft to AD/CF/RF, config info
     self.start_time = time.time()
     self.updater_running = False
     self.ref,self.etft,self.ftracker,self.conf = params
     self.data_hash = {dh:0 for dh in FEEDS.values()}
     self.factory = FeatureFactory.getInstance(self.etft)
     self.updater = DataUpdater.getInstance(self.etft) # unevaluated class
     self.inq = queues['in']
     self.outq = queues['out']
     self.respq = queues['resp']