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