Ejemplo n.º 1
0
def test__coordinates__to_dict__success(latitude, longitude):
    coordinates = Coordinates(latitude, longitude)

    expected_response = {"latitude": latitude, "longitude": longitude}

    assert coordinates.to_dict() == expected_response
    assert (repr(coordinates) ==
            f"[latitude: {coordinates.latitude}, longitude: {longitude}]")
Ejemplo n.º 2
0
    async def get_county_data(self):
        csv_data = ""

        logger.info("Fetching CSV data for counties...")

        async with webclient.WEBCLIENT.get(
                f"{self.ENDPOINT}/COUNTY_INFO.csv") as response:
            csv_data = await response.text()

        parsed_data = list(csv.DictReader(csv_data.splitlines()))

        county_map = {}

        for county_data in parsed_data:
            county_map[self._county_data_id(county_data)] = LocationProperties(
                county_data["UID"],
                county_data["iso2"],
                county_data["iso3"],
                county_data["code3"],
                county_data["FIPS"],
                county_data["Admin2"],
                county_data["State"],
                county_data["Country"],
                Coordinates(county_data["Latitude"], county_data["Longitude"]),
                county_data["Formal_Name"],
                int(county_data["Population"] or 0),
            )

        return county_map
Ejemplo n.º 3
0
 def build_coordinates(latitude, longitude) -> Coordinates:
     """Constructors Coordinate class given latitude and longitude
     
     Arguments:
         latitude {str} -- latitude value.
         longitude {str} -- longitude value.
     
     Returns:
         Coordinates -- object representing coordinates for location.
     """
     return Coordinates(latitude, longitude)
Ejemplo n.º 4
0
def test__vaLid_location_properties__to_dict__success():
    expected_dict = {
        "uid": "uid",
        "iso2": "iso2",
        "iso3": "iso3",
        "code3": "code3",
        "fips": "fips",
        "county": "admin2",
        "state": "state",
        "country": "country",
        "coordinates": Coordinates(40, 73).to_dict(),
        "combined_key": "combined_key",
        "population": 6000,
    }

    assert VALID_LOCATION_PROPERTIES.to_dict() == expected_dict
Ejemplo n.º 5
0
    async def get_country_data(self):
        coordinates = Coordinates("37.0902", "-95.7129")
        population = COUNTRY_POPULATION["US"]

        return {
            ("US", ):
            LocationProperties(
                uid="840",
                iso2="US",
                iso3="USA",
                code3="840",
                fips="",
                admin2="",
                state="",
                country="US",
                coordinates=coordinates,
                combined_key="United States",
                population=population,
            )
        }
Ejemplo n.º 6
0
class LocationProperties(object):
    uid: str = None
    iso2: str = None
    iso3: str = None
    code3: str = None
    fips: str = None
    admin2: str = None
    state: str = None
    country: str = None
    coordinates: Coordinates = Coordinates(None, None)
    combined_key: str = None
    population: int = 0

    @staticmethod
    def build_coordinates(latitude, longitude) -> Coordinates:
        """Constructors Coordinate class given latitude and longitude
        
        Arguments:
            latitude {str} -- latitude value.
            longitude {str} -- longitude value.
        
        Returns:
            Coordinates -- object representing coordinates for location.
        """
        return Coordinates(latitude, longitude)

    def to_dict(self):
        return {
            "uid": self.uid,
            "iso2": self.iso2,
            "iso3": self.iso3,
            "code3": self.code3,
            "fips": self.fips,
            "county": self.admin2,
            "state": self.state,
            "country": self.country,
            "coordinates": self.coordinates.to_dict(),
            "combined_key": self.combined_key,
            "population": self.population,
        }
Ejemplo n.º 7
0
def test__build_coordinates__success():
    actual_coordinates = LocationProperties.build_coordinates(40, 73)
    expected_coordinates = Coordinates(40, 73)

    assert actual_coordinates.latitude == expected_coordinates.latitude
    assert actual_coordinates.longitude == expected_coordinates.longitude
Ejemplo n.º 8
0
"""
import pytest

from backend.models.classes.coordinates import Coordinates
from backend.models.classes.location_properties import LocationProperties

VALID_LOCATION_PROPERTIES = LocationProperties(
    uid="uid",
    iso2="iso2",
    iso3="iso3",
    code3="code3",
    fips="fips",
    admin2="admin2",
    state="state",
    country="country",
    coordinates=Coordinates(40, 73),
    combined_key="combined_key",
    population=6000,
)


def test__vaLid_location_properties__to_dict__success():
    expected_dict = {
        "uid": "uid",
        "iso2": "iso2",
        "iso3": "iso3",
        "code3": "code3",
        "fips": "fips",
        "county": "admin2",
        "state": "state",
        "country": "country",
Ejemplo n.º 9
0
from backend.models.classes.location_properties import LocationProperties
from backend.services.location_data_service import LocationDataService
from backend.utils.country_population import COUNTRY_POPULATION
from tests.base_test import TestBase
from tests.conftest import mocked_strptime_isoformat

EXPECTED_COUNTRY_DATA = {
    "uid": "840",
    "iso2": "US",
    "iso3": "USA",
    "code3": "840",
    "fips": "",
    "county": "",
    "state": "",
    "country": "US",
    "coordinates": Coordinates("37.0902", "-95.7129").to_dict(),
    "combined_key": "United States",
    "population": COUNTRY_POPULATION["US"],
}

EXPECTED_STATE_DATA = {
    "uid": "84000053",
    "iso2": "US",
    "iso3": "USA",
    "code3": "840",
    "fips": "53",
    "county": "",
    "state": "Washington",
    "country": "US",
    "coordinates": Coordinates("47.4009", "-121.4905").to_dict(),
    "combined_key": "Washington, US",