Apply suggestions from code review

Co-Authored-By: Krilivye <pierre.bousquie@gmail.com>
This commit is contained in:
Christophe Nanteuil 2019-02-14 22:09:55 +01:00 committed by GitHub
parent ab02c8c901
commit 05a2995fda
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -377,7 +377,7 @@ msgid ""
"run. Output during a passing test is discarded. Output is echoed normally on " "run. Output during a passing test is discarded. Output is echoed normally on "
"test fail or error and is added to the failure messages." "test fail or error and is added to the failure messages."
msgstr "" msgstr ""
"Les flux de sortie et d'erreur standard sont mis en mémoire tampon pendant " "Les flux de sortie et d'erreur standards sont mis en mémoire tampon pendant "
"l'exécution des tests. Les résultats d'un test réussi ne sont pas pris en " "l'exécution des tests. Les résultats d'un test réussi ne sont pas pris en "
"compte. Un test en échec ou en erreur est affiché sur la sortie et est " "compte. Un test en échec ou en erreur est affiché sur la sortie et est "
"ajouté aux messages d'erreur." "ajouté aux messages d'erreur."
@ -403,7 +403,7 @@ msgstr ""
#: ../Doc/library/unittest.rst:220 #: ../Doc/library/unittest.rst:220
msgid "Stop the test run on the first error or failure." msgid "Stop the test run on the first error or failure."
msgstr "" msgstr ""
"Arrête l'exécution des tests lors du premier cas d'erreur ou défaillance." "Arrête l'exécution des tests lors du premier cas d'erreur ou d'échec."
#: ../Doc/library/unittest.rst:224 #: ../Doc/library/unittest.rst:224
msgid "" msgid ""
@ -413,7 +413,7 @@ msgid ""
msgstr "" msgstr ""
"Exécute uniquement les méthodes de test et les classes qui correspondent au " "Exécute uniquement les méthodes de test et les classes qui correspondent au "
"motif ou à la chaîne de caractères. Cette option peut être utilisée " "motif ou à la chaîne de caractères. Cette option peut être utilisée "
"plusieurs fois, auquel cas tous les cas de test qui correspondent aux motifs " "plusieurs fois ; dans ce cas, tous les tests qui correspondent aux motifs "
"donnés sont inclus." "donnés sont inclus."
#: ../Doc/library/unittest.rst:228 #: ../Doc/library/unittest.rst:228
@ -471,7 +471,7 @@ msgstr ""
#: ../Doc/library/unittest.rst:258 #: ../Doc/library/unittest.rst:258
msgid "Test Discovery" msgid "Test Discovery"
msgstr "Découverte des tests. " msgstr "Découverte des tests"
#: ../Doc/library/unittest.rst:262 #: ../Doc/library/unittest.rst:262
msgid "" msgid ""
@ -483,7 +483,7 @@ msgid ""
"<identifiers>`)." "<identifiers>`)."
msgstr "" msgstr ""
"*Unittest* prend en charge une découverte simple des tests. Afin d'être " "*Unittest* prend en charge une découverte simple des tests. Afin d'être "
"compatible avec le système de découverte de test, tous les fichiers de test " "compatible avec le système de découverte de tests, tous les fichiers de test "
"doivent être des :ref:`modules <tut-modules>` ou des :ref:`paquets <tut-" "doivent être des :ref:`modules <tut-modules>` ou des :ref:`paquets <tut-"
"packages>` (incluant des :term:`paquets-espaces de noms <namespace " "packages>` (incluant des :term:`paquets-espaces de noms <namespace "
"package>`) importables du répertoire du projet (cela signifie que leurs noms " "package>`) importables du répertoire du projet (cela signifie que leurs noms "
@ -494,7 +494,7 @@ msgid ""
"Test discovery is implemented in :meth:`TestLoader.discover`, but can also " "Test discovery is implemented in :meth:`TestLoader.discover`, but can also "
"be used from the command line. The basic command-line usage is::" "be used from the command line. The basic command-line usage is::"
msgstr "" msgstr ""
"La découverte de test est implémentée dans :meth:`TestLoader.discover`, mais " "La découverte de tests est implémentée dans :meth:`TestLoader.discover`, mais "
"peut également être utilisée depuis la ligne de commande. Par exemple ::" "peut également être utilisée depuis la ligne de commande. Par exemple ::"
#: ../Doc/library/unittest.rst:277 #: ../Doc/library/unittest.rst:277
@ -504,7 +504,7 @@ msgid ""
"``discover`` sub-command must be used explicitly." "``discover`` sub-command must be used explicitly."
msgstr "" msgstr ""
"Comme raccourci, ``python -m unittest`` est l'équivalent de ``python -m " "Comme raccourci, ``python -m unittest`` est l'équivalent de ``python -m "
"unittest discover``.Pour passer des arguments au système de découverte des " "unittest discover``. Pour passer des arguments au système de découverte des "
"tests, la sous-commande ``discover`` doit être utilisée explicitement." "tests, la sous-commande ``discover`` doit être utilisée explicitement."
#: ../Doc/library/unittest.rst:281 #: ../Doc/library/unittest.rst:281
@ -525,7 +525,8 @@ msgstr "Motif de détection des fichiers de test (``test*.py`` par défaut)"
#: ../Doc/library/unittest.rst:299 #: ../Doc/library/unittest.rst:299
msgid "Top level directory of project (defaults to start directory)" msgid "Top level directory of project (defaults to start directory)"
msgstr "Répertoire de premier niveau du projet (répertoire racine par défaut)" "Répertoire de premier niveau du projet (répertoire racine, c'est-à-dire "
"*start-directory*, par défaut)"
#: ../Doc/library/unittest.rst:301 #: ../Doc/library/unittest.rst:301
msgid "" msgid ""
@ -533,7 +534,7 @@ msgid ""
"positional arguments in that order. The following two command lines are " "positional arguments in that order. The following two command lines are "
"equivalent::" "equivalent::"
msgstr "" msgstr ""
"Les options :option:`-s`, :option:`-p`, et :option:`-t` peuvent être passées " "Les options :option:`-s`, :option:`-p` et :option:`-t` peuvent être passées "
"en arguments positionnels dans cet ordre. Les deux lignes de commande " "en arguments positionnels dans cet ordre. Les deux lignes de commande "
"suivantes sont équivalentes ::" "suivantes sont équivalentes ::"
@ -544,7 +545,7 @@ msgid ""
"supply will then be imported and its location on the filesystem will be used " "supply will then be imported and its location on the filesystem will be used "
"as the start directory." "as the start directory."
msgstr "" msgstr ""
"En plus d'être un chemin, il est possible de passer un nom de paquet, par " "Il est aussi possible de passer un nom de paquet plutôt qu'un chemin, par "
"exemple ``monprojet.souspaquet.test``, comme répertoire racine. Le nom du " "exemple ``monprojet.souspaquet.test``, comme répertoire racine. Le nom du "
"paquet fourni est alors importé et son emplacement sur le système de " "paquet fourni est alors importé et son emplacement sur le système de "
"fichiers est utilisé comme répertoire racine." "fichiers est utilisé comme répertoire racine."
@ -557,7 +558,7 @@ msgid ""
"imported as ``foo.bar.baz``." "imported as ``foo.bar.baz``."
msgstr "" msgstr ""
"Le mécanisme de découverte charge les tests en les important. Une fois que " "Le mécanisme de découverte charge les tests en les important. Une fois que "
"le système a trouvé tous les fichiers de test du répertoire de démarrage " "le système a trouvé tous les fichiers de tests du répertoire de démarrage "
"spécifié, il transforme les chemins en noms de paquets à importer. Par " "spécifié, il transforme les chemins en noms de paquets à importer. Par "
"exemple :file:`truc/bidule/machin.py` est importé sous ``truc.bidule." "exemple :file:`truc/bidule/machin.py` est importé sous ``truc.bidule."
"machin``." "machin``."
@ -569,7 +570,7 @@ msgid ""
"place. If this happens test discovery will warn you and exit." "place. If this happens test discovery will warn you and exit."
msgstr "" msgstr ""
"Si un paquet est installé globalement et que le mécanisme de découverte de " "Si un paquet est installé globalement et que le mécanisme de découverte de "
"test est effectué sur une copie différente du paquet, l'importation *peut* " "tests est effectué sur une copie différente du paquet, l'importation *peut* "
"se produire à partir du mauvais endroit. Si cela arrive, le système émet un " "se produire à partir du mauvais endroit. Si cela arrive, le système émet un "
"avertissement et se termine." "avertissement et se termine."
@ -580,7 +581,7 @@ msgid ""
"the location you intended, so you will not get the warning." "the location you intended, so you will not get the warning."
msgstr "" msgstr ""
"Si vous donnez le répertoire racine sous la forme d'un nom de paquet plutôt " "Si vous donnez le répertoire racine sous la forme d'un nom de paquet plutôt "
"que d'un chemin d'accès à un répertoire, alors *discover* suppose que " "que d'un chemin d'accès à un répertoire, alors Python suppose que "
"l'emplacement à partir duquel il importe est l'emplacement que vous voulez, " "l'emplacement à partir duquel il importe est l'emplacement que vous voulez, "
"vous ne verrez donc pas l'avertissement." "vous ne verrez donc pas l'avertissement."
@ -595,7 +596,7 @@ msgstr ""
#: ../Doc/library/unittest.rst:332 #: ../Doc/library/unittest.rst:332
msgid "Test discovery supports :term:`namespace packages <namespace package>`." msgid "Test discovery supports :term:`namespace packages <namespace package>`."
msgstr "" msgstr ""
"La découverte de test prend en charge :term:`les paquets-espaces de noms " "La découverte de tests prend en charge :term:`les paquets-espaces de noms "
"<namespace package>`." "<namespace package>`."
#: ../Doc/library/unittest.rst:339 #: ../Doc/library/unittest.rst:339
@ -610,7 +611,8 @@ msgid ""
"instances. To make your own test cases you must write subclasses of :class:" "instances. To make your own test cases you must write subclasses of :class:"
"`TestCase` or use :class:`FunctionTestCase`." "`TestCase` or use :class:`FunctionTestCase`."
msgstr "" msgstr ""
"Les éléments de base des tests unitaires sont les :dfn:`test cases` --- Des " "Les éléments de base des tests unitaires sont les :dfn:`scénarios de tests` "
"(*test cases* en anglais) --- Des "
"scénarios uniques qui sont mis en place et exécutés pour vérifier qu'ils " "scénarios uniques qui sont mis en place et exécutés pour vérifier qu'ils "
"sont corrects. Dans :mod:`unittest`, les scénarios de test sont représentés " "sont corrects. Dans :mod:`unittest`, les scénarios de test sont représentés "
"par des instances de :class:`unittest.TestCase`. Pour créer vos propres " "par des instances de :class:`unittest.TestCase`. Pour créer vos propres "
@ -648,7 +650,7 @@ msgstr ""
"Notez que pour tester quelque chose, on utilise l'une des méthodes :meth:" "Notez que pour tester quelque chose, on utilise l'une des méthodes :meth:"
"`assert\\*` fournies par la classe de base :class:`TestCase`. Si le test " "`assert\\*` fournies par la classe de base :class:`TestCase`. Si le test "
"échoue, une exception est levée avec un message explicatif, et :mod:" "échoue, une exception est levée avec un message explicatif, et :mod:"
"`unittest` identifie le cas de test comme un :dfn:`échec`. Toute autre " "`unittest` identifie ce scénario de test comme un :dfn:`échec`. Toute autre "
"exception est traitée comme une :dfn:`erreur`." "exception est traitée comme une :dfn:`erreur`."
#: ../Doc/library/unittest.rst:368 #: ../Doc/library/unittest.rst:368
@ -669,7 +671,7 @@ msgid ""
"the test method names with respect to the built-in ordering for strings." "the test method names with respect to the built-in ordering for strings."
msgstr "" msgstr ""
"L'ordre dans lequel les différents tests sont exécutés est déterminé en " "L'ordre dans lequel les différents tests sont exécutés est déterminé en "
"classant les noms des méthodes de test en fonction des relation d'ordre des " "classant les noms des méthodes de test en fonction de la relation d'ordre des "
"chaines de caractères ." "chaines de caractères ."
#: ../Doc/library/unittest.rst:393 #: ../Doc/library/unittest.rst:393
@ -706,8 +708,8 @@ msgid ""
"`~TestCase.tearDown`, and :meth:`~TestCase.__init__` will be called once per " "`~TestCase.tearDown`, and :meth:`~TestCase.__init__` will be called once per "
"test." "test."
msgstr "" msgstr ""
"Un tel environnement de travail pour le code de test s'appelle une :dfn:" "Un tel environnement de travail pour le code de test s'appelle un :dfn:"
"`fixture`. Une nouvelle instance de *TestCase* est créée sous la forme d'un " "`aménagement de test` (*fixture* en anglais). Une nouvelle instance de *TestCase* est créée sous la forme d'un "
"dispositif de test unique utilisé pour exécuter chaque méthode de test " "dispositif de test unique utilisé pour exécuter chaque méthode de test "
"individuelle. Ainsi :meth:`~TestCase.setUp`, :meth:`~TestCase.tearDown` et :" "individuelle. Ainsi :meth:`~TestCase.setUp`, :meth:`~TestCase.tearDown` et :"
"meth:`~TestCase.__init__` ne sont appelées qu'une fois par test." "meth:`~TestCase.__init__` ne sont appelées qu'une fois par test."
@ -725,7 +727,7 @@ msgstr ""
"des fonctionnalités qu'ils testent. :mod:`unittest` fournit un mécanisme " "des fonctionnalités qu'ils testent. :mod:`unittest` fournit un mécanisme "
"pour cela : la :dfn:`suite de tests`, représentée par :class:`TestSuite` du " "pour cela : la :dfn:`suite de tests`, représentée par :class:`TestSuite` du "
"module :mod:`unittest`. Dans la plupart des cas, appeler :func:`unittest." "module :mod:`unittest`. Dans la plupart des cas, appeler :func:`unittest."
"main` fait la bonne chose et rassemble tous les cas de test du module pour " "main` fait correctement les choses et trouve tous les scénarios de test du module pour "
"vous et les exécute." "vous et les exécute."
#: ../Doc/library/unittest.rst:425 #: ../Doc/library/unittest.rst:425
@ -743,9 +745,9 @@ msgid ""
"are several advantages to placing the test code in a separate module, such " "are several advantages to placing the test code in a separate module, such "
"as :file:`test_widget.py`:" "as :file:`test_widget.py`:"
msgstr "" msgstr ""
"Vous pouvez placer les définitions des cas de test et des suites de test " "Vous pouvez placer les définitions des scénarios de test et des suites de test "
"dans le même module que le code à tester (tel que :file:`composant.py`), " "dans le même module que le code à tester (tel que :file:`composant.py`), "
"mais il y a plusieurs avantages à placer le code test dans un module séparé, " "mais il y a plusieurs avantages à placer le code de test dans un module séparé, "
"tel que :file:`test_composant.py` :" "tel que :file:`test_composant.py` :"
#: ../Doc/library/unittest.rst:443 #: ../Doc/library/unittest.rst:443
@ -783,7 +785,7 @@ msgid ""
"not be consistent?" "not be consistent?"
msgstr "" msgstr ""
"Les tests pour les modules écrits en C doivent de toute façon être dans des " "Les tests pour les modules écrits en C doivent de toute façon être dans des "
"modules séparés, alors pourquoi ne pas être cohérents ?" "modules séparés, alors pourquoi ne pas être cohérent ?"
#: ../Doc/library/unittest.rst:457 #: ../Doc/library/unittest.rst:457
msgid "" msgid ""
@ -820,14 +822,14 @@ msgstr ""
#: ../Doc/library/unittest.rst:473 #: ../Doc/library/unittest.rst:473
msgid "Given the following test function::" msgid "Given the following test function::"
msgstr "Étant donné la fonction de test suivante ::" msgstr "Étant donnée la fonction de test suivante ::"
#: ../Doc/library/unittest.rst:480 #: ../Doc/library/unittest.rst:480
msgid "" msgid ""
"one can create an equivalent test case instance as follows, with optional " "one can create an equivalent test case instance as follows, with optional "
"set-up and tear-down methods::" "set-up and tear-down methods::"
msgstr "" msgstr ""
"on peut créer une instance de scénario de test équivalente , avec des " "on peut créer une instance de scénario de test équivalente, avec des "
"méthodes optionnelles de mise en place et de démantèlement ::" "méthodes optionnelles de mise en place et de démantèlement ::"
#: ../Doc/library/unittest.rst:489 #: ../Doc/library/unittest.rst:489
@ -839,7 +841,7 @@ msgid ""
msgstr "" msgstr ""
"Même si la classe :class:`FunctionTestCase` peut être utilisée pour " "Même si la classe :class:`FunctionTestCase` peut être utilisée pour "
"convertir rapidement une base de test existante vers un système basé sur :" "convertir rapidement une base de test existante vers un système basé sur :"
"mod:`unittest`. Cette approche n'est pas recommandée. Prendre le temps de " "mod:`unittest`, cette approche n'est pas recommandée. Prendre le temps de "
"bien configurer les sous-classes de :class:`TestCase` simplifiera " "bien configurer les sous-classes de :class:`TestCase` simplifiera "
"considérablement les futurs réusinages des tests." "considérablement les futurs réusinages des tests."
@ -858,7 +860,7 @@ msgstr ""
#: ../Doc/library/unittest.rst:503 #: ../Doc/library/unittest.rst:503
msgid "Skipping tests and expected failures" msgid "Skipping tests and expected failures"
msgstr "Ignorer les tests et les erreurs prévisibles." msgstr "Ignorer des tests et des erreurs prévisibles"
#: ../Doc/library/unittest.rst:507 #: ../Doc/library/unittest.rst:507
msgid "" msgid ""
@ -878,7 +880,7 @@ msgid ""
"Skipping a test is simply a matter of using the :func:`skip` :term:" "Skipping a test is simply a matter of using the :func:`skip` :term:"
"`decorator` or one of its conditional variants." "`decorator` or one of its conditional variants."
msgstr "" msgstr ""
"Ignorer un test consiste à utiliser la fonction :func:`skip` qui est un :" "Ignorer un test consiste à utiliser le :term:`décorateur <decorator>` :func:`skip` "
"term:`decorator` ou une de ses variantes conditionnelles." "term:`decorator` ou une de ses variantes conditionnelles."
#: ../Doc/library/unittest.rst:515 #: ../Doc/library/unittest.rst:515
@ -915,7 +917,7 @@ msgid ""
"decorator skips the test unless the passed object has a certain attribute::" "decorator skips the test unless the passed object has a certain attribute::"
msgstr "" msgstr ""
"Il est facile de faire ses propres décorateurs en créant un décorateur qui " "Il est facile de faire ses propres décorateurs en créant un décorateur qui "
"appelle :func:`skip` sur le test que vous voulez ignoré. Par exemple, ce " "appelle :func:`skip` sur le test que vous voulez ignorer. Par exemple, ce "
"décorateur ignore le test à moins que l'objet passé ne possède un certain " "décorateur ignore le test à moins que l'objet passé ne possède un certain "
"attribut ::" "attribut ::"
@ -935,11 +937,11 @@ msgstr ""
#: ../Doc/library/unittest.rst:580 #: ../Doc/library/unittest.rst:580
msgid "Skip the decorated test if *condition* is true." msgid "Skip the decorated test if *condition* is true."
msgstr "Ignore le test décoré si la *condition* est vrai." msgstr "Ignore le test décoré si la *condition* est vraie."
#: ../Doc/library/unittest.rst:584 #: ../Doc/library/unittest.rst:584
msgid "Skip the decorated test unless *condition* is true." msgid "Skip the decorated test unless *condition* is true."
msgstr "Ignore le test décoré sauf si la *condition* est vrai." msgstr "Ignore le test décoré sauf si la *condition* est vraie."
#: ../Doc/library/unittest.rst:588 #: ../Doc/library/unittest.rst:588
msgid "" msgid ""
@ -947,7 +949,7 @@ msgid ""
"considered a success. If the test passes, it will be considered a failure." "considered a success. If the test passes, it will be considered a failure."
msgstr "" msgstr ""
"Marque le test comme étant un erreur attendue. Si le test échoue il est " "Marque le test comme étant un erreur attendue. Si le test échoue il est "
"considéré comme un succès.Si il passe il est considéré comme étant en échec." "considéré comme un succès. S'il passe, il est considéré comme étant en échec."
#: ../Doc/library/unittest.rst:593 #: ../Doc/library/unittest.rst:593
msgid "This exception is raised to skip a test." msgid "This exception is raised to skip a test."
@ -968,9 +970,9 @@ msgid ""
"setUpClass` or :meth:`~TestCase.tearDownClass` run. Skipped modules will not " "setUpClass` or :meth:`~TestCase.tearDownClass` run. Skipped modules will not "
"have :func:`setUpModule` or :func:`tearDownModule` run." "have :func:`setUpModule` or :func:`tearDownModule` run."
msgstr "" msgstr ""
"Les tests ignorés n'ont pas :meth:`~TestCase.setUp` ou :meth:`~TestCase." "Les tests ignorés ne lancent ni :meth:`~TestCase.setUp` ni :meth:`~TestCase."
"tearDown` d'exécutés. Les classes ignorées n'ont pas :meth:`~TestCase." "tearDown`. Les classes ignorées ne lancent ni :meth:`~TestCase."
"setUpClass` ou :meth:`~TestCase.tearDownClass` d'exécutés. Les modules " "setUpClass` ni :meth:`~TestCase.tearDownClass`. Les modules "
"sautés n'ont pas :func:`setUpModule` ou :func:`tearDownModule` d'exécutés." "sautés n'ont pas :func:`setUpModule` ou :func:`tearDownModule` d'exécutés."
#: ../Doc/library/unittest.rst:606 #: ../Doc/library/unittest.rst:606
@ -984,7 +986,7 @@ msgid ""
"test method using the :meth:`~TestCase.subTest` context manager." "test method using the :meth:`~TestCase.subTest` context manager."
msgstr "" msgstr ""
"Lorsque certains de vos tests ne diffèrent que par de très petites " "Lorsque certains de vos tests ne diffèrent que par de très petites "
"différences, par exemple certains paramètres; *unittest* vous permet de les " "différences, par exemple certains paramètres, *unittest* vous permet de les "
"distinguer en utilisant le gestionnaire de contexte :meth:`~TestCase." "distinguer en utilisant le gestionnaire de contexte :meth:`~TestCase."
"subTest` dans le corps d'une méthode de test." "subTest` dans le corps d'une méthode de test."
@ -1031,7 +1033,7 @@ msgstr ""
"unitaires dans l'univers :mod:`unittest`. Cette classe est conçue pour être " "unitaires dans l'univers :mod:`unittest`. Cette classe est conçue pour être "
"utilisée comme classe de base. Les scénarios de tests sont à implémenter en " "utilisée comme classe de base. Les scénarios de tests sont à implémenter en "
"héritant de cette classe. La classe implémente l'interface nécessaire au " "héritant de cette classe. La classe implémente l'interface nécessaire au "
"lanceur de test pour lui permettre de les exécuter ainsi que les méthodes " "lanceur de tests pour lui permettre de les exécuter ainsi que les méthodes "
"que le code de test peut utiliser pour vérifier et signaler les différents " "que le code de test peut utiliser pour vérifier et signaler les différents "
"types d'erreurs." "types d'erreurs."
@ -1041,8 +1043,8 @@ msgid ""
"named *methodName*. In most uses of :class:`TestCase`, you will neither " "named *methodName*. In most uses of :class:`TestCase`, you will neither "
"change the *methodName* nor reimplement the default ``runTest()`` method." "change the *methodName* nor reimplement the default ``runTest()`` method."
msgstr "" msgstr ""
"Chaque instance de la classe :class:`TestCase` exécutera une seule méthode " "Chaque instance de la classe :class:`TestCase` n'exécute qu'une seule méthode "
"de base : La méthode nommée *methodName* . Dans la plupart des utilisations " "de base : la méthode nommée *methodName* . Dans la plupart des utilisations "
"de la classe :class:`TestCase`, vous n'avez pas à changer le nom de la " "de la classe :class:`TestCase`, vous n'avez pas à changer le nom de la "
"méthode, ni à réimplémenter la méthode ``runTest()``." "méthode, ni à réimplémenter la méthode ``runTest()``."
@ -1116,7 +1118,7 @@ msgid ""
"decorated as a :func:`classmethod`::" "decorated as a :func:`classmethod`::"
msgstr "" msgstr ""
"Méthode de classe appelée avant l'exécution des tests dans la classe en " "Méthode de classe appelée avant l'exécution des tests dans la classe en "
"question. ``setUpClass`` est appelé avec la classe comme seul argument et " "question. ``setUpClass`` est appelée avec la classe comme seul argument et "
"doit être décorée comme une :func:`classmethod` ::" "doit être décorée comme une :func:`classmethod` ::"
#: ../Doc/library/unittest.rst:735 ../Doc/library/unittest.rst:750 #: ../Doc/library/unittest.rst:735 ../Doc/library/unittest.rst:750