def test_case_insensitive(self): """Check if same values in lower or upper case produce the same UUID""" uuid_a = uuid('scm', email='*****@*****.**', name='John Smith', username='******') uuid_b = uuid('SCM', email='*****@*****.**', name='John Smith', username='******') self.assertEqual(uuid_a, uuid_b) uuid_c = uuid('scm', email='*****@*****.**', name='john smith', username='******') self.assertEqual(uuid_c, uuid_a) uuid_d = uuid('scm', email='*****@*****.**', name='John Smith', username='******') self.assertEqual(uuid_d, uuid_a) uuid_e = uuid('scm', email='*****@*****.**', name='John Smith', username='******') self.assertEqual(uuid_e, uuid_a)
def test_surrogate_escape(self): """Check if no errors are raised for invalid UTF-8 chars""" if sys.version_info[0] >= 3: result = uuid('scm', name="Mishal\udcc5 Pytasz") self.assertEqual(result, '625166bdc2c4f1a207d39eb8d25315010babd73b')
def __get_sh_ids_cache(self, identity_tuple, backend_name): # Convert tuple to the original dict identity = dict((x, y) for x, y in identity_tuple) if not self.sortinghat: raise RuntimeError("Sorting Hat not active during enrich") iden = {} sh_ids = {"id": None, "uuid": None} for field in ['email', 'name', 'username']: iden[field] = None if field in identity: iden[field] = identity[field] if not iden['name'] and not iden['email'] and not iden['username']: logger.warning("Name, email and username are none in %s", backend_name) return sh_ids try: # Find the uuid for a given id. id = utils.uuid(backend_name, email=iden['email'], name=iden['name'], username=iden['username']) if not id: logger.warning( "Id not found in SortingHat for name: %s, email: %s and username: %s in %s", str(iden['name']), str(iden['email']), str(iden['username']), backend_name) return sh_ids with self.sh_db.connect() as session: identity_found = api.find_identity(session, id) if not identity_found: return sh_ids sh_ids['id'] = identity_found.id sh_ids['uuid'] = identity_found.uuid except InvalidValueError: msg = "None Identity found {}".format(backend_name) logger.debug(msg) except NotFoundError: msg = "Identity not found in SortingHat {}".format(backend_name) logger.debug(msg) except UnicodeEncodeError: msg = "UnicodeEncodeError {}, identity: {}".format( backend_name, identity) logger.error(msg) except Exception as ex: msg = "Unknown error adding identity in SortingHat, {}, {}, {}".format( ex, backend_name, identity) logger.error(msg) return sh_ids
def test_uuid(self): """Check whether the function returns the expected UUID""" result = uuid('scm', email='*****@*****.**', name='John Smith', username='******') self.assertEqual(result, '03e12d00e37fd45593c49a5a5a1652deca4cf302') result = uuid('scm', email='*****@*****.**') self.assertEqual(result, 'a4d4845e1b1e0edb85e37b04553026a6b76fc4ac') result = uuid('scm', email='', name='John Smith', username='******') self.assertEqual(result, 'b63e8e4e67381271e67e55d46a63b63fc306119f') result = uuid('scm', email='', name='John Smith', username='') self.assertEqual(result, 'e2189be970c39c26b84d815f913b32ca953db940') result = uuid('scm', email='', name='', username='******') self.assertEqual(result, '6e7ce2426673f8a23a72a343b1382dda84c0078b') result = uuid('scm', email='', name=u'John Ca\xf1as', username='******') self.assertEqual(result, 'ebc02af40a98d4ae76e61804cff6b383a1c7293e') result = uuid('scm', email='', name="Max Müster", username='******') self.assertEqual(result, 'b16c494e93c791b4805ea0bdb4eca39ee033a759')
def test_uuid(self): """Check whether the function returns the expected UUID""" result = uuid('scm', email='*****@*****.**', name='John Smith', username='******') self.assertEqual(result, 'a9b403e150dd4af8953a52a4bb841051e4b705d9') result = uuid('scm', email='*****@*****.**') self.assertEqual(result, '334da68fcd3da4e799791f73dfada2afb22648c6') result = uuid('scm', email='', name='John Smith', username='******') self.assertEqual(result, 'a4b4591c3a2171710c157d7c278ea3cc03becf81') result = uuid('scm', email='', name='John Smith', username='') self.assertEqual(result, '76e3624e24aacae178d05352ad9a871dfaf81c13') result = uuid('scm', email='', name='', username='******') self.assertEqual(result, '6e7ce2426673f8a23a72a343b1382dda84c0078b') result = uuid('scm', email='', name='John Ca\xf1as', username='******') self.assertEqual(result, 'c88e126749ff006eb1eea25e4bb4c1c125185ed2') result = uuid('scm', email='', name="Max Müster", username='******') self.assertEqual(result, '9a0498297d9f0b7e4baf3e6b3740d22d2257367c')
def test_uuid(self): """Check whether the function returns the expected UUID""" result = uuid('scm', email='*****@*****.**', name='John Smith', username='******') self.assertEqual(result, '03e12d00e37fd45593c49a5a5a1652deca4cf302') result = uuid('scm', email='*****@*****.**') self.assertEqual(result, 'a4d4845e1b1e0edb85e37b04553026a6b76fc4ac') result= uuid('scm', email='', name='John Smith', username='******') self.assertEqual(result, 'b63e8e4e67381271e67e55d46a63b63fc306119f') result = uuid('scm', email='', name='John Smith', username='') self.assertEqual(result, 'e2189be970c39c26b84d815f913b32ca953db940') result = uuid('scm', email='', name='', username='******') self.assertEqual(result, '6e7ce2426673f8a23a72a343b1382dda84c0078b') result = uuid('scm', email='', name=u'John Ca\xf1as', username='******') self.assertEqual(result, 'ebc02af40a98d4ae76e61804cff6b383a1c7293e') result = uuid('scm', email='', name="Max Müster", username='******') self.assertEqual(result, 'b16c494e93c791b4805ea0bdb4eca39ee033a759')
def test_uuid(self): """Check whether the function returns the expected UUID""" result = uuid('scm', email='*****@*****.**', name='John Smith', username='******') self.assertEqual(result, 'a9b403e150dd4af8953a52a4bb841051e4b705d9') result = uuid('scm', email='*****@*****.**') self.assertEqual(result, '334da68fcd3da4e799791f73dfada2afb22648c6') result= uuid('scm', email='', name='John Smith', username='******') self.assertEqual(result, 'a4b4591c3a2171710c157d7c278ea3cc03becf81') result = uuid('scm', email='', name='John Smith', username='') self.assertEqual(result, '76e3624e24aacae178d05352ad9a871dfaf81c13') result = uuid('scm', email='', name='', username='******') self.assertEqual(result, '6e7ce2426673f8a23a72a343b1382dda84c0078b') result = uuid('scm', email='', name=u'John Ca\xf1as', username='******') self.assertEqual(result, 'c88e126749ff006eb1eea25e4bb4c1c125185ed2') result = uuid('scm', email='', name="Max Müster", username='******') self.assertEqual(result, '9a0498297d9f0b7e4baf3e6b3740d22d2257367c')
def __get_sh_ids_cache(self, identity_tuple, backend_name): # Convert tuple to the original dict identity = dict((x, y) for x, y in identity_tuple) if not self.sortinghat: raise RuntimeError("Sorting Hat not active during enrich") iden = {} sh_ids = {"id": None, "uuid": None} for field in ['email', 'name', 'username']: iden[field] = None if field in identity: iden[field] = identity[field] try: # Find the uuid for a given id. A bit hacky in SH yet api.add_identity(self.sh_db, backend_name, iden['email'], iden['name'], iden['username']) except AlreadyExistsError as ex: uuid = ex.uuid u = api.unique_identities(self.sh_db, uuid)[0] sh_ids['id'] = utils.uuid(backend_name, email=iden['email'], name=iden['name'], username=iden['username']) sh_ids['uuid'] = u.uuid except WrappedValueError: logger.warning("None Identity found %s", backend_name) logger.warning(identity) except NotFoundError: logger.error("Identity not found in Sorting Hat %s", backend_name) logger.error(identity) except UnicodeEncodeError: logger.error("UnicodeEncodeError %s", backend_name) logger.error(identity) except Exception as ex: logger.error("Unknown error adding sorting hat identity %s %s", ex, backend_name) logger.error(identity) logger.error(ex) return sh_ids
def __get_sh_ids_cache(self, identity_tuple, backend_name): # Convert tuple to the original dict identity = dict((x, y) for x, y in identity_tuple) if not self.sortinghat: raise RuntimeError("Sorting Hat not active during enrich") iden = {} sh_ids = {"id": None, "uuid": None} for field in ['email', 'name', 'username']: iden[field] = None if field in identity: iden[field] = identity[field] try: # Find the uuid for a given id. id = utils.uuid(backend_name, email=iden['email'], name=iden['name'], username=iden['username']) with self.sh_db.connect() as session: identity_found = api.find_identity(session, id) sh_ids['id'] = identity_found.id sh_ids['uuid'] = identity_found.uuid except InvalidValueError: logger.warning("None Identity found %s", backend_name) logger.warning(identity) except NotFoundError: logger.error("Identity not found in Sorting Hat %s", backend_name) logger.error(identity) except UnicodeEncodeError: logger.error("UnicodeEncodeError %s", backend_name) logger.error(identity) except Exception as ex: logger.error("Unknown error adding sorting hat identity %s %s", ex, backend_name) logger.error(identity) logger.error(ex) return sh_ids
def test_case_unaccent_name(self): """Check if same values accent or unaccent produce the same UUID""" accent_result = uuid('scm', email='', name="Max Müster", username='******') unaccent_result = uuid('scm', email='', name="Max Muster", username='******') self.assertEqual(accent_result, unaccent_result) self.assertEqual(accent_result, '9a0498297d9f0b7e4baf3e6b3740d22d2257367c') accent_result = uuid('scm', email='', name="Santiago Dueñas", username='') unaccent_result = uuid('scm', email='', name="Santiago Duenas", username='') self.assertEqual(accent_result, unaccent_result) self.assertEqual(accent_result, '0f1dd18839007ee8a11d02572ca0a0f4eedaf2cd') accent_result = uuid('scm', email='', name="Tomáš Čechvala", username='') partial_accent_result = uuid('scm', email='', name="Tomáš Cechvala", username='') unaccent_result = uuid('scm', email='', name="Tomas Cechvala", username='') self.assertEqual(accent_result, unaccent_result) self.assertEqual(accent_result, partial_accent_result)
def __get_sh_ids_cache(self, identity_tuple, backend_name): # Convert tuple to the original dict identity = dict((x, y) for x, y in identity_tuple) if not self.sortinghat: raise RuntimeError("Sorting Hat not active during enrich") iden = {} sh_ids = {"id": None, "uuid": None} for field in ['email', 'name', 'username']: iden[field] = None if field in identity: iden[field] = identity[field] try: # Find the uuid for a given id. A bit hacky in SH yet api.add_identity(self.sh_db, backend_name, iden['email'], iden['name'], iden['username']) except AlreadyExistsError as ex: uuid = ex.uuid u = api.unique_identities(self.sh_db, uuid)[0] sh_ids['id'] = utils.uuid(backend_name, email=iden['email'], name=iden['name'], username=iden['username']) sh_ids['uuid'] = u.uuid except WrappedValueError: logger.error("None Identity found") logger.error(identity) except NotFoundError: logger.error("Identity not found in Sorting Hat") logger.error(identity) except UnicodeEncodeError: logger.error("UnicodeEncodeError") logger.error(identity) except Exception as ex: logger.error("Unknown error adding sorting hat identity %s", ex) logger.error(identity) logger.error(ex) return sh_ids