Exemplo n.º 1
0
 def test_validlocations(self, project_config_yaml):
     Country.countriesdata(use_live=False)
     validlocations = [{'name': 'shn', 'title': 'St. Helena'}]
     assert Locations.get_HDX_code_from_location('sh', locations=validlocations) is None
     assert Locations.get_HDX_code_from_location_partial('sh', locations=validlocations) == (None, False)
     assert Locations.get_location_from_HDX_code('shn', locations=validlocations) == 'St. Helena'
     validlocations = [{'name': 'zmb', 'title': 'Zambia'}, {'name': 'pry', 'title': 'Paraguay'}]
     Locations.set_validlocations(validlocations)
     assert Locations.validlocations() == validlocations
     assert Locations.get_HDX_code_from_location_partial('NOT') == (None, False)
     assert Locations.get_location_from_HDX_code('pr') is None
     assert Locations.get_HDX_code_from_location('zmb') == 'ZMB'
     assert Locations.get_HDX_code_from_location_partial('zmb') == ('ZMB', True)
     assert Locations.get_HDX_code_from_location('Z') is None
     assert Locations.get_HDX_code_from_location_partial('Z') == ('ZMB', False)
     assert Locations.get_HDX_code_from_location_partial('Zambia') == ('ZMB', True)
     assert Locations.get_HDX_code_from_location_partial('ZAM') == ('ZMB', False)
     assert Locations.get_location_from_HDX_code('zmb', locations=validlocations) == 'Zambia'
     validlocations = [{'name': 'shn', 'title': 'St. Helena'}]
     assert Locations.get_HDX_code_from_location('sh', locations=validlocations) is None
     assert Locations.get_HDX_code_from_location_partial('sh', locations=validlocations) == (None, False)
     assert Locations.get_location_from_HDX_code('shn', locations=validlocations) == 'St. Helena'
     Configuration.setup(MyConfiguration())
     Locations.set_validlocations(None)
     assert Locations.get_HDX_code_from_location('zaf') == 'ZAF'
     assert Locations.get_HDX_code_from_location_partial('zaf') == ('ZAF', True)
     assert Locations.get_location_from_HDX_code('zaf') == 'South Africa'
 def test_validlocations(self, project_config_yaml):
     Country.countriesdata(use_live=False)
     validlocations = [{'name': 'shn', 'title': 'St. Helena'}]
     assert Locations.get_HDX_code_from_location(
         'sh', locations=validlocations) is None
     assert Locations.get_HDX_code_from_location_partial(
         'sh', locations=validlocations) == (None, False)
     assert Locations.get_location_from_HDX_code(
         'shn', locations=validlocations) == 'St. Helena'
     validlocations = [{
         'name': 'zmb',
         'title': 'Zambia'
     }, {
         'name': 'pry',
         'title': 'Paraguay'
     }]
     Locations.set_validlocations(validlocations)
     assert Locations.validlocations() == validlocations
     assert Locations.get_HDX_code_from_location_partial('NOT') == (None,
                                                                    False)
     assert Locations.get_location_from_HDX_code('pr') is None
     assert Locations.get_HDX_code_from_location('zmb') == 'ZMB'
     assert Locations.get_HDX_code_from_location_partial('zmb') == ('ZMB',
                                                                    True)
     assert Locations.get_HDX_code_from_location('Z') is None
     assert Locations.get_HDX_code_from_location_partial('Z') == ('ZMB',
                                                                  False)
     assert Locations.get_HDX_code_from_location_partial('Zambia') == (
         'ZMB', True)
     assert Locations.get_HDX_code_from_location_partial('ZAM') == ('ZMB',
                                                                    False)
     assert Locations.get_location_from_HDX_code(
         'zmb', locations=validlocations) == 'Zambia'
     validlocations = [{'name': 'shn', 'title': 'St. Helena'}]
     assert Locations.get_HDX_code_from_location(
         'sh', locations=validlocations) is None
     assert Locations.get_HDX_code_from_location_partial(
         'sh', locations=validlocations) == (None, False)
     assert Locations.get_location_from_HDX_code(
         'shn', locations=validlocations) == 'St. Helena'
     Configuration.setup(MyConfiguration())
     Locations.set_validlocations(None)
     assert Locations.get_HDX_code_from_location('zaf') == 'ZAF'
     assert Locations.get_HDX_code_from_location_partial('zaf') == ('ZAF',
                                                                    True)
     assert Locations.get_location_from_HDX_code('zaf') == 'South Africa'
Exemplo n.º 3
0
 def test_validlocations(self, project_config_yaml):
     validlocations = [{'name': 'shn', 'title': 'St. Helena'}]
     assert Locations.get_HDX_code_from_location(
         'sh', exact=False, locations=validlocations) == (None, False)
     assert Locations.get_location_from_HDX_code(
         'shn', locations=validlocations) == 'St. Helena'
     validlocations = [{
         'name': 'zmb',
         'title': 'Zambia'
     }, {
         'name': 'pry',
         'title': 'Paraguay'
     }]
     Locations.set_validlocations(validlocations)
     assert Locations.validlocations() == validlocations
     assert Locations.get_HDX_code_from_location('NOT') == (None, False)
     assert Locations.get_location_from_HDX_code('pr') is None
     assert Locations.get_HDX_code_from_location('zmb') == ('zmb', True)
     assert Locations.get_HDX_code_from_location('Z') == (None, False)
     assert Locations.get_HDX_code_from_location('Z',
                                                 exact=False) == ('zmb',
                                                                  False)
     assert Locations.get_HDX_code_from_location('Zambia') == ('zmb', True)
     assert Locations.get_HDX_code_from_location('ZAM',
                                                 exact=False) == ('zmb',
                                                                  False)
     assert Locations.get_location_from_HDX_code(
         'zmb', locations=validlocations) == 'Zambia'
     validlocations = [{'name': 'shn', 'title': 'St. Helena'}]
     assert Locations.get_HDX_code_from_location(
         'sh', exact=False, locations=validlocations) == (None, False)
     assert Locations.get_location_from_HDX_code(
         'shn', locations=validlocations) == 'St. Helena'
     Configuration.setup(MyConfiguration())
     Locations.set_validlocations(None)
     assert Locations.get_HDX_code_from_location('zaf') == ('zaf', True)
     assert Locations.get_location_from_HDX_code('zaf') == 'South Africa'
Exemplo n.º 4
0
    def add_other_location(self,
                           location,
                           exact=True,
                           alterror=None,
                           locations=None):
        # type: (str, Optional[bool], Optional[str], Optional[List[str]]) -> bool
        """Add a location which is not a country or continent. Value is parsed and compared to existing locations in 
        HDX. If the location is already added, it is ignored.

        Args:
            location (str): Location to add
            exact (Optional[bool]): True for exact matching or False to allow fuzzy matching. Defaults to True.
            alterror (Optional[str]): Alternative error message to builtin if location not found. Defaults to None.
            locations (Optional[List[str]]): Valid locations list. Defaults to list downloaded from HDX.

        Returns:
            bool: True if location added or False if location already present
        """
        hdx_code, match = Locations.get_HDX_code_from_location(
            location,
            exact=exact,
            locations=locations,
            configuration=self.configuration)
        if hdx_code is None:
            if alterror is None:
                raise HDXError('Location: %s - cannot find in HDX!' % location)
            else:
                raise HDXError(alterror)
        groups = self.data.get('groups', None)
        if groups:
            if hdx_code in [x['name'] for x in groups]:
                return False
        else:
            groups = list()
        groups.append({'name': hdx_code})
        self.data['groups'] = groups
        return True