def test_constructor_rejects_none_input():
    invalid_input = None
    valid_input = 1.0
    with pytest.raises(AssertionError):
        Location(invalid_input, valid_input)
    with pytest.raises(AssertionError):
        Location(valid_input, invalid_input)
def test_constructor_rejects_invalid_input():
    invalid_input = "invalid"
    valid_input = 1.0

    with pytest.raises(ValueError):
        Location(invalid_input, valid_input)
    with pytest.raises(ValueError):
        Location(valid_input, invalid_input)
def test_from_dict_rejects_invalid_input():
    invalid_dicts = [
        None,
        {},
        {
            "some": "stuff"
        },
        {
            "lat": 1.0
        },
    ]

    for invalid_dict in invalid_dicts:
        with pytest.raises(AssertionError):
            Location.from_dict(invalid_dict)
def handle_roofs_information_request():
    roofs_info = []
    coordinates_list = request.get_json()["data"]
    for coordinates in coordinates_list:
        location = Location.from_dict(coordinates)
        roof = ROOF_PROVIDER.get_roof(center_location=location)
        roofs_info.append(roof.serialize())
    return json.dumps({"data": roofs_info})
Example #5
0
def _fetch_multiple_images(provider: ImageProvider):
    images = []
    for num in range(3):
        latitude = GERMANY_LOCATION.latitude + 0.01 * num
        location = Location(latitude, GERMANY_LOCATION.longitude)
        image = provider.get_image_from(location)
        images.append(image)
    return images
Example #6
0
from itertools import combinations

import pytest
from PIL.Image import Image

from nachbarstrom.commons.image_provider import ImageProvider, \
    GoogleImageProvider, BingImageProvider
from nachbarstrom.commons.world import Location

GERMANY_LOCATION = Location(48.193926, 11.621544)


@pytest.fixture(params=[GoogleImageProvider, BingImageProvider])
def image_provider(request) -> ImageProvider:
    return request.param()


def test_validation_rejects_invalid_input(image_provider: ImageProvider):
    invalid_inputs = [None, "invalid"]
    for invalid_input in invalid_inputs:
        with pytest.raises(TypeError):
            image_provider.get_image_from(invalid_input)


@pytest.mark.integration
def test_output_is_pillow_image(image_provider: ImageProvider):
    image = image_provider.get_image_from(GERMANY_LOCATION)
    assert isinstance(image, Image)


@pytest.mark.integration
Example #7
0
def test_image_from(mock_image_provider: MockImageProvider):
    location = Location(latitude=0.0, longitude=0.0)
    image = mock_image_provider.get_image_from(location)
    assert isinstance(image, Image)
Example #8
0
import pytest

from nachbarstrom.commons.world import Location, SquareAroundCenterLocation

INVALID_INPUTS = [None, 1, "string"]
VALID_LOCATION = Location(1.0, 1.0)


def test_construction_rejects_invalid_input_for_location():
    for invalid_input in INVALID_INPUTS:
        with pytest.raises(AssertionError):
            SquareAroundCenterLocation(center=invalid_input)


def test_construction_rejects_invalid_input_for_side_lenght():
    for invalid_input in INVALID_INPUTS:
        with pytest.raises(AssertionError):
            SquareAroundCenterLocation(VALID_LOCATION, invalid_input)


def test_object_contains_bottom_left_location():
    square = SquareAroundCenterLocation(VALID_LOCATION)
    assert isinstance(square.bottom_left_location, Location)


def test_object_contains_upper_right_location():
    square = SquareAroundCenterLocation(VALID_LOCATION)
    assert isinstance(square.upper_right_location, Location)
from nachbarstrom.commons.world import Location
from nachbarstrom.commons.image_provider import GoogleImageProvider

GERMANY_LOCATION = Location(latitude=48.267991, longitude=11.665950)
IMG_PROVIDER = GoogleImageProvider()
SATELLITE_IMG = IMG_PROVIDER.get_image_from(GERMANY_LOCATION)
SATELLITE_IMG.save("img.png")
def test_from_dict_successful():
    valid_dicts = [{"lat": "1.0", "lon": "1.0"}, {"lat": -1.0, "lon": -5.0}]
    for valid_dict in valid_dicts:
        Location.from_dict(valid_dict)
def test_from_dict_rejects_invalid_floats():
    invalid_input = {"lat": "invalid", "lon": "invalid"}
    with pytest.raises(ValueError):
        Location.from_dict(invalid_input)
def test_constructor_successful():
    valid_inputs = [1.0, "-1.0"]
    for valid_input in valid_inputs:
        Location(valid_input, valid_input)
def test_constructor_rejects_out_of_range_longitudes():
    valid_latitude = 1.0
    out_of_range_longitudes = [-181, 181]
    for invalid_longitude in out_of_range_longitudes:
        with pytest.raises(AssertionError):
            Location(valid_latitude, invalid_longitude)