[1.8.x] Moved contrib.gis tests out of contrib.
Backport of ad0be620ae
from master
This commit is contained in:
parent
2482c9dd24
commit
69c89aeccf
|
@ -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]
|
||||
|
|
|
@ -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
|
|
@ -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
|
||||
|
|
@ -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
|
|
@ -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:
|
|
@ -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):
|
|
@ -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):
|
||||
|
|
@ -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']
|
|
@ -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
|
|
@ -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):
|
||||
|
|
@ -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,
|
|
@ -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])
|
|
@ -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
|
||||
|
|
@ -9,18 +9,20 @@ 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.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, numpy, 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, numpy, GEOSBase
|
||||
|
||||
|
||||
@skipUnless(HAS_GEOS, "Geos is required.")
|
|
@ -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:
|
|
@ -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.")
|
|
@ -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:
|
|
@ -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
|
|
@ -14,6 +14,3 @@ class AllOGRFields(models.Model):
|
|||
point = models.PointField()
|
||||
|
||||
objects = models.GeoManager()
|
||||
|
||||
class Meta:
|
||||
app_label = 'inspectapp'
|
|
@ -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
|
|
@ -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 = {
|
|
@ -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)
|
|
@ -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)
|
|
@ -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
|
|
@ -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):
|
|
@ -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.
|
|
@ -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),
|
|
@ -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:
|
||||
|
@ -210,6 +211,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
|
||||
|
|
|
@ -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):
|
||||
|
|
Loading…
Reference in New Issue