Aller au contenu

mock-domain-in-string

Catégorie : Données fictives
Sévérité : Warning
Déclenchée par : pyscn check --select mockdata

Ce qu'elle fait

Signale les littéraux de chaînes contenant des domaines réservés à la documentation et aux tests : example.com, example.org, example.net, test.com, localhost, invalid, foo.com, bar.com, et noms similaires définis par les RFC 2606 / RFC 6761.

Pourquoi est-ce un problème ?

Ces domaines existent précisément pour que les exemples et les tests n'entrent pas en collision avec du vrai trafic. C'est utile pendant la rédaction de la documentation — et problématique une fois qu'un littéral est livré. Une URL example.com codée en dur en production est en général soit :

  • Un placeholder qui devait être remplacé avant la sortie, soit
  • Une valeur de configuration qui n'aurait jamais dû être codée en dur en premier lieu.

Dans les deux cas, le mode de défaillance est silencieux : les requêtes réussissent (le domaine résout vers une page de documentation ou rien du tout), aucune exception n'est levée, et le bug n'est remarqué que lorsque quelqu'un demande pourquoi les inscriptions n'arrivent pas.

Exemple

SIGNUP_URL = "https://example.com/signup"

À utiliser à la place

Déplacez la valeur dans la configuration, ou mettez la vraie URL en clair.

SIGNUP_URL = settings.signup_url

Options

Option Défaut Description
mock_data.enabled false Opt-in.
mock_data.domains (liste RFC 2606) Remplace ou étend la liste de domaines réservés.
mock_data.min_severity "info" Passer à "warning" pour ne conserver que les résultats de ce niveau.
mock_data.ignore_tests true Ignore les fichiers de test.
mock_data.ignore_patterns [] Motifs regex confrontés aux chemins de fichiers.

Références