diff --git a/MANIFEST.in b/MANIFEST.in index bf94bbd650f..7a9616cb488 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -19,14 +19,8 @@ recursive-include django/contrib/admin/templates * recursive-include django/contrib/admin/static * recursive-include django/contrib/admindocs/templates * recursive-include django/contrib/auth/templates * -recursive-include django/contrib/gis/gdal/tests/data * recursive-include django/contrib/gis/static * recursive-include django/contrib/gis/templates * -recursive-include django/contrib/gis/tests/data * -recursive-include django/contrib/gis/tests/distapp/fixtures * -recursive-include django/contrib/gis/tests/geoapp/fixtures * -recursive-include django/contrib/gis/tests/geogapp/fixtures * -recursive-include django/contrib/gis/tests/relatedapp/fixtures * recursive-include django/contrib/sitemaps/templates * recursive-exclude * __pycache__ recursive-exclude * *.py[co] diff --git a/django/contrib/gis/gdal/tests/__init__.py b/tests/gis_tests/__init__.py similarity index 100% rename from django/contrib/gis/gdal/tests/__init__.py rename to tests/gis_tests/__init__.py diff --git a/django/contrib/gis/tests/data/ch-city/ch-city.dbf b/tests/gis_tests/data/ch-city/ch-city.dbf similarity index 100% rename from django/contrib/gis/tests/data/ch-city/ch-city.dbf rename to tests/gis_tests/data/ch-city/ch-city.dbf diff --git a/django/contrib/gis/tests/data/ch-city/ch-city.prj b/tests/gis_tests/data/ch-city/ch-city.prj similarity index 100% rename from django/contrib/gis/tests/data/ch-city/ch-city.prj rename to tests/gis_tests/data/ch-city/ch-city.prj diff --git a/django/contrib/gis/tests/data/ch-city/ch-city.shp b/tests/gis_tests/data/ch-city/ch-city.shp similarity index 100% rename from django/contrib/gis/tests/data/ch-city/ch-city.shp rename to tests/gis_tests/data/ch-city/ch-city.shp diff --git a/django/contrib/gis/tests/data/ch-city/ch-city.shx b/tests/gis_tests/data/ch-city/ch-city.shx similarity index 100% rename from django/contrib/gis/tests/data/ch-city/ch-city.shx rename to tests/gis_tests/data/ch-city/ch-city.shx diff --git a/django/contrib/gis/tests/data/cities/cities.dbf b/tests/gis_tests/data/cities/cities.dbf similarity index 100% rename from django/contrib/gis/tests/data/cities/cities.dbf rename to tests/gis_tests/data/cities/cities.dbf diff --git a/django/contrib/gis/tests/data/cities/cities.prj b/tests/gis_tests/data/cities/cities.prj similarity index 100% rename from django/contrib/gis/tests/data/cities/cities.prj rename to tests/gis_tests/data/cities/cities.prj diff --git a/django/contrib/gis/tests/data/cities/cities.shp b/tests/gis_tests/data/cities/cities.shp similarity index 100% rename from django/contrib/gis/tests/data/cities/cities.shp rename to tests/gis_tests/data/cities/cities.shp diff --git a/django/contrib/gis/tests/data/cities/cities.shx b/tests/gis_tests/data/cities/cities.shx similarity index 100% rename from django/contrib/gis/tests/data/cities/cities.shx rename to tests/gis_tests/data/cities/cities.shx diff --git a/django/contrib/gis/tests/data/counties/counties.dbf b/tests/gis_tests/data/counties/counties.dbf similarity index 100% rename from django/contrib/gis/tests/data/counties/counties.dbf rename to tests/gis_tests/data/counties/counties.dbf diff --git a/django/contrib/gis/tests/data/counties/counties.shp b/tests/gis_tests/data/counties/counties.shp similarity index 100% rename from django/contrib/gis/tests/data/counties/counties.shp rename to tests/gis_tests/data/counties/counties.shp diff --git a/django/contrib/gis/tests/data/counties/counties.shx b/tests/gis_tests/data/counties/counties.shx similarity index 100% rename from django/contrib/gis/tests/data/counties/counties.shx rename to tests/gis_tests/data/counties/counties.shx diff --git a/django/contrib/gis/tests/data/geometries.json b/tests/gis_tests/data/geometries.json similarity index 100% rename from django/contrib/gis/tests/data/geometries.json rename to tests/gis_tests/data/geometries.json diff --git a/django/contrib/gis/tests/data/interstates/interstates.dbf b/tests/gis_tests/data/interstates/interstates.dbf similarity index 100% rename from django/contrib/gis/tests/data/interstates/interstates.dbf rename to tests/gis_tests/data/interstates/interstates.dbf diff --git a/django/contrib/gis/tests/data/interstates/interstates.prj b/tests/gis_tests/data/interstates/interstates.prj similarity index 100% rename from django/contrib/gis/tests/data/interstates/interstates.prj rename to tests/gis_tests/data/interstates/interstates.prj diff --git a/django/contrib/gis/tests/data/interstates/interstates.shp b/tests/gis_tests/data/interstates/interstates.shp similarity index 100% rename from django/contrib/gis/tests/data/interstates/interstates.shp rename to tests/gis_tests/data/interstates/interstates.shp diff --git a/django/contrib/gis/tests/data/interstates/interstates.shx b/tests/gis_tests/data/interstates/interstates.shx similarity index 100% rename from django/contrib/gis/tests/data/interstates/interstates.shx rename to tests/gis_tests/data/interstates/interstates.shx diff --git a/django/contrib/gis/tests/data/invalid/emptypoints.dbf b/tests/gis_tests/data/invalid/emptypoints.dbf similarity index 100% rename from django/contrib/gis/tests/data/invalid/emptypoints.dbf rename to tests/gis_tests/data/invalid/emptypoints.dbf diff --git a/django/contrib/gis/tests/data/invalid/emptypoints.shp b/tests/gis_tests/data/invalid/emptypoints.shp similarity index 100% rename from django/contrib/gis/tests/data/invalid/emptypoints.shp rename to tests/gis_tests/data/invalid/emptypoints.shp diff --git a/django/contrib/gis/tests/data/invalid/emptypoints.shx b/tests/gis_tests/data/invalid/emptypoints.shx similarity index 100% rename from django/contrib/gis/tests/data/invalid/emptypoints.shx rename to tests/gis_tests/data/invalid/emptypoints.shx diff --git a/django/contrib/gis/tests/data/test_point/test_point.dbf b/tests/gis_tests/data/test_point/test_point.dbf similarity index 100% rename from django/contrib/gis/tests/data/test_point/test_point.dbf rename to tests/gis_tests/data/test_point/test_point.dbf diff --git a/django/contrib/gis/tests/data/test_point/test_point.prj b/tests/gis_tests/data/test_point/test_point.prj similarity index 100% rename from django/contrib/gis/tests/data/test_point/test_point.prj rename to tests/gis_tests/data/test_point/test_point.prj diff --git a/django/contrib/gis/tests/data/test_point/test_point.shp b/tests/gis_tests/data/test_point/test_point.shp similarity index 100% rename from django/contrib/gis/tests/data/test_point/test_point.shp rename to tests/gis_tests/data/test_point/test_point.shp diff --git a/django/contrib/gis/tests/data/test_point/test_point.shx b/tests/gis_tests/data/test_point/test_point.shx similarity index 100% rename from django/contrib/gis/tests/data/test_point/test_point.shx rename to tests/gis_tests/data/test_point/test_point.shx diff --git a/django/contrib/gis/tests/data/test_poly/test_poly.dbf b/tests/gis_tests/data/test_poly/test_poly.dbf similarity index 100% rename from django/contrib/gis/tests/data/test_poly/test_poly.dbf rename to tests/gis_tests/data/test_poly/test_poly.dbf diff --git a/django/contrib/gis/tests/data/test_poly/test_poly.prj b/tests/gis_tests/data/test_poly/test_poly.prj similarity index 100% rename from django/contrib/gis/tests/data/test_poly/test_poly.prj rename to tests/gis_tests/data/test_poly/test_poly.prj diff --git a/django/contrib/gis/tests/data/test_poly/test_poly.shp b/tests/gis_tests/data/test_poly/test_poly.shp similarity index 100% rename from django/contrib/gis/tests/data/test_poly/test_poly.shp rename to tests/gis_tests/data/test_poly/test_poly.shp diff --git a/django/contrib/gis/tests/data/test_poly/test_poly.shx b/tests/gis_tests/data/test_poly/test_poly.shx similarity index 100% rename from django/contrib/gis/tests/data/test_poly/test_poly.shx rename to tests/gis_tests/data/test_poly/test_poly.shx diff --git a/django/contrib/gis/tests/data/test_vrt/test_vrt.csv b/tests/gis_tests/data/test_vrt/test_vrt.csv similarity index 100% rename from django/contrib/gis/tests/data/test_vrt/test_vrt.csv rename to tests/gis_tests/data/test_vrt/test_vrt.csv diff --git a/django/contrib/gis/tests/data/test_vrt/test_vrt.vrt b/tests/gis_tests/data/test_vrt/test_vrt.vrt similarity index 100% rename from django/contrib/gis/tests/data/test_vrt/test_vrt.vrt rename to tests/gis_tests/data/test_vrt/test_vrt.vrt diff --git a/django/contrib/gis/tests/data/texas.dbf b/tests/gis_tests/data/texas.dbf similarity index 100% rename from django/contrib/gis/tests/data/texas.dbf rename to tests/gis_tests/data/texas.dbf diff --git a/django/contrib/gis/geos/tests/__init__.py b/tests/gis_tests/distapp/__init__.py similarity index 100% rename from django/contrib/gis/geos/tests/__init__.py rename to tests/gis_tests/distapp/__init__.py diff --git a/django/contrib/gis/tests/distapp/fixtures/initial.json b/tests/gis_tests/distapp/fixtures/initial.json similarity index 100% rename from django/contrib/gis/tests/distapp/fixtures/initial.json rename to tests/gis_tests/distapp/fixtures/initial.json diff --git a/django/contrib/gis/tests/distapp/models.py b/tests/gis_tests/distapp/models.py similarity index 93% rename from django/contrib/gis/tests/distapp/models.py rename to tests/gis_tests/distapp/models.py index 87694a424f9..255bc08bb01 100644 --- a/django/contrib/gis/tests/distapp/models.py +++ b/tests/gis_tests/distapp/models.py @@ -1,7 +1,8 @@ from django.contrib.gis.db import models -from django.contrib.gis.tests.utils import gisfield_may_be_null from django.utils.encoding import python_2_unicode_compatible +from ..utils import gisfield_may_be_null + @python_2_unicode_compatible class NamedModel(models.Model): @@ -11,7 +12,6 @@ class NamedModel(models.Model): class Meta: abstract = True - app_label = 'distapp' def __str__(self): return self.name diff --git a/django/contrib/gis/tests/distapp/tests.py b/tests/gis_tests/distapp/tests.py similarity index 99% rename from django/contrib/gis/tests/distapp/tests.py rename to tests/gis_tests/distapp/tests.py index 4c2ea609503..b9ba7e4df80 100644 --- a/django/contrib/gis/tests/distapp/tests.py +++ b/tests/gis_tests/distapp/tests.py @@ -2,13 +2,12 @@ from __future__ import unicode_literals from django.contrib.gis.geos import HAS_GEOS from django.contrib.gis.measure import D # alias for Distance -from django.contrib.gis.tests.utils import ( - no_oracle, oracle, postgis, spatialite, -) from django.db import connection from django.db.models import Q from django.test import TestCase, skipUnlessDBFeature +from ..utils import no_oracle, oracle, postgis, spatialite + if HAS_GEOS: from django.contrib.gis.geos import GEOSGeometry, LineString diff --git a/django/contrib/gis/tests/__init__.py b/tests/gis_tests/gdal_tests/__init__.py similarity index 100% rename from django/contrib/gis/tests/__init__.py rename to tests/gis_tests/gdal_tests/__init__.py diff --git a/django/contrib/gis/gdal/tests/data/raster.tif b/tests/gis_tests/gdal_tests/data/raster.tif similarity index 100% rename from django/contrib/gis/gdal/tests/data/raster.tif rename to tests/gis_tests/gdal_tests/data/raster.tif diff --git a/django/contrib/gis/gdal/tests/test_driver.py b/tests/gis_tests/gdal_tests/test_driver.py similarity index 100% rename from django/contrib/gis/gdal/tests/test_driver.py rename to tests/gis_tests/gdal_tests/test_driver.py diff --git a/django/contrib/gis/gdal/tests/test_ds.py b/tests/gis_tests/gdal_tests/test_ds.py similarity index 99% rename from django/contrib/gis/gdal/tests/test_ds.py rename to tests/gis_tests/gdal_tests/test_ds.py index ef62c160cc0..a0dcfb53e4c 100644 --- a/django/contrib/gis/gdal/tests/test_ds.py +++ b/tests/gis_tests/gdal_tests/test_ds.py @@ -3,9 +3,8 @@ import unittest from unittest import skipUnless from django.contrib.gis.gdal import HAS_GDAL -from django.contrib.gis.geometry.test_data import ( - TEST_DATA, TestDS, get_ds_file, -) + +from ..test_data import TEST_DATA, TestDS, get_ds_file if HAS_GDAL: from django.contrib.gis.gdal import DataSource, Envelope, OGRGeometry, GDALException, OGRIndexError, GDAL_VERSION diff --git a/django/contrib/gis/gdal/tests/test_envelope.py b/tests/gis_tests/gdal_tests/test_envelope.py similarity index 100% rename from django/contrib/gis/gdal/tests/test_envelope.py rename to tests/gis_tests/gdal_tests/test_envelope.py diff --git a/django/contrib/gis/gdal/tests/test_geom.py b/tests/gis_tests/gdal_tests/test_geom.py similarity index 99% rename from django/contrib/gis/gdal/tests/test_geom.py rename to tests/gis_tests/gdal_tests/test_geom.py index 33b70b4df37..dd8047628d6 100644 --- a/django/contrib/gis/gdal/tests/test_geom.py +++ b/tests/gis_tests/gdal_tests/test_geom.py @@ -4,9 +4,10 @@ from binascii import b2a_hex from unittest import skipUnless from django.contrib.gis.gdal import HAS_GDAL -from django.contrib.gis.geometry.test_data import TestDataMixin from django.utils.six.moves import range +from ..test_data import TestDataMixin + try: from django.utils.six.moves import cPickle as pickle except ImportError: diff --git a/django/contrib/gis/gdal/tests/test_raster.py b/tests/gis_tests/gdal_tests/test_raster.py similarity index 100% rename from django/contrib/gis/gdal/tests/test_raster.py rename to tests/gis_tests/gdal_tests/test_raster.py diff --git a/django/contrib/gis/gdal/tests/test_srs.py b/tests/gis_tests/gdal_tests/test_srs.py similarity index 100% rename from django/contrib/gis/gdal/tests/test_srs.py rename to tests/gis_tests/gdal_tests/test_srs.py diff --git a/django/contrib/gis/tests/distapp/__init__.py b/tests/gis_tests/geo3d/__init__.py similarity index 100% rename from django/contrib/gis/tests/distapp/__init__.py rename to tests/gis_tests/geo3d/__init__.py diff --git a/django/contrib/gis/tests/geo3d/models.py b/tests/gis_tests/geo3d/models.py similarity index 95% rename from django/contrib/gis/tests/geo3d/models.py rename to tests/gis_tests/geo3d/models.py index 2244ed8b157..9575966e75a 100644 --- a/django/contrib/gis/tests/geo3d/models.py +++ b/tests/gis_tests/geo3d/models.py @@ -10,7 +10,6 @@ class NamedModel(models.Model): class Meta: abstract = True - app_label = 'geo3d' def __str__(self): return self.name @@ -50,7 +49,6 @@ class SimpleModel(models.Model): class Meta: abstract = True - app_label = 'geo3d' class Point2D(SimpleModel): diff --git a/django/contrib/gis/tests/geo3d/tests.py b/tests/gis_tests/geo3d/tests.py similarity index 100% rename from django/contrib/gis/tests/geo3d/tests.py rename to tests/gis_tests/geo3d/tests.py diff --git a/django/contrib/gis/tests/geo3d/views.py b/tests/gis_tests/geo3d/views.py similarity index 100% rename from django/contrib/gis/tests/geo3d/views.py rename to tests/gis_tests/geo3d/views.py diff --git a/django/contrib/gis/tests/geo3d/__init__.py b/tests/gis_tests/geoadmin/__init__.py similarity index 100% rename from django/contrib/gis/tests/geo3d/__init__.py rename to tests/gis_tests/geoadmin/__init__.py diff --git a/django/contrib/gis/tests/geoadmin/admin.py b/tests/gis_tests/geoadmin/admin.py similarity index 100% rename from django/contrib/gis/tests/geoadmin/admin.py rename to tests/gis_tests/geoadmin/admin.py diff --git a/django/contrib/gis/tests/geoadmin/models.py b/tests/gis_tests/geoadmin/models.py similarity index 100% rename from django/contrib/gis/tests/geoadmin/models.py rename to tests/gis_tests/geoadmin/models.py diff --git a/django/contrib/gis/tests/geoadmin/tests.py b/tests/gis_tests/geoadmin/tests.py similarity index 100% rename from django/contrib/gis/tests/geoadmin/tests.py rename to tests/gis_tests/geoadmin/tests.py diff --git a/django/contrib/gis/tests/geoadmin/urls.py b/tests/gis_tests/geoadmin/urls.py similarity index 100% rename from django/contrib/gis/tests/geoadmin/urls.py rename to tests/gis_tests/geoadmin/urls.py diff --git a/django/contrib/gis/tests/geoadmin/__init__.py b/tests/gis_tests/geoapp/__init__.py similarity index 100% rename from django/contrib/gis/tests/geoadmin/__init__.py rename to tests/gis_tests/geoapp/__init__.py diff --git a/django/contrib/gis/tests/geoapp/feeds.py b/tests/gis_tests/geoapp/feeds.py similarity index 100% rename from django/contrib/gis/tests/geoapp/feeds.py rename to tests/gis_tests/geoapp/feeds.py diff --git a/django/contrib/gis/tests/geoapp/fixtures/initial.json.gz b/tests/gis_tests/geoapp/fixtures/initial.json.gz similarity index 100% rename from django/contrib/gis/tests/geoapp/fixtures/initial.json.gz rename to tests/gis_tests/geoapp/fixtures/initial.json.gz diff --git a/django/contrib/gis/tests/geoapp/models.py b/tests/gis_tests/geoapp/models.py similarity index 95% rename from django/contrib/gis/tests/geoapp/models.py rename to tests/gis_tests/geoapp/models.py index 38e19cdea66..a0e910684df 100644 --- a/django/contrib/gis/tests/geoapp/models.py +++ b/tests/gis_tests/geoapp/models.py @@ -1,7 +1,8 @@ from django.contrib.gis.db import models -from django.contrib.gis.tests.utils import gisfield_may_be_null from django.utils.encoding import python_2_unicode_compatible +from ..utils import gisfield_may_be_null + @python_2_unicode_compatible class NamedModel(models.Model): @@ -11,7 +12,6 @@ class NamedModel(models.Model): class Meta: abstract = True - app_label = 'geoapp' def __str__(self): return self.name @@ -24,6 +24,9 @@ class Country(NamedModel): class City(NamedModel): point = models.PointField() + class Meta: + app_label = 'geoapp' + # This is an inherited model from City class PennsylvaniaCity(City): @@ -41,6 +44,9 @@ class PennsylvaniaCity(City): class State(NamedModel): poly = models.PolygonField(null=gisfield_may_be_null) # Allowing NULL geometries here. + class Meta: + app_label = 'geoapp' + class Track(NamedModel): line = models.LineStringField() @@ -57,9 +63,6 @@ class Truth(models.Model): objects = models.GeoManager() - class Meta: - app_label = 'geoapp' - class Feature(NamedModel): geom = models.GeometryField() @@ -70,9 +73,6 @@ class MinusOneSRID(models.Model): objects = models.GeoManager() - class Meta: - app_label = 'geoapp' - class NonConcreteField(models.IntegerField): diff --git a/django/contrib/gis/tests/geoapp/sitemaps.py b/tests/gis_tests/geoapp/sitemaps.py similarity index 100% rename from django/contrib/gis/tests/geoapp/sitemaps.py rename to tests/gis_tests/geoapp/sitemaps.py diff --git a/django/contrib/gis/tests/geoapp/test_feeds.py b/tests/gis_tests/geoapp/test_feeds.py similarity index 98% rename from django/contrib/gis/tests/geoapp/test_feeds.py rename to tests/gis_tests/geoapp/test_feeds.py index 19a6f69b008..baf2051364a 100644 --- a/django/contrib/gis/tests/geoapp/test_feeds.py +++ b/tests/gis_tests/geoapp/test_feeds.py @@ -14,7 +14,7 @@ if HAS_GEOS: @modify_settings(INSTALLED_APPS={'append': 'django.contrib.sites'}) -@override_settings(ROOT_URLCONF='django.contrib.gis.tests.geoapp.urls') +@override_settings(ROOT_URLCONF='gis_tests.geoapp.urls') @skipUnlessDBFeature("gis_enabled") class GeoFeedTest(TestCase): fixtures = ['initial'] diff --git a/django/contrib/gis/tests/geoapp/test_regress.py b/tests/gis_tests/geoapp/test_regress.py similarity index 98% rename from django/contrib/gis/tests/geoapp/test_regress.py rename to tests/gis_tests/geoapp/test_regress.py index 60dbe5e56d3..e3f54379913 100644 --- a/django/contrib/gis/tests/geoapp/test_regress.py +++ b/tests/gis_tests/geoapp/test_regress.py @@ -5,10 +5,11 @@ from datetime import datetime from django.contrib.gis.geos import HAS_GEOS from django.contrib.gis.shortcuts import render_to_kmz -from django.contrib.gis.tests.utils import no_oracle from django.db.models import Count, Min from django.test import TestCase, skipUnlessDBFeature +from ..utils import no_oracle + if HAS_GEOS: from django.contrib.gis.db.models import Extent from .models import City, PennsylvaniaCity, State, Truth diff --git a/django/contrib/gis/tests/geoapp/test_serializers.py b/tests/gis_tests/geoapp/test_serializers.py similarity index 100% rename from django/contrib/gis/tests/geoapp/test_serializers.py rename to tests/gis_tests/geoapp/test_serializers.py diff --git a/django/contrib/gis/tests/geoapp/test_sitemaps.py b/tests/gis_tests/geoapp/test_sitemaps.py similarity index 97% rename from django/contrib/gis/tests/geoapp/test_sitemaps.py rename to tests/gis_tests/geoapp/test_sitemaps.py index 6a2d1f40b83..416166b1985 100644 --- a/django/contrib/gis/tests/geoapp/test_sitemaps.py +++ b/tests/gis_tests/geoapp/test_sitemaps.py @@ -18,7 +18,7 @@ if HAS_GEOS: @modify_settings(INSTALLED_APPS={'append': ['django.contrib.sites', 'django.contrib.sitemaps']}) -@override_settings(ROOT_URLCONF='django.contrib.gis.tests.geoapp.urls') +@override_settings(ROOT_URLCONF='gis_tests.geoapp.urls') @skipUnlessDBFeature("gis_enabled") class GeoSitemapTest(TestCase): diff --git a/django/contrib/gis/tests/geoapp/tests.py b/tests/gis_tests/geoapp/tests.py similarity index 99% rename from django/contrib/gis/tests/geoapp/tests.py rename to tests/gis_tests/geoapp/tests.py index 23a74372316..e49dd5118c1 100644 --- a/django/contrib/gis/tests/geoapp/tests.py +++ b/tests/gis_tests/geoapp/tests.py @@ -5,15 +5,14 @@ from tempfile import NamedTemporaryFile from django.contrib.gis import gdal from django.contrib.gis.geos import HAS_GEOS -from django.contrib.gis.tests.utils import ( - no_oracle, oracle, postgis, spatialite, -) from django.core.management import call_command from django.db import connection from django.test import TestCase, ignore_warnings, skipUnlessDBFeature from django.utils import six from django.utils.deprecation import RemovedInDjango20Warning +from ..utils import no_oracle, oracle, postgis, spatialite + if HAS_GEOS: from django.contrib.gis.db.models import Extent, MakeLine, Union from django.contrib.gis.geos import (fromstr, GEOSGeometry, diff --git a/django/contrib/gis/tests/geoapp/urls.py b/tests/gis_tests/geoapp/urls.py similarity index 100% rename from django/contrib/gis/tests/geoapp/urls.py rename to tests/gis_tests/geoapp/urls.py diff --git a/django/contrib/gis/tests/geoapp/__init__.py b/tests/gis_tests/geogapp/__init__.py similarity index 100% rename from django/contrib/gis/tests/geoapp/__init__.py rename to tests/gis_tests/geogapp/__init__.py diff --git a/django/contrib/gis/tests/geogapp/fixtures/initial.json b/tests/gis_tests/geogapp/fixtures/initial.json similarity index 100% rename from django/contrib/gis/tests/geogapp/fixtures/initial.json rename to tests/gis_tests/geogapp/fixtures/initial.json diff --git a/django/contrib/gis/tests/geogapp/models.py b/tests/gis_tests/geogapp/models.py similarity index 92% rename from django/contrib/gis/tests/geogapp/models.py rename to tests/gis_tests/geogapp/models.py index f6f127ca96a..75102d22c9f 100644 --- a/django/contrib/gis/tests/geogapp/models.py +++ b/tests/gis_tests/geogapp/models.py @@ -10,7 +10,6 @@ class NamedModel(models.Model): class Meta: abstract = True - app_label = 'geogapp' def __str__(self): return self.name @@ -19,6 +18,9 @@ class NamedModel(models.Model): class City(NamedModel): point = models.PointField(geography=True) + class Meta: + app_label = 'geogapp' + class Zipcode(NamedModel): code = models.CharField(max_length=10) @@ -29,5 +31,8 @@ class County(NamedModel): state = models.CharField(max_length=20) mpoly = models.MultiPolygonField(geography=True) + class Meta: + app_label = 'geogapp' + def __str__(self): return ' County, '.join([self.name, self.state]) diff --git a/django/contrib/gis/tests/geogapp/tests.py b/tests/gis_tests/geogapp/tests.py similarity index 98% rename from django/contrib/gis/tests/geogapp/tests.py rename to tests/gis_tests/geogapp/tests.py index 607b1175e7a..e3e97f47cda 100644 --- a/django/contrib/gis/tests/geogapp/tests.py +++ b/tests/gis_tests/geogapp/tests.py @@ -9,10 +9,11 @@ from unittest import skipUnless from django.contrib.gis.gdal import HAS_GDAL from django.contrib.gis.geos import HAS_GEOS from django.contrib.gis.measure import D -from django.contrib.gis.tests.utils import oracle, postgis from django.test import TestCase, skipUnlessDBFeature from django.utils._os import upath +from ..utils import oracle, postgis + if HAS_GEOS: from .models import City, County, Zipcode diff --git a/django/contrib/gis/tests/geogapp/__init__.py b/tests/gis_tests/geos_tests/__init__.py similarity index 100% rename from django/contrib/gis/tests/geogapp/__init__.py rename to tests/gis_tests/geos_tests/__init__.py diff --git a/django/contrib/gis/geos/tests/test_geos.py b/tests/gis_tests/geos_tests/test_geos.py similarity index 99% rename from django/contrib/gis/geos/tests/test_geos.py rename to tests/gis_tests/geos_tests/test_geos.py index a288300f8f2..9430a9b4bb6 100644 --- a/django/contrib/gis/geos/tests/test_geos.py +++ b/tests/gis_tests/geos_tests/test_geos.py @@ -9,19 +9,21 @@ from io import BytesIO from unittest import skipUnless from django.contrib.gis.gdal import HAS_GDAL -from django.contrib.gis.geometry.test_data import TestDataMixin +from django.contrib.gis.geos import HAS_GEOS from django.contrib.gis.shortcuts import numpy from django.utils import six from django.utils.encoding import force_bytes from django.utils.six.moves import range -from .. import HAS_GEOS +from ..test_data import TestDataMixin if HAS_GEOS: - from .. import (GEOSException, GEOSIndexError, GEOSGeometry, - GeometryCollection, Point, MultiPoint, Polygon, MultiPolygon, LinearRing, - LineString, MultiLineString, fromfile, fromstr, geos_version_info) - from ..base import gdal, GEOSBase + from django.contrib.gis.geos import ( + GEOSException, GEOSIndexError, GEOSGeometry, GeometryCollection, Point, + MultiPoint, Polygon, MultiPolygon, LinearRing, LineString, + MultiLineString, fromfile, fromstr, geos_version_info, + ) + from django.contrib.gis.geos.base import gdal, GEOSBase @skipUnless(HAS_GEOS, "Geos is required.") diff --git a/django/contrib/gis/geos/tests/test_geos_mutation.py b/tests/gis_tests/geos_tests/test_geos_mutation.py similarity index 95% rename from django/contrib/gis/geos/tests/test_geos_mutation.py rename to tests/gis_tests/geos_tests/test_geos_mutation.py index db9f12d3b63..e88339775b7 100644 --- a/django/contrib/gis/geos/tests/test_geos_mutation.py +++ b/tests/gis_tests/geos_tests/test_geos_mutation.py @@ -5,11 +5,13 @@ import unittest from unittest import skipUnless -from .. import HAS_GEOS +from django.contrib.gis.geos import HAS_GEOS if HAS_GEOS: - from .. import fromstr, LinearRing, LineString, MultiPoint, Point, Polygon - from ..error import GEOSIndexError + from django.contrib.gis.geos import ( + fromstr, LinearRing, LineString, MultiPoint, Point, Polygon, + ) + from django.contrib.gis.geos.error import GEOSIndexError if HAS_GEOS: diff --git a/django/contrib/gis/geos/tests/test_io.py b/tests/gis_tests/geos_tests/test_io.py similarity index 96% rename from django/contrib/gis/geos/tests/test_io.py rename to tests/gis_tests/geos_tests/test_io.py index 08ff6c13e88..95f84bbb4f4 100644 --- a/django/contrib/gis/geos/tests/test_io.py +++ b/tests/gis_tests/geos_tests/test_io.py @@ -4,12 +4,13 @@ import binascii import unittest from unittest import skipUnless +from django.contrib.gis.geos import HAS_GEOS from django.utils.six import memoryview -from ..import HAS_GEOS # isort:skip - if HAS_GEOS: - from .. import GEOSGeometry, WKTReader, WKTWriter, WKBReader, WKBWriter + from django.contrib.gis.geos import ( + GEOSGeometry, WKTReader, WKTWriter, WKBReader, WKBWriter, + ) @skipUnless(HAS_GEOS, "Geos is required.") diff --git a/django/contrib/gis/geos/tests/test_mutable_list.py b/tests/gis_tests/geos_tests/test_mutable_list.py similarity index 100% rename from django/contrib/gis/geos/tests/test_mutable_list.py rename to tests/gis_tests/geos_tests/test_mutable_list.py diff --git a/django/contrib/gis/tests/gis_migrations/__init__.py b/tests/gis_tests/gis_migrations/__init__.py similarity index 100% rename from django/contrib/gis/tests/gis_migrations/__init__.py rename to tests/gis_tests/gis_migrations/__init__.py diff --git a/django/contrib/gis/tests/gis_migrations/migrations/0001_initial.py b/tests/gis_tests/gis_migrations/migrations/0001_initial.py similarity index 100% rename from django/contrib/gis/tests/gis_migrations/migrations/0001_initial.py rename to tests/gis_tests/gis_migrations/migrations/0001_initial.py diff --git a/django/contrib/gis/tests/gis_migrations/migrations/__init__.py b/tests/gis_tests/gis_migrations/migrations/__init__.py similarity index 100% rename from django/contrib/gis/tests/gis_migrations/migrations/__init__.py rename to tests/gis_tests/gis_migrations/migrations/__init__.py diff --git a/django/contrib/gis/tests/gis_migrations/test_commands.py b/tests/gis_tests/gis_migrations/test_commands.py similarity index 97% rename from django/contrib/gis/tests/gis_migrations/test_commands.py rename to tests/gis_tests/gis_migrations/test_commands.py index 076215465dd..b4fe597bca2 100644 --- a/django/contrib/gis/tests/gis_migrations/test_commands.py +++ b/tests/gis_tests/gis_migrations/test_commands.py @@ -10,7 +10,7 @@ class MigrateTests(TransactionTestCase): """ Tests running the migrate command in Geodjango. """ - available_apps = ["django.contrib.gis.tests.gis_migrations"] + available_apps = ["gis_tests.gis_migrations"] def get_table_description(self, table): with connection.cursor() as cursor: diff --git a/django/contrib/gis/tests/gis_migrations/test_operations.py b/tests/gis_tests/gis_migrations/test_operations.py similarity index 98% rename from django/contrib/gis/tests/gis_migrations/test_operations.py rename to tests/gis_tests/gis_migrations/test_operations.py index 9bfe55b0bf3..7af8da74e5a 100644 --- a/django/contrib/gis/tests/gis_migrations/test_operations.py +++ b/tests/gis_tests/gis_migrations/test_operations.py @@ -1,11 +1,12 @@ from __future__ import unicode_literals -from django.contrib.gis.tests.utils import mysql from django.db import connection, migrations, models from django.db.migrations.migration import Migration from django.db.migrations.state import ProjectState from django.test import TransactionTestCase, skipUnlessDBFeature +from ..utils import mysql + if connection.features.gis_enabled: from django.contrib.gis.db.models import fields try: @@ -17,7 +18,7 @@ if connection.features.gis_enabled: @skipUnlessDBFeature("gis_enabled") class OperationTests(TransactionTestCase): - available_apps = ["django.contrib.gis.tests.gis_migrations"] + available_apps = ["gis_tests.gis_migrations"] def tearDown(self): # Delete table after testing diff --git a/django/contrib/gis/tests/inspectapp/__init__.py b/tests/gis_tests/inspectapp/__init__.py similarity index 100% rename from django/contrib/gis/tests/inspectapp/__init__.py rename to tests/gis_tests/inspectapp/__init__.py diff --git a/django/contrib/gis/tests/inspectapp/models.py b/tests/gis_tests/inspectapp/models.py similarity index 89% rename from django/contrib/gis/tests/inspectapp/models.py rename to tests/gis_tests/inspectapp/models.py index caf45fad9ad..a649605487b 100644 --- a/django/contrib/gis/tests/inspectapp/models.py +++ b/tests/gis_tests/inspectapp/models.py @@ -14,6 +14,3 @@ class AllOGRFields(models.Model): point = models.PointField() objects = models.GeoManager() - - class Meta: - app_label = 'inspectapp' diff --git a/django/contrib/gis/tests/inspectapp/tests.py b/tests/gis_tests/inspectapp/tests.py similarity index 99% rename from django/contrib/gis/tests/inspectapp/tests.py rename to tests/gis_tests/inspectapp/tests.py index 8e2f54c5178..19d5aa054ce 100644 --- a/django/contrib/gis/tests/inspectapp/tests.py +++ b/tests/gis_tests/inspectapp/tests.py @@ -5,12 +5,13 @@ import re from unittest import skipUnless from django.contrib.gis.gdal import HAS_GDAL -from django.contrib.gis.geometry.test_data import TEST_DATA from django.core.management import call_command from django.db import connection, connections from django.test import TestCase, skipUnlessDBFeature from django.utils.six import StringIO +from ..test_data import TEST_DATA + if HAS_GDAL: from django.contrib.gis.gdal import Driver, GDALException from django.contrib.gis.utils.ogrinspect import ogrinspect diff --git a/django/contrib/gis/tests/layermap/__init__.py b/tests/gis_tests/layermap/__init__.py similarity index 100% rename from django/contrib/gis/tests/layermap/__init__.py rename to tests/gis_tests/layermap/__init__.py diff --git a/django/contrib/gis/tests/layermap/models.py b/tests/gis_tests/layermap/models.py similarity index 99% rename from django/contrib/gis/tests/layermap/models.py rename to tests/gis_tests/layermap/models.py index 52483867fdb..f2c78825476 100644 --- a/django/contrib/gis/tests/layermap/models.py +++ b/tests/gis_tests/layermap/models.py @@ -10,7 +10,6 @@ class NamedModel(models.Model): class Meta: abstract = True - app_label = 'layermap' def __str__(self): return self.name @@ -37,11 +36,17 @@ class City(NamedModel): dt = models.DateField() point = models.PointField() + class Meta: + app_label = 'layermap' + class Interstate(NamedModel): length = models.DecimalField(max_digits=6, decimal_places=2) path = models.LineStringField() + class Meta: + app_label = 'layermap' + # Same as `City` above, but for testing model inheritance. class CityBase(NamedModel): @@ -67,9 +72,6 @@ class ICity2(ICity1): class Invalid(models.Model): point = models.PointField() - class Meta: - app_label = 'layermap' - # Mapping dictionaries for the models above. co_mapping = { diff --git a/django/contrib/gis/tests/layermap/tests.py b/tests/gis_tests/layermap/tests.py similarity index 100% rename from django/contrib/gis/tests/layermap/tests.py rename to tests/gis_tests/layermap/tests.py diff --git a/django/contrib/gis/tests/maps/__init__.py b/tests/gis_tests/maps/__init__.py similarity index 100% rename from django/contrib/gis/tests/maps/__init__.py rename to tests/gis_tests/maps/__init__.py diff --git a/django/contrib/gis/tests/maps/tests.py b/tests/gis_tests/maps/tests.py similarity index 90% rename from django/contrib/gis/tests/maps/tests.py rename to tests/gis_tests/maps/tests.py index 24a9511c888..0e9635e8ef7 100644 --- a/django/contrib/gis/tests/maps/tests.py +++ b/tests/gis_tests/maps/tests.py @@ -5,12 +5,15 @@ from unittest import skipUnless from django.contrib.gis.geos import HAS_GEOS from django.test import TestCase -from django.test.utils import override_settings +from django.test.utils import modify_settings, override_settings GOOGLE_MAPS_API_KEY = 'XXXX' @skipUnless(HAS_GEOS, 'Geos is required.') +@modify_settings( + INSTALLED_APPS={'append': 'django.contrib.gis'}, +) class GoogleMapsTest(TestCase): @override_settings(GOOGLE_MAPS_API_KEY=GOOGLE_MAPS_API_KEY) diff --git a/django/contrib/gis/tests/relatedapp/__init__.py b/tests/gis_tests/relatedapp/__init__.py similarity index 100% rename from django/contrib/gis/tests/relatedapp/__init__.py rename to tests/gis_tests/relatedapp/__init__.py diff --git a/django/contrib/gis/tests/relatedapp/fixtures/initial.json b/tests/gis_tests/relatedapp/fixtures/initial.json similarity index 100% rename from django/contrib/gis/tests/relatedapp/fixtures/initial.json rename to tests/gis_tests/relatedapp/fixtures/initial.json diff --git a/django/contrib/gis/tests/relatedapp/models.py b/tests/gis_tests/relatedapp/models.py similarity index 95% rename from django/contrib/gis/tests/relatedapp/models.py rename to tests/gis_tests/relatedapp/models.py index 5221bbe0b1c..2bcd2ebc5f9 100644 --- a/django/contrib/gis/tests/relatedapp/models.py +++ b/tests/gis_tests/relatedapp/models.py @@ -8,7 +8,6 @@ class SimpleModel(models.Model): class Meta: abstract = True - app_label = 'relatedapp' @python_2_unicode_compatible @@ -34,9 +33,6 @@ class AugmentedLocation(Location): objects = models.GeoManager() - class Meta: - app_label = 'relatedapp' - class DirectoryEntry(SimpleModel): listing_text = models.CharField(max_length=50) diff --git a/django/contrib/gis/tests/relatedapp/tests.py b/tests/gis_tests/relatedapp/tests.py similarity index 99% rename from django/contrib/gis/tests/relatedapp/tests.py rename to tests/gis_tests/relatedapp/tests.py index 28873209b94..f8e0e261053 100644 --- a/django/contrib/gis/tests/relatedapp/tests.py +++ b/tests/gis_tests/relatedapp/tests.py @@ -1,13 +1,14 @@ from __future__ import unicode_literals from django.contrib.gis.geos import HAS_GEOS -from django.contrib.gis.tests.utils import no_oracle from django.db import connection from django.test import TestCase, ignore_warnings, skipUnlessDBFeature from django.test.utils import override_settings from django.utils import timezone from django.utils.deprecation import RemovedInDjango20Warning +from ..utils import no_oracle + if HAS_GEOS: from django.contrib.gis.db.models import Collect, Count, Extent, F, Union from django.contrib.gis.geometry.backend import Geometry diff --git a/django/contrib/gis/geometry/test_data.py b/tests/gis_tests/test_data.py similarity index 96% rename from django/contrib/gis/geometry/test_data.py rename to tests/gis_tests/test_data.py index 58d82dbdcc4..7092bd27b11 100644 --- a/django/contrib/gis/geometry/test_data.py +++ b/tests/gis_tests/test_data.py @@ -5,13 +5,12 @@ for the GEOS and GDAL tests. import json import os -from django.contrib import gis from django.utils import six from django.utils._os import upath from django.utils.functional import cached_property # Path where reference test data is located. -TEST_DATA = os.path.join(os.path.dirname(upath(gis.__file__)), 'tests', 'data') +TEST_DATA = os.path.join(os.path.dirname(upath(__file__)), 'data') def tuplize(seq): diff --git a/django/contrib/gis/tests/test_geoforms.py b/tests/gis_tests/test_geoforms.py similarity index 100% rename from django/contrib/gis/tests/test_geoforms.py rename to tests/gis_tests/test_geoforms.py diff --git a/django/contrib/gis/geoip/tests.py b/tests/gis_tests/test_geoip.py similarity index 97% rename from django/contrib/gis/geoip/tests.py rename to tests/gis_tests/test_geoip.py index 8d1309a671e..91a84d42af9 100644 --- a/django/contrib/gis/geoip/tests.py +++ b/tests/gis_tests/test_geoip.py @@ -11,10 +11,10 @@ from django.contrib.gis.geos import HAS_GEOS from django.utils import six if HAS_GEOIP: - from . import GeoIP, GeoIPException + from django.contrib.gis.geoip import GeoIP, GeoIPException if HAS_GEOS: - from ..geos import GEOSGeometry + from django.contrib.gis.geos import GEOSGeometry # Note: Requires use of both the GeoIP country and city datasets. diff --git a/django/contrib/gis/tests/test_measure.py b/tests/gis_tests/test_measure.py similarity index 100% rename from django/contrib/gis/tests/test_measure.py rename to tests/gis_tests/test_measure.py diff --git a/django/contrib/gis/tests/test_spatialrefsys.py b/tests/gis_tests/test_spatialrefsys.py similarity index 98% rename from django/contrib/gis/tests/test_spatialrefsys.py rename to tests/gis_tests/test_spatialrefsys.py index 1a4b151f2b4..66e30f3de1c 100644 --- a/django/contrib/gis/tests/test_spatialrefsys.py +++ b/tests/gis_tests/test_spatialrefsys.py @@ -1,13 +1,12 @@ import unittest from django.contrib.gis.gdal import HAS_GDAL -from django.contrib.gis.tests.utils import ( - SpatialRefSys, oracle, postgis, spatialite, -) from django.db import connection from django.test import skipUnlessDBFeature from django.utils import six +from .utils import SpatialRefSys, oracle, postgis, spatialite + test_srs = ({ 'srid': 4326, 'auth_name': ('EPSG', True), diff --git a/django/contrib/gis/tests/tests.py b/tests/gis_tests/tests.py similarity index 100% rename from django/contrib/gis/tests/tests.py rename to tests/gis_tests/tests.py diff --git a/django/contrib/gis/tests/utils.py b/tests/gis_tests/utils.py similarity index 100% rename from django/contrib/gis/tests/utils.py rename to tests/gis_tests/utils.py diff --git a/tests/runtests.py b/tests/runtests.py index e8741ea56c7..a24b99f17a3 100755 --- a/tests/runtests.py +++ b/tests/runtests.py @@ -76,9 +76,10 @@ def get_test_modules(): (None, RUNTESTS_DIR), (CONTRIB_MODULE_PATH, CONTRIB_DIR) ] + # GIS tests are in nested apps if connection.features.gis_enabled: discovery_paths.append( - ('django.contrib.gis.tests', os.path.join(CONTRIB_DIR, 'gis', 'tests')) + ('gis_tests', os.path.join(RUNTESTS_DIR, 'gis_tests')) ) for modpath, dirpath in discovery_paths: @@ -208,6 +209,14 @@ def setup(verbosity, test_labels): print("Importing application %s" % module_name) settings.INSTALLED_APPS.append(module_label) + # Add contrib.gis to INSTALLED_APPS if needed (rather than requiring + # @override_settings(INSTALLED_APPS=...) on all test cases. + gis = 'django.contrib.gis' + if connection.features.gis_enabled and gis not in settings.INSTALLED_APPS: + if verbosity >= 2: + print("Importing application %s" % gis) + settings.INSTALLED_APPS.append(gis) + apps.set_installed_apps(settings.INSTALLED_APPS) return state diff --git a/tests/test_runner/test_discover_runner.py b/tests/test_runner/test_discover_runner.py index 758f2d1198e..70117f03274 100644 --- a/tests/test_runner/test_discover_runner.py +++ b/tests/test_runner/test_discover_runner.py @@ -121,9 +121,9 @@ class DiscoverRunnerTest(TestCase): """ Tests shouldn't be discovered twice when discovering on overlapping paths. """ - single = DiscoverRunner().build_suite(["django.contrib.gis"]).countTestCases() + single = DiscoverRunner().build_suite(["gis_tests"]).countTestCases() dups = DiscoverRunner().build_suite( - ["django.contrib.gis", "django.contrib.gis.tests.geo3d"]).countTestCases() + ["gis_tests", "gis_tests.geo3d"]).countTestCases() self.assertEqual(single, dups) def test_reverse(self):