Пример #1
0
 def create_identity_relationships(self, req):
     self.requires_get_or_post(req)
     args = self.get_args(req, 'contact_properties', 'relationships',
                          ext_id="rd.api")
     db = RDCouchDB(req)
     # items_from_related_identities must be moved!
     from raindrop.extenv import items_from_related_identities
     gen = items_from_related_identities(db.doc_model, args['relationships'],
                                         args['contact_properties'],
                                         args['ext_id'])
     return db.doc_model.create_schema_items(list(gen))
Пример #2
0
 def test_common_displayname(self):
     # Here we process 2 identities, each with a different email address
     # but both with a common display-name.  We should end up with a single
     # contact with both identities.
     si = {'rd_key': ['identity', ['email', '*****@*****.**']],
           'rd_schema_id': 'rd.identity.exists',
           'rd_source' : None,
           'rd_ext_id': 'rd.testsuite',
           'items': None,
           }
     self.doc_model.create_schema_items([si])
     # and make a contact for this address.
     contact = {'displayName': 'test user'}
     from raindrop import extenv
     idrels = [(si['rd_key'][1], 'email')]
     items = list(extenv.items_from_related_identities(self.doc_model,
                                                       idrels, contact,
                                                       'rd.testsuite'))
     self.doc_model.create_schema_items(items)
     # should be one contact with one identity.
     self.verifyCounts(1, 1)
     # now create the second identity with the same display name.
     si = {'rd_key': ['identity', ['email', '*****@*****.**']],
           'rd_schema_id': 'rd.identity.exists',
           'rd_source' : None,
           'rd_ext_id': 'rd.testsuite',
           'items': None,
           }
     self.doc_model.create_schema_items([si])
     idrels = [(si['rd_key'][1], 'email')]
     items = list(extenv.items_from_related_identities(self.doc_model,
                                                       idrels, contact,
                                                       'rd.testsuite'))
     self.doc_model.create_schema_items(items)
     # should be one contact with two identities.
     self.verifyCounts(1, 2)