Deprecated django.contrib.gis.geoip2.GeoIP2.open().

This commit is contained in:
Nick Pope 2021-04-05 01:24:52 +01:00 committed by Mariusz Felisiak
parent 464af0975c
commit 07f9f9960c
5 changed files with 24 additions and 4 deletions

View File

@ -230,4 +230,9 @@ class GeoIP2:
@classmethod
def open(cls, full_path, cache):
warnings.warn(
"GeoIP2.open() is deprecated. Use GeoIP2() instead.",
RemovedInDjango60Warning,
stacklevel=2,
)
return GeoIP2(full_path, cache)

View File

@ -66,6 +66,8 @@ details on these changes.
* The ``django.contrib.gis.geoip2.GeoIP2.coords()`` method will be removed.
* The ``django.contrib.gis.geoip2.GeoIP2.open()`` method will be removed.
.. _deprecation-removed-in-5.1:
5.1

View File

@ -100,6 +100,10 @@ Instantiating
This classmethod instantiates the GeoIP object from the given database path
and given cache setting.
.. deprecated:: 5.1
Use the :class:`GeoIP2()` constructor instead.
Querying
--------

View File

@ -310,6 +310,9 @@ Miscellaneous
* The ``django.contrib.gis.geoip2.GeoIP2.coords()`` method is deprecated. Use
``django.contrib.gis.geoip2.GeoIP2.lon_lat()`` instead.
* The ``django.contrib.gis.geoip2.GeoIP2.open()`` method is deprecated. Use the
:class:`~django.contrib.gis.geoip2.GeoIP2` constructor instead.
Features removed in 5.1
=======================

View File

@ -29,14 +29,13 @@ class GeoIPTest(SimpleTestCase):
g1 = GeoIP2() # Everything inferred from GeoIP path
path = settings.GEOIP_PATH
g2 = GeoIP2(path, 0) # Passing in data path explicitly.
g3 = GeoIP2.open(path, 0) # MaxMind Python API syntax.
# path accepts str and pathlib.Path.
if isinstance(path, str):
g4 = GeoIP2(pathlib.Path(path))
g3 = GeoIP2(pathlib.Path(path))
else:
g4 = GeoIP2(str(path))
g3 = GeoIP2(str(path))
for g in (g1, g2, g3, g4):
for g in (g1, g2, g3):
self.assertTrue(g._country)
self.assertTrue(g._city)
@ -198,3 +197,10 @@ class GeoIPTest(SimpleTestCase):
e1, e2 = g.coords(self.fqdn)
self.assertIsInstance(e1, float)
self.assertIsInstance(e2, float)
def test_open_deprecation_warning(self):
msg = "GeoIP2.open() is deprecated. Use GeoIP2() instead."
with self.assertWarnsMessage(RemovedInDjango60Warning, msg):
g = GeoIP2.open(settings.GEOIP_PATH, 0)
self.assertTrue(g._country)
self.assertTrue(g._city)