{"title":"Test des applications GeoDjango","version":"1.9","locale":"fr","docname":"ref/contrib/gis/testing","url":"/fr/1.9/ref/contrib/gis/testing/","canonical":"https://djangodocs.dev/fr/1.9/ref/contrib/gis/testing/","summary":"Dans cette documentation, vous trouverez des notes et des réglages supplémentaires pour les utilisateurs de PostGIS . PostGIS Lien vers cette rubrique # Réglages…","html":"<h1>Test des applications GeoDjango<a class=\"heading-anchor\" href=\"#testing-geodjango-apps\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>Dans cette documentation, vous trouverez des notes et des réglages supplémentaires pour les utilisateurs de <a class=\"reference internal\" href=\"#testing-postgis\"><span class=\"std std-ref\">PostGIS</span></a>.</p>\n<section id=\"postgis\">\n<span id=\"testing-postgis\"></span><h2>PostGIS<a class=\"heading-anchor\" href=\"#postgis\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<section id=\"settings\">\n<h3>Réglages<a class=\"heading-anchor\" href=\"#settings\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Note</p>\n<p>Les réglages ci-dessous ont des valeurs par défaut raisonnables et n’ont généralement pas besoin d’être définis manuellement.</p>\n</aside>\n<section id=\"postgis-version\">\n<span id=\"std-setting-POSTGIS_VERSION\"></span><h4><code class=\"docutils literal notranslate\"><span class=\"pre\">POSTGIS_VERSION</span></code><a class=\"heading-anchor\" href=\"#postgis-version\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Lorsque le moteur spatial de GeoDjango s’initialise avec PostGIS, il doit effectuer une requête SQL pour déterminer la version pour savoir quels sont les fonctionnalités disponibles. Les utilisateurs avancés souhaitant éviter cette requête supplémentaire peuvent définir la version de façon manuelle par un tuple à 3 éléments de nombres entiers indiquant les numéros de version majeur, mineur et micro de PostGIS. Par exemple, pour indiquer que la version de PostGIS est X.Y.Z, il faut écrire :</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"n\">POSTGIS_VERSION</span> <span class=\"o\">=</span> <span class=\"p\">(</span><span class=\"n\">X</span><span class=\"p\">,</span> <span class=\"n\">Y</span><span class=\"p\">,</span> <span class=\"n\">Z</span><span class=\"p\">)</span>\n</code></pre></div>\n</section>\n</section>\n<section id=\"obtaining-sufficient-privileges\">\n<h3>Obtention des privilèges nécessaires<a class=\"heading-anchor\" href=\"#obtaining-sufficient-privileges\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>En fonction de votre configuration, cette section décrit plusieurs méthodes pour configurer un utilisateur de base de données disposant de suffisamment de privilèges pour exécuter les tests pour des applications GeoDjango avec PostgreSQL. Si votre <a class=\"reference internal\" href=\"/fr/1.9/ref/contrib/gis/install/postgis/#spatialdb-template\"><span class=\"std std-ref\">modèle de base de données spatiale</span></a> a été créé en suivant les instructions, il suffit que l’utilisateur de la base de données de test ait les droits de créer des bases de données. Dans d’autres configurations, il se peut qu’il soit nécessaire d’utiliser un superutilisateur de base de données.</p>\n<section id=\"create-database-user\">\n<h4>Création d’un utilisateur de base de données<a class=\"heading-anchor\" href=\"#create-database-user\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Pour créer un utilisateur de base de données ayant le droit de créer des bases de données, utilisez la commande suivante :</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code>$ createuser --createdb -R -S &lt;user_name&gt;\n</code></pre></div>\n<p>Les drapeaux <code class=\"docutils literal notranslate\"><span class=\"pre\">-R</span> <span class=\"pre\">-S</span></code> indiquent respectivement que nous ne voulons pas que l’utilisateur puisse créer d’autres utilisateurs (ou rôles), ni qu’il soit un superutilisateur.</p>\n<p>Une autre possibilité est de modifier le rôle d’un utilisateur existant à partir du shell SQL (en supposant que cela se fasse à partir d’un compte superutilisateur) :</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"n\">postgres</span><span class=\"c1\"># ALTER ROLE &lt;user_name&gt; CREATEDB NOSUPERUSER NOCREATEROLE;</span>\n</code></pre></div>\n</section>\n<section id=\"create-database-superuser\">\n<h4>Création d’un superutilisateur de base de données<a class=\"heading-anchor\" href=\"#create-database-superuser\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Cela peut se faire au moment de la création de l’utilisateur, par exemple :</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code>$ createuser --superuser &lt;user_name&gt;\n</code></pre></div>\n<p>Ou vous pouvez modifier le rôle de l’utilisateur à partir du shell SQL (en supposant que cela se fasse à partir d’un compte superutilisateur existant) :</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"n\">postgres</span><span class=\"c1\"># ALTER ROLE &lt;user_name&gt; SUPERUSER;</span>\n</code></pre></div>\n</section>\n</section>\n<section id=\"windows\">\n<h3>Windows<a class=\"heading-anchor\" href=\"#windows\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Avec Windows, l’utilitaire pgAdmin III peut aussi être utilisé comme moyen simple pour ajouter des privilèges de superutilisateur à un utilisateur de base de données.</p>\n<p>Par défaut, l’installeur PostGIS sous Windows inclut un modèle de base de données spatiale nommé <code class=\"docutils literal notranslate\"><span class=\"pre\">template_postgis</span></code>.</p>\n</section>\n</section>\n<section id=\"geodjango-tests\">\n<span id=\"id1\"></span><h2>Tests de GeoDjango<a class=\"heading-anchor\" href=\"#geodjango-tests\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Pour que les tests de GeoDjango soient exécutés lors du <a class=\"reference internal\" href=\"/fr/1.9/internals/contributing/writing-code/unit-tests/#running-unit-tests\"><span class=\"std std-ref\">lancement de la suite de tests de Django</span></a> avec <code class=\"docutils literal notranslate\"><span class=\"pre\">runtests.py</span></code>, toutes les bases de données définies dans le fichier de réglages doivent utiliser l’un des <a class=\"reference internal\" href=\"/fr/1.9/ref/contrib/gis/db-api/#spatial-backends\"><span class=\"std std-ref\">moteurs de base de données spatiale</span></a>.</p>\n<section id=\"example\">\n<h3>Exemple<a class=\"heading-anchor\" href=\"#example\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>L’exemple suivant montre un fichier de réglages minimal définissant des moteurs spatiaux pouvant être utilisé pour exécuter la suite de tests complète de Django, y compris ceux situés dans <a class=\"reference internal\" href=\"/fr/1.9/ref/contrib/gis/#module-django.contrib.gis\" title=\"django.contrib.gis: Geographic Information System (GIS) extensions for Django\"><code class=\"xref py py-mod docutils literal notranslate\"><span class=\"pre\">django.contrib.gis</span></code></a>:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"n\">DATABASES</span> <span class=\"o\">=</span> <span class=\"p\">{</span>\n    <span class=\"s1\">&#39;default&#39;</span><span class=\"p\">:</span> <span class=\"p\">{</span>\n        <span class=\"s1\">&#39;ENGINE&#39;</span><span class=\"p\">:</span> <span class=\"s1\">&#39;django.contrib.gis.db.backends.postgis&#39;</span><span class=\"p\">,</span>\n        <span class=\"s1\">&#39;NAME&#39;</span><span class=\"p\">:</span> <span class=\"s1\">&#39;geodjango&#39;</span><span class=\"p\">,</span>\n        <span class=\"s1\">&#39;USER&#39;</span><span class=\"p\">:</span> <span class=\"s1\">&#39;geodjango&#39;</span><span class=\"p\">,</span>\n    <span class=\"p\">},</span>\n    <span class=\"s1\">&#39;other&#39;</span><span class=\"p\">:</span> <span class=\"p\">{</span>\n        <span class=\"s1\">&#39;ENGINE&#39;</span><span class=\"p\">:</span> <span class=\"s1\">&#39;django.contrib.gis.db.backends.postgis&#39;</span><span class=\"p\">,</span>\n        <span class=\"s1\">&#39;NAME&#39;</span><span class=\"p\">:</span> <span class=\"s1\">&#39;other&#39;</span><span class=\"p\">,</span>\n        <span class=\"s1\">&#39;USER&#39;</span><span class=\"p\">:</span> <span class=\"s1\">&#39;geodjango&#39;</span><span class=\"p\">,</span>\n    <span class=\"p\">},</span>\n<span class=\"p\">}</span>\n\n<span class=\"n\">SECRET_KEY</span> <span class=\"o\">=</span> <span class=\"s1\">&#39;django_tests_secret_key&#39;</span>\n</code></pre></div>\n<p>En supposant que les réglages ci-dessus se trouvent dans un fichier <code class=\"docutils literal notranslate\"><span class=\"pre\">postgis.py</span></code> dans le même répertoire que <code class=\"docutils literal notranslate\"><span class=\"pre\">runtests.py</span></code>, tous les tests de Django et GeoDjango seront effectués lors de l’exécution de la commande :</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code>$ ./runtests.py --settings=postgis\n</code></pre></div>\n<p>Pour ne lancer que la suite de tests de GeoDjango, indiquez <code class=\"docutils literal notranslate\"><span class=\"pre\">gis_tests</span></code>:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code>$ ./runtests.py --settings=postgis gis_tests\n</code></pre></div>\n</section>\n</section>","rootId":"testing-geodjango-apps","toc":[{"title":"PostGIS","anchor":"postgis","children":[{"title":"Réglages","anchor":"settings","children":[{"title":"POSTGIS_VERSION","anchor":"postgis-version","children":[]}]},{"title":"Obtention des privilèges nécessaires","anchor":"obtaining-sufficient-privileges","children":[{"title":"Création d’un utilisateur de base de données","anchor":"create-database-user","children":[]},{"title":"Création d’un superutilisateur de base de données","anchor":"create-database-superuser","children":[]}]},{"title":"Windows","anchor":"windows","children":[]}]},{"title":"Tests de GeoDjango","anchor":"geodjango-tests","children":[{"title":"Exemple","anchor":"example","children":[]}]}],"breadcrumbs":[{"docname":"ref/index","title":"Référence de l’API","url":"/fr/1.9/ref/"},{"docname":"ref/contrib/index","title":"Paquets contrib","url":"/fr/1.9/ref/contrib/"},{"docname":"ref/contrib/gis/index","title":"GeoDjango","url":"/fr/1.9/ref/contrib/gis/"}],"prev":{"docname":"ref/contrib/gis/sitemaps","title":"Cartes de sites géographiques","url":"/fr/1.9/ref/contrib/gis/sitemaps/"},"next":{"docname":"ref/contrib/gis/deployment","title":"Déploiement de GeoDjango","url":"/fr/1.9/ref/contrib/gis/deployment/"},"formats":{"html":"/fr/1.9/ref/contrib/gis/testing/","markdown":"/fr/1.9/ref/contrib/gis/testing.md","json":"/fr/1.9/ref/contrib/gis/testing.json"},"source":"https://github.com/django/django/blob/stable/1.9.x/docs/ref/contrib/gis/testing.txt","official":"https://docs.djangoproject.com/fr/1.9/ref/contrib/gis/testing/","inVersions":["6.1","6.0","5.2","5.1","5.0","4.2","4.1","4.0","3.2","3.1","3.0","2.2","2.1","2.0","1.11","1.10","1.9"],"inLocales":["en","fr","ja","id","pt-br","es"]}