Add tests for Location models
This commit is contained in:
41
vrobbler/apps/locations/tests/test_models.py
Normal file
41
vrobbler/apps/locations/tests/test_models.py
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
import pytest
|
||||||
|
import logging
|
||||||
|
|
||||||
|
from locations.models import GeoLocation
|
||||||
|
|
||||||
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
|
def test_find_or_create(caplog):
|
||||||
|
assert not GeoLocation.find_or_create({})
|
||||||
|
assert "No lat or lon keys in data dict" in caplog.text
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.django_db
|
||||||
|
def test_find_or_create_truncation():
|
||||||
|
loc = GeoLocation.find_or_create(
|
||||||
|
{"lat": 44.2345, "lon": -68.2345, "alt": 60.356}
|
||||||
|
)
|
||||||
|
assert loc.lat == 44.234
|
||||||
|
assert loc.lon == -68.234
|
||||||
|
assert loc.altitude == 60
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.django_db
|
||||||
|
def test_find_or_create_finds_existing():
|
||||||
|
extant = GeoLocation.objects.create(lat=44.234, lon=-68.234, altitude=50)
|
||||||
|
|
||||||
|
loc = GeoLocation.find_or_create(
|
||||||
|
{"lat": 44.2345, "lon": -68.2345, "alt": 60.356}
|
||||||
|
)
|
||||||
|
assert loc.id == extant.id
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.django_db
|
||||||
|
def test_find_or_create_creates_new():
|
||||||
|
extant = GeoLocation.objects.create(lat=44.234, lon=-69.234, altitude=60)
|
||||||
|
|
||||||
|
loc = GeoLocation.find_or_create(
|
||||||
|
{"lat": 44.2345, "lon": -68.2345, "alt": 60.356}
|
||||||
|
)
|
||||||
|
assert not loc.id == extant.id
|
||||||
Reference in New Issue
Block a user