Moved contrib.gis tests out of contrib.

This commit is contained in:
Tim Graham 2015-02-10 10:07:44 -05:00
parent 5ab327a389
commit ad0be620ae
99 changed files with 82 additions and 72 deletions

View File

@ -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]

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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:

View File

@ -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):

View File

@ -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):

View File

@ -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']

View File

@ -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

View File

@ -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):

View File

@ -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,

View File

@ -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])

View File

@ -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

View File

@ -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.")

View File

@ -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:

View File

@ -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.")

View File

@ -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:

View File

@ -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

View File

@ -14,6 +14,3 @@ class AllOGRFields(models.Model):
point = models.PointField()
objects = models.GeoManager()
class Meta:
app_label = 'inspectapp'

View File

@ -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

View File

@ -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 = {

View File

@ -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)

View File

@ -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)

View File

@ -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

View File

@ -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):

View File

@ -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.

View File

@ -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),

View File

@ -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

View File

@ -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):