tests unittaires – Sam & Max http://sametmax.com Du code, du cul Wed, 30 Oct 2019 15:34:04 +0000 en-US hourly 1 https://wordpress.org/?v=4.9.7 32490438 Vérifier qu’un uuid est valide en Python http://sametmax.com/verifier-quun-uuid-est-valide-en-python/ http://sametmax.com/verifier-quun-uuid-est-valide-en-python/#comments Tue, 06 Sep 2016 11:23:50 +0000 http://sametmax.com/?p=20169 uuid, on veut vérifier qu'on récupère bien des uuid valides là où on les attend.]]> 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 :)

]]>
http://sametmax.com/verifier-quun-uuid-est-valide-en-python/feed/ 9 20169