mirror of
https://github.com/github/octodns.git
synced 2024-05-11 05:55:00 +00:00
Add support for geo-targeting of CA provinces
- For providers that support such
This commit is contained in:
@@ -63,9 +63,14 @@ class GeoCodes(object):
|
||||
|
||||
@classmethod
|
||||
def province_to_code(cls, province):
|
||||
# We get to cheat on this one since we only support provinces in NA-US
|
||||
if province not in geo_data['NA']['US']['provinces']:
|
||||
# We cheat on this one a little since we only support provinces in NA-US, NA-CA
|
||||
if (province not in geo_data['NA']['US']['provinces'] and
|
||||
province not in geo_data['NA']['CA']['provinces']):
|
||||
cls.log.warn('country_to_code: unrecognized province "%s"',
|
||||
province)
|
||||
return
|
||||
return 'NA-US-{}'.format(province)
|
||||
if province in geo_data['NA']['US']['provinces']:
|
||||
country = 'US'
|
||||
if province in geo_data['NA']['CA']['provinces']:
|
||||
country = 'CA'
|
||||
return 'NA-{}-{}'.format(country, province)
|
||||
|
||||
@@ -8,8 +8,8 @@ from pycountry_convert import country_alpha2_to_continent_code
|
||||
|
||||
subs = defaultdict(dict)
|
||||
for subdivision in subdivisions:
|
||||
# Route53 only supports US states, Dyn supports US states and CA provinces, but for now we'll just do US
|
||||
if subdivision.country_code not in ('US'):
|
||||
# Route53 only supports US states, Dyn (and others) support US states and CA provinces
|
||||
if subdivision.country_code not in ('US', 'CA'):
|
||||
continue
|
||||
subs[subdivision.country_code][subdivision.code[3:]] = {
|
||||
'name': subdivision.name
|
||||
|
||||
@@ -77,4 +77,6 @@ class TestRecordGeoCodes(TestCase):
|
||||
def test_province_to_code(self):
|
||||
self.assertEquals('NA-US-OR', GeoCodes.province_to_code('OR'))
|
||||
self.assertEquals('NA-US-KY', GeoCodes.province_to_code('KY'))
|
||||
self.assertEquals('NA-CA-AB', GeoCodes.province_to_code('AB'))
|
||||
self.assertEquals('NA-CA-BC', GeoCodes.province_to_code('BC'))
|
||||
self.assertFalse(GeoCodes.province_to_code('XX'))
|
||||
|
||||
Reference in New Issue
Block a user