Quantcast
Channel: Sam & Max » unit tests
Viewing all articles
Browse latest Browse all 10

Vérifier qu’un uuid est valide en Python 9

$
0
0

Si on teste du code qui utilise des uuid, on veut vérifier qu’on récupère bien des uuid valides là où on les attend.

Le plus simple est de déléguer cette vérification au module uuid qui est déjà celui qu’on utilise pour les produire.

from uuid import UUID
 
def is_uuid(uuid_string, version=4):
    try:
        # Si uuid_string est un code hex valide mais pas un uuid valid,
        # UUID() va quand même le convertir en uuid valide. Pour se prémunir
        # de ce problème, on check la version original (sans les tirets) avec
        # le code hex généré qui doivent être les mêmes.
        uid = UUID(uuid_string, version=version)
        return uid.hex == uuid_string.replace('-', '')
    except ValueError:
        return False

Et pouf:

>>> import uuid
 
>>> print(uuid.uuid4())
1049d03f-6f45-4637-89ff-f57567f6d022
 
>>> is_uuid('1049d03f-6f45-4637-89ff-f57567f6d022')
True
 
>>> is_uuid('1049d03f6f45463789fff57567f6d022')
True
 
>>> is_uuid('1049d03f6f45')
False

À chaque fois que j’utilise un uuid, j’ai un peu l’impression d’user la fabrique de l’univers, comme si je fabriquais quelque chose d’unique pour le mettre la poubelle, et qui n’existera plus jamais. Le gâchis d’un flocon de neige virtuel :)


Viewing all articles
Browse latest Browse all 10

Latest Images





Latest Images