Browse Source

Lots of text_type

pull/384/head
Ross McFarland 6 years ago
parent
commit
a9d0eef3ba
No known key found for this signature in database GPG Key ID: 61C10C4FC8FE4A89
17 changed files with 77 additions and 64 deletions
  1. +2
    -1
      octodns/provider/ovh.py
  2. +2
    -2
      octodns/provider/plan.py
  3. +20
    -18
      tests/test_octodns_manager.py
  4. +2
    -1
      tests/test_octodns_plan.py
  5. +10
    -11
      tests/test_octodns_provider_base.py
  6. +4
    -3
      tests/test_octodns_provider_cloudflare.py
  7. +2
    -1
      tests/test_octodns_provider_digitalocean.py
  8. +2
    -1
      tests/test_octodns_provider_dnsimple.py
  9. +3
    -2
      tests/test_octodns_provider_dnsmadeeasy.py
  10. +10
    -10
      tests/test_octodns_provider_mythicbeasts.py
  11. +2
    -1
      tests/test_octodns_provider_powerdns.py
  12. +2
    -1
      tests/test_octodns_provider_rackspace.py
  13. +2
    -1
      tests/test_octodns_provider_route53.py
  14. +3
    -2
      tests/test_octodns_provider_yaml.py
  15. +2
    -2
      tests/test_octodns_record.py
  16. +3
    -2
      tests/test_octodns_source_axfr.py
  17. +6
    -5
      tests/test_octodns_zone.py

+ 2
- 1
octodns/provider/ovh.py View File

@ -9,6 +9,7 @@ import base64
import binascii import binascii
import logging import logging
from collections import defaultdict from collections import defaultdict
from six import text_type
import ovh import ovh
from ovh import ResourceNotFoundError from ovh import ResourceNotFoundError
@ -64,7 +65,7 @@ class OvhProvider(BaseProvider):
records = self.get_records(zone_name=zone_name) records = self.get_records(zone_name=zone_name)
exists = True exists = True
except ResourceNotFoundError as e: except ResourceNotFoundError as e:
if e.message != self.ZONE_NOT_FOUND_MESSAGE:
if text_type(e) != self.ZONE_NOT_FOUND_MESSAGE:
raise raise
exists = False exists = False
records = [] records = []


+ 2
- 2
octodns/provider/plan.py View File

@ -124,7 +124,7 @@ class PlanLogger(_PlanOutput):
buf.write('* ') buf.write('* ')
buf.write(target.id) buf.write(target.id)
buf.write(' (') buf.write(' (')
buf.write(target)
buf.write(text_type(target))
buf.write(')\n* ') buf.write(')\n* ')
if plan.exists is False: if plan.exists is False:
@ -137,7 +137,7 @@ class PlanLogger(_PlanOutput):
buf.write('\n* ') buf.write('\n* ')
buf.write('Summary: ') buf.write('Summary: ')
buf.write(plan)
buf.write(text_type(plan))
buf.write('\n') buf.write('\n')
else: else:
buf.write(hr) buf.write(hr)


+ 20
- 18
tests/test_octodns_manager.py View File

@ -7,6 +7,7 @@ from __future__ import absolute_import, division, print_function, \
from os import environ from os import environ
from os.path import dirname, join from os.path import dirname, join
from six import text_type
from unittest import TestCase from unittest import TestCase
from octodns.record import Record from octodns.record import Record
@ -29,78 +30,79 @@ class TestManager(TestCase):
def test_missing_provider_class(self): def test_missing_provider_class(self):
with self.assertRaises(Exception) as ctx: with self.assertRaises(Exception) as ctx:
Manager(get_config_filename('missing-provider-class.yaml')).sync() Manager(get_config_filename('missing-provider-class.yaml')).sync()
self.assertTrue('missing class' in ctx.exception.message)
self.assertTrue('missing class' in text_type(ctx.exception))
def test_bad_provider_class(self): def test_bad_provider_class(self):
with self.assertRaises(Exception) as ctx: with self.assertRaises(Exception) as ctx:
Manager(get_config_filename('bad-provider-class.yaml')).sync() Manager(get_config_filename('bad-provider-class.yaml')).sync()
self.assertTrue('Unknown provider class' in ctx.exception.message)
self.assertTrue('Unknown provider class' in text_type(ctx.exception))
def test_bad_provider_class_module(self): def test_bad_provider_class_module(self):
with self.assertRaises(Exception) as ctx: with self.assertRaises(Exception) as ctx:
Manager(get_config_filename('bad-provider-class-module.yaml')) \ Manager(get_config_filename('bad-provider-class-module.yaml')) \
.sync() .sync()
self.assertTrue('Unknown provider class' in ctx.exception.message)
self.assertTrue('Unknown provider class' in text_type(ctx.exception))
def test_bad_provider_class_no_module(self): def test_bad_provider_class_no_module(self):
with self.assertRaises(Exception) as ctx: with self.assertRaises(Exception) as ctx:
Manager(get_config_filename('bad-provider-class-no-module.yaml')) \ Manager(get_config_filename('bad-provider-class-no-module.yaml')) \
.sync() .sync()
self.assertTrue('Unknown provider class' in ctx.exception.message)
self.assertTrue('Unknown provider class' in text_type(ctx.exception))
def test_missing_provider_config(self): def test_missing_provider_config(self):
# Missing provider config # Missing provider config
with self.assertRaises(Exception) as ctx: with self.assertRaises(Exception) as ctx:
Manager(get_config_filename('missing-provider-config.yaml')).sync() Manager(get_config_filename('missing-provider-config.yaml')).sync()
self.assertTrue('provider config' in ctx.exception.message)
self.assertTrue('provider config' in text_type(ctx.exception))
def test_missing_env_config(self): def test_missing_env_config(self):
with self.assertRaises(Exception) as ctx: with self.assertRaises(Exception) as ctx:
Manager(get_config_filename('missing-provider-env.yaml')).sync() Manager(get_config_filename('missing-provider-env.yaml')).sync()
self.assertTrue('missing env var' in ctx.exception.message)
self.assertTrue('missing env var' in text_type(ctx.exception))
def test_missing_source(self): def test_missing_source(self):
with self.assertRaises(Exception) as ctx: with self.assertRaises(Exception) as ctx:
Manager(get_config_filename('unknown-provider.yaml')) \ Manager(get_config_filename('unknown-provider.yaml')) \
.sync(['missing.sources.']) .sync(['missing.sources.'])
self.assertTrue('missing sources' in ctx.exception.message)
self.assertTrue('missing sources' in text_type(ctx.exception))
def test_missing_targets(self): def test_missing_targets(self):
with self.assertRaises(Exception) as ctx: with self.assertRaises(Exception) as ctx:
Manager(get_config_filename('unknown-provider.yaml')) \ Manager(get_config_filename('unknown-provider.yaml')) \
.sync(['missing.targets.']) .sync(['missing.targets.'])
self.assertTrue('missing targets' in ctx.exception.message)
self.assertTrue('missing targets' in text_type(ctx.exception))
def test_unknown_source(self): def test_unknown_source(self):
with self.assertRaises(Exception) as ctx: with self.assertRaises(Exception) as ctx:
Manager(get_config_filename('unknown-provider.yaml')) \ Manager(get_config_filename('unknown-provider.yaml')) \
.sync(['unknown.source.']) .sync(['unknown.source.'])
self.assertTrue('unknown source' in ctx.exception.message)
self.assertTrue('unknown source' in text_type(ctx.exception))
def test_unknown_target(self): def test_unknown_target(self):
with self.assertRaises(Exception) as ctx: with self.assertRaises(Exception) as ctx:
Manager(get_config_filename('unknown-provider.yaml')) \ Manager(get_config_filename('unknown-provider.yaml')) \
.sync(['unknown.target.']) .sync(['unknown.target.'])
self.assertTrue('unknown target' in ctx.exception.message)
self.assertTrue('unknown target' in text_type(ctx.exception))
def test_bad_plan_output_class(self): def test_bad_plan_output_class(self):
with self.assertRaises(Exception) as ctx: with self.assertRaises(Exception) as ctx:
name = 'bad-plan-output-missing-class.yaml' name = 'bad-plan-output-missing-class.yaml'
Manager(get_config_filename(name)).sync() Manager(get_config_filename(name)).sync()
self.assertEquals('plan_output bad is missing class', self.assertEquals('plan_output bad is missing class',
ctx.exception.message)
text_type(ctx.exception))
def test_bad_plan_output_config(self): def test_bad_plan_output_config(self):
with self.assertRaises(Exception) as ctx: with self.assertRaises(Exception) as ctx:
Manager(get_config_filename('bad-plan-output-config.yaml')).sync() Manager(get_config_filename('bad-plan-output-config.yaml')).sync()
self.assertEqual('Incorrect plan_output config for bad', self.assertEqual('Incorrect plan_output config for bad',
ctx.exception.message)
text_type(ctx.exception))
def test_source_only_as_a_target(self): def test_source_only_as_a_target(self):
with self.assertRaises(Exception) as ctx: with self.assertRaises(Exception) as ctx:
Manager(get_config_filename('unknown-provider.yaml')) \ Manager(get_config_filename('unknown-provider.yaml')) \
.sync(['not.targetable.']) .sync(['not.targetable.'])
self.assertTrue('does not support targeting' in ctx.exception.message)
self.assertTrue('does not support targeting' in
text_type(ctx.exception))
def test_always_dry_run(self): def test_always_dry_run(self):
with TemporaryDirectory() as tmpdir: with TemporaryDirectory() as tmpdir:
@ -182,7 +184,7 @@ class TestManager(TestCase):
with self.assertRaises(Exception) as ctx: with self.assertRaises(Exception) as ctx:
manager.compare(['nope'], ['dump'], 'unit.tests.') manager.compare(['nope'], ['dump'], 'unit.tests.')
self.assertEquals('Unknown source: nope', ctx.exception.message)
self.assertEquals('Unknown source: nope', text_type(ctx.exception))
def test_aggregate_target(self): def test_aggregate_target(self):
simple = SimpleProvider() simple = SimpleProvider()
@ -223,7 +225,7 @@ class TestManager(TestCase):
with self.assertRaises(Exception) as ctx: with self.assertRaises(Exception) as ctx:
manager.dump('unit.tests.', tmpdir.dirname, False, False, manager.dump('unit.tests.', tmpdir.dirname, False, False,
'nope') 'nope')
self.assertEquals('Unknown source: nope', ctx.exception.message)
self.assertEquals('Unknown source: nope', text_type(ctx.exception))
manager.dump('unit.tests.', tmpdir.dirname, False, False, 'in') manager.dump('unit.tests.', tmpdir.dirname, False, False, 'in')
@ -252,7 +254,7 @@ class TestManager(TestCase):
with self.assertRaises(Exception) as ctx: with self.assertRaises(Exception) as ctx:
manager.dump('unit.tests.', tmpdir.dirname, False, True, manager.dump('unit.tests.', tmpdir.dirname, False, True,
'nope') 'nope')
self.assertEquals('Unknown source: nope', ctx.exception.message)
self.assertEquals('Unknown source: nope', text_type(ctx.exception))
manager.dump('unit.tests.', tmpdir.dirname, False, True, 'in') manager.dump('unit.tests.', tmpdir.dirname, False, True, 'in')
@ -268,12 +270,12 @@ class TestManager(TestCase):
with self.assertRaises(Exception) as ctx: with self.assertRaises(Exception) as ctx:
Manager(get_config_filename('missing-sources.yaml')) \ Manager(get_config_filename('missing-sources.yaml')) \
.validate_configs() .validate_configs()
self.assertTrue('missing sources' in ctx.exception.message)
self.assertTrue('missing sources' in text_type(ctx.exception))
with self.assertRaises(Exception) as ctx: with self.assertRaises(Exception) as ctx:
Manager(get_config_filename('unknown-provider.yaml')) \ Manager(get_config_filename('unknown-provider.yaml')) \
.validate_configs() .validate_configs()
self.assertTrue('unknown source' in ctx.exception.message)
self.assertTrue('unknown source' in text_type(ctx.exception))
class TestMainThreadExecutor(TestCase): class TestMainThreadExecutor(TestCase):


+ 2
- 1
tests/test_octodns_plan.py View File

@ -7,6 +7,7 @@ from __future__ import absolute_import, division, print_function, \
from StringIO import StringIO from StringIO import StringIO
from logging import getLogger from logging import getLogger
from six import text_type
from unittest import TestCase from unittest import TestCase
from octodns.provider.plan import Plan, PlanHtml, PlanLogger, PlanMarkdown from octodns.provider.plan import Plan, PlanHtml, PlanLogger, PlanMarkdown
@ -59,7 +60,7 @@ class TestPlanLogger(TestCase):
with self.assertRaises(Exception) as ctx: with self.assertRaises(Exception) as ctx:
PlanLogger('invalid', 'not-a-level') PlanLogger('invalid', 'not-a-level')
self.assertEquals('Unsupported level: not-a-level', self.assertEquals('Unsupported level: not-a-level',
ctx.exception.message)
text_type(ctx.exception))
def test_create(self): def test_create(self):


+ 10
- 11
tests/test_octodns_provider_base.py View File

@ -6,9 +6,8 @@ from __future__ import absolute_import, division, print_function, \
unicode_literals unicode_literals
from logging import getLogger from logging import getLogger
from unittest import TestCase
from six import text_type from six import text_type
from unittest import TestCase
from octodns.record import Create, Delete, Record, Update from octodns.record import Create, Delete, Record, Update
from octodns.provider.base import BaseProvider from octodns.provider.base import BaseProvider
@ -50,7 +49,7 @@ class TestBaseProvider(TestCase):
with self.assertRaises(NotImplementedError) as ctx: with self.assertRaises(NotImplementedError) as ctx:
BaseProvider('base') BaseProvider('base')
self.assertEquals('Abstract base class, log property missing', self.assertEquals('Abstract base class, log property missing',
ctx.exception.message)
text_type(ctx.exception))
class HasLog(BaseProvider): class HasLog(BaseProvider):
log = getLogger('HasLog') log = getLogger('HasLog')
@ -58,7 +57,7 @@ class TestBaseProvider(TestCase):
with self.assertRaises(NotImplementedError) as ctx: with self.assertRaises(NotImplementedError) as ctx:
HasLog('haslog') HasLog('haslog')
self.assertEquals('Abstract base class, SUPPORTS_GEO property missing', self.assertEquals('Abstract base class, SUPPORTS_GEO property missing',
ctx.exception.message)
text_type(ctx.exception))
class HasSupportsGeo(HasLog): class HasSupportsGeo(HasLog):
SUPPORTS_GEO = False SUPPORTS_GEO = False
@ -67,14 +66,14 @@ class TestBaseProvider(TestCase):
with self.assertRaises(NotImplementedError) as ctx: with self.assertRaises(NotImplementedError) as ctx:
HasSupportsGeo('hassupportsgeo').populate(zone) HasSupportsGeo('hassupportsgeo').populate(zone)
self.assertEquals('Abstract base class, SUPPORTS property missing', self.assertEquals('Abstract base class, SUPPORTS property missing',
ctx.exception.message)
text_type(ctx.exception))
class HasSupports(HasSupportsGeo): class HasSupports(HasSupportsGeo):
SUPPORTS = set(('A',)) SUPPORTS = set(('A',))
with self.assertRaises(NotImplementedError) as ctx: with self.assertRaises(NotImplementedError) as ctx:
HasSupports('hassupports').populate(zone) HasSupports('hassupports').populate(zone)
self.assertEquals('Abstract base class, populate method missing', self.assertEquals('Abstract base class, populate method missing',
ctx.exception.message)
text_type(ctx.exception))
# SUPPORTS_DYNAMIC has a default/fallback # SUPPORTS_DYNAMIC has a default/fallback
self.assertFalse(HasSupports('hassupports').SUPPORTS_DYNAMIC) self.assertFalse(HasSupports('hassupports').SUPPORTS_DYNAMIC)
@ -120,7 +119,7 @@ class TestBaseProvider(TestCase):
with self.assertRaises(NotImplementedError) as ctx: with self.assertRaises(NotImplementedError) as ctx:
HasPopulate('haspopulate').apply(plan) HasPopulate('haspopulate').apply(plan)
self.assertEquals('Abstract base class, _apply method missing', self.assertEquals('Abstract base class, _apply method missing',
ctx.exception.message)
text_type(ctx.exception))
def test_plan(self): def test_plan(self):
ignored = Zone('unit.tests.', []) ignored = Zone('unit.tests.', [])
@ -240,7 +239,7 @@ class TestBaseProvider(TestCase):
with self.assertRaises(UnsafePlan) as ctx: with self.assertRaises(UnsafePlan) as ctx:
Plan(zone, zone, changes, True).raise_if_unsafe() Plan(zone, zone, changes, True).raise_if_unsafe()
self.assertTrue('Too many updates' in ctx.exception.message)
self.assertTrue('Too many updates' in text_type(ctx.exception))
def test_safe_updates_min_existing_pcent(self): def test_safe_updates_min_existing_pcent(self):
# MAX_SAFE_UPDATE_PCENT is safe when more # MAX_SAFE_UPDATE_PCENT is safe when more
@ -288,7 +287,7 @@ class TestBaseProvider(TestCase):
with self.assertRaises(UnsafePlan) as ctx: with self.assertRaises(UnsafePlan) as ctx:
Plan(zone, zone, changes, True).raise_if_unsafe() Plan(zone, zone, changes, True).raise_if_unsafe()
self.assertTrue('Too many deletes' in ctx.exception.message)
self.assertTrue('Too many deletes' in text_type(ctx.exception))
def test_safe_deletes_min_existing_pcent(self): def test_safe_deletes_min_existing_pcent(self):
# MAX_SAFE_DELETE_PCENT is safe when more # MAX_SAFE_DELETE_PCENT is safe when more
@ -338,7 +337,7 @@ class TestBaseProvider(TestCase):
Plan(zone, zone, changes, True, Plan(zone, zone, changes, True,
update_pcent_threshold=safe_pcent).raise_if_unsafe() update_pcent_threshold=safe_pcent).raise_if_unsafe()
self.assertTrue('Too many updates' in ctx.exception.message)
self.assertTrue('Too many updates' in text_type(ctx.exception))
def test_safe_deletes_min_existing_override(self): def test_safe_deletes_min_existing_override(self):
safe_pcent = .4 safe_pcent = .4
@ -366,4 +365,4 @@ class TestBaseProvider(TestCase):
Plan(zone, zone, changes, True, Plan(zone, zone, changes, True,
delete_pcent_threshold=safe_pcent).raise_if_unsafe() delete_pcent_threshold=safe_pcent).raise_if_unsafe()
self.assertTrue('Too many deletes' in ctx.exception.message)
self.assertTrue('Too many deletes' in text_type(ctx.exception))

+ 4
- 3
tests/test_octodns_provider_cloudflare.py View File

@ -9,6 +9,7 @@ from mock import Mock, call
from os.path import dirname, join from os.path import dirname, join
from requests import HTTPError from requests import HTTPError
from requests_mock import ANY, mock as requests_mock from requests_mock import ANY, mock as requests_mock
from six import text_type
from unittest import TestCase from unittest import TestCase
from octodns.record import Record, Update from octodns.record import Record, Update
@ -65,7 +66,7 @@ class TestCloudflareProvider(TestCase):
provider.populate(zone) provider.populate(zone)
self.assertEquals('CloudflareError', type(ctx.exception).__name__) self.assertEquals('CloudflareError', type(ctx.exception).__name__)
self.assertEquals('request was invalid', ctx.exception.message)
self.assertEquals('request was invalid', text_type(ctx.exception))
# Bad auth # Bad auth
with requests_mock() as mock: with requests_mock() as mock:
@ -80,7 +81,7 @@ class TestCloudflareProvider(TestCase):
self.assertEquals('CloudflareAuthenticationError', self.assertEquals('CloudflareAuthenticationError',
type(ctx.exception).__name__) type(ctx.exception).__name__)
self.assertEquals('Unknown X-Auth-Key or X-Auth-Email', self.assertEquals('Unknown X-Auth-Key or X-Auth-Email',
ctx.exception.message)
text_type(ctx.exception))
# Bad auth, unknown resp # Bad auth, unknown resp
with requests_mock() as mock: with requests_mock() as mock:
@ -91,7 +92,7 @@ class TestCloudflareProvider(TestCase):
provider.populate(zone) provider.populate(zone)
self.assertEquals('CloudflareAuthenticationError', self.assertEquals('CloudflareAuthenticationError',
type(ctx.exception).__name__) type(ctx.exception).__name__)
self.assertEquals('Cloudflare error', ctx.exception.message)
self.assertEquals('Cloudflare error', text_type(ctx.exception))
# General error # General error
with requests_mock() as mock: with requests_mock() as mock:


+ 2
- 1
tests/test_octodns_provider_digitalocean.py View File

@ -10,6 +10,7 @@ from mock import Mock, call
from os.path import dirname, join from os.path import dirname, join
from requests import HTTPError from requests import HTTPError
from requests_mock import ANY, mock as requests_mock from requests_mock import ANY, mock as requests_mock
from six import text_type
from unittest import TestCase from unittest import TestCase
from octodns.record import Record from octodns.record import Record
@ -50,7 +51,7 @@ class TestDigitalOceanProvider(TestCase):
with self.assertRaises(Exception) as ctx: with self.assertRaises(Exception) as ctx:
zone = Zone('unit.tests.', []) zone = Zone('unit.tests.', [])
provider.populate(zone) provider.populate(zone)
self.assertEquals('Unauthorized', ctx.exception.message)
self.assertEquals('Unauthorized', text_type(ctx.exception))
# General error # General error
with requests_mock() as mock: with requests_mock() as mock:


+ 2
- 1
tests/test_octodns_provider_dnsimple.py View File

@ -9,6 +9,7 @@ from mock import Mock, call
from os.path import dirname, join from os.path import dirname, join
from requests import HTTPError from requests import HTTPError
from requests_mock import ANY, mock as requests_mock from requests_mock import ANY, mock as requests_mock
from six import text_type
from unittest import TestCase from unittest import TestCase
from octodns.record import Record from octodns.record import Record
@ -47,7 +48,7 @@ class TestDnsimpleProvider(TestCase):
with self.assertRaises(Exception) as ctx: with self.assertRaises(Exception) as ctx:
zone = Zone('unit.tests.', []) zone = Zone('unit.tests.', [])
provider.populate(zone) provider.populate(zone)
self.assertEquals('Unauthorized', ctx.exception.message)
self.assertEquals('Unauthorized', text_type(ctx.exception))
# General error # General error
with requests_mock() as mock: with requests_mock() as mock:


+ 3
- 2
tests/test_octodns_provider_dnsmadeeasy.py View File

@ -10,6 +10,7 @@ from mock import Mock, call
from os.path import dirname, join from os.path import dirname, join
from requests import HTTPError from requests import HTTPError
from requests_mock import ANY, mock as requests_mock from requests_mock import ANY, mock as requests_mock
from six import text_type
from unittest import TestCase from unittest import TestCase
from octodns.record import Record from octodns.record import Record
@ -65,7 +66,7 @@ class TestDnsMadeEasyProvider(TestCase):
with self.assertRaises(Exception) as ctx: with self.assertRaises(Exception) as ctx:
zone = Zone('unit.tests.', []) zone = Zone('unit.tests.', [])
provider.populate(zone) provider.populate(zone)
self.assertEquals('Unauthorized', ctx.exception.message)
self.assertEquals('Unauthorized', text_type(ctx.exception))
# Bad request # Bad request
with requests_mock() as mock: with requests_mock() as mock:
@ -76,7 +77,7 @@ class TestDnsMadeEasyProvider(TestCase):
zone = Zone('unit.tests.', []) zone = Zone('unit.tests.', [])
provider.populate(zone) provider.populate(zone)
self.assertEquals('\n - Rate limit exceeded', self.assertEquals('\n - Rate limit exceeded',
ctx.exception.message)
text_type(ctx.exception))
# General error # General error
with requests_mock() as mock: with requests_mock() as mock:


+ 10
- 10
tests/test_octodns_provider_mythicbeasts.py View File

@ -8,6 +8,7 @@ from __future__ import absolute_import, division, print_function, \
from os.path import dirname, join from os.path import dirname, join
from requests_mock import ANY, mock as requests_mock from requests_mock import ANY, mock as requests_mock
from six import text_type
from unittest import TestCase from unittest import TestCase
from octodns.provider.mythicbeasts import MythicBeastsProvider, \ from octodns.provider.mythicbeasts import MythicBeastsProvider, \
@ -31,12 +32,12 @@ class TestMythicBeastsProvider(TestCase):
with self.assertRaises(AssertionError) as err: with self.assertRaises(AssertionError) as err:
add_trailing_dot('unit.tests.') add_trailing_dot('unit.tests.')
self.assertEquals('Value already has trailing dot', self.assertEquals('Value already has trailing dot',
err.exception.message)
text_type(err.exception))
with self.assertRaises(AssertionError) as err: with self.assertRaises(AssertionError) as err:
remove_trailing_dot('unit.tests') remove_trailing_dot('unit.tests')
self.assertEquals('Value already missing trailing dot', self.assertEquals('Value already missing trailing dot',
err.exception.message)
text_type(err.exception))
self.assertEquals(add_trailing_dot('unit.tests'), 'unit.tests.') self.assertEquals(add_trailing_dot('unit.tests'), 'unit.tests.')
self.assertEquals(remove_trailing_dot('unit.tests.'), 'unit.tests') self.assertEquals(remove_trailing_dot('unit.tests.'), 'unit.tests')
@ -91,7 +92,7 @@ class TestMythicBeastsProvider(TestCase):
{'raw_values': [{'value': '', 'ttl': 0}]} {'raw_values': [{'value': '', 'ttl': 0}]}
) )
self.assertEquals('Unable to parse MX data', self.assertEquals('Unable to parse MX data',
err.exception.message)
text_type(err.exception))
def test_data_for_CNAME(self): def test_data_for_CNAME(self):
test_data = { test_data = {
@ -129,7 +130,7 @@ class TestMythicBeastsProvider(TestCase):
{'raw_values': [{'value': '', 'ttl': 0}]} {'raw_values': [{'value': '', 'ttl': 0}]}
) )
self.assertEquals('Unable to parse SRV data', self.assertEquals('Unable to parse SRV data',
err.exception.message)
text_type(err.exception))
def test_data_for_SSHFP(self): def test_data_for_SSHFP(self):
test_data = { test_data = {
@ -149,7 +150,7 @@ class TestMythicBeastsProvider(TestCase):
{'raw_values': [{'value': '', 'ttl': 0}]} {'raw_values': [{'value': '', 'ttl': 0}]}
) )
self.assertEquals('Unable to parse SSHFP data', self.assertEquals('Unable to parse SSHFP data',
err.exception.message)
text_type(err.exception))
def test_data_for_CAA(self): def test_data_for_CAA(self):
test_data = { test_data = {
@ -166,7 +167,7 @@ class TestMythicBeastsProvider(TestCase):
{'raw_values': [{'value': '', 'ttl': 0}]} {'raw_values': [{'value': '', 'ttl': 0}]}
) )
self.assertEquals('Unable to parse CAA data', self.assertEquals('Unable to parse CAA data',
err.exception.message)
text_type(err.exception))
def test_command_generation(self): def test_command_generation(self):
zone = Zone('unit.tests.', []) zone = Zone('unit.tests.', [])
@ -312,7 +313,7 @@ class TestMythicBeastsProvider(TestCase):
with self.assertRaises(AssertionError) as err: with self.assertRaises(AssertionError) as err:
provider = MythicBeastsProvider('test', None) provider = MythicBeastsProvider('test', None)
self.assertEquals('Passwords must be a dictionary', self.assertEquals('Passwords must be a dictionary',
err.exception.message)
text_type(err.exception))
# Missing password # Missing password
with requests_mock() as mock: with requests_mock() as mock:
@ -324,7 +325,7 @@ class TestMythicBeastsProvider(TestCase):
provider.populate(zone) provider.populate(zone)
self.assertEquals( self.assertEquals(
'Missing password for domain: unit.tests', 'Missing password for domain: unit.tests',
err.exception.message)
text_type(err.exception))
# Failed authentication # Failed authentication
with requests_mock() as mock: with requests_mock() as mock:
@ -413,8 +414,7 @@ class TestMythicBeastsProvider(TestCase):
provider.apply(plan) provider.apply(plan)
self.assertEquals( self.assertEquals(
'Mythic Beasts could not action command: unit.tests ' 'Mythic Beasts could not action command: unit.tests '
'ADD prawf.unit.tests 300 TXT prawf',
err.exception.message)
'ADD prawf.unit.tests 300 TXT prawf', err.exception.message)
# Check deleting and adding/changing test record # Check deleting and adding/changing test record
existing = 'prawf 300 TXT prawf prawf prawf\ndileu 300 TXT dileu' existing = 'prawf 300 TXT prawf prawf prawf\ndileu 300 TXT dileu'


+ 2
- 1
tests/test_octodns_provider_powerdns.py View File

@ -9,6 +9,7 @@ from json import loads, dumps
from os.path import dirname, join from os.path import dirname, join
from requests import HTTPError from requests import HTTPError
from requests_mock import ANY, mock as requests_mock from requests_mock import ANY, mock as requests_mock
from six import text_type
from unittest import TestCase from unittest import TestCase
from octodns.record import Record from octodns.record import Record
@ -52,7 +53,7 @@ class TestPowerDnsProvider(TestCase):
with self.assertRaises(Exception) as ctx: with self.assertRaises(Exception) as ctx:
zone = Zone('unit.tests.', []) zone = Zone('unit.tests.', [])
provider.populate(zone) provider.populate(zone)
self.assertTrue('unauthorized' in ctx.exception.message)
self.assertTrue('unauthorized' in text_type(ctx.exception))
# General error # General error
with requests_mock() as mock: with requests_mock() as mock:


+ 2
- 1
tests/test_octodns_provider_rackspace.py View File

@ -7,6 +7,7 @@ from __future__ import absolute_import, division, print_function, \
import json import json
import re import re
from six import text_type
from unittest import TestCase from unittest import TestCase
from urlparse import urlparse from urlparse import urlparse
@ -53,7 +54,7 @@ class TestRackspaceProvider(TestCase):
with self.assertRaises(Exception) as ctx: with self.assertRaises(Exception) as ctx:
zone = Zone('unit.tests.', []) zone = Zone('unit.tests.', [])
self.provider.populate(zone) self.provider.populate(zone)
self.assertTrue('unauthorized' in ctx.exception.message)
self.assertTrue('unauthorized' in text_type(ctx.exception))
self.assertTrue(mock.called_once) self.assertTrue(mock.called_once)
def test_server_error(self): def test_server_error(self):


+ 2
- 1
tests/test_octodns_provider_route53.py View File

@ -7,6 +7,7 @@ from __future__ import absolute_import, division, print_function, \
from botocore.exceptions import ClientError from botocore.exceptions import ClientError
from botocore.stub import ANY, Stubber from botocore.stub import ANY, Stubber
from six import text_type
from unittest import TestCase from unittest import TestCase
from mock import patch from mock import patch
@ -1903,7 +1904,7 @@ class TestRoute53Provider(TestCase):
provider, plan = self._get_test_plan(1) provider, plan = self._get_test_plan(1)
with self.assertRaises(Exception) as ctx: with self.assertRaises(Exception) as ctx:
provider.apply(plan) provider.apply(plan)
self.assertTrue('modifications' in ctx.exception.message)
self.assertTrue('modifications' in text_type(ctx.exception))
def test_semicolon_fixup(self): def test_semicolon_fixup(self):
provider = Route53Provider('test', 'abc', '123') provider = Route53Provider('test', 'abc', '123')


+ 3
- 2
tests/test_octodns_provider_yaml.py View File

@ -8,6 +8,7 @@ from __future__ import absolute_import, division, print_function, \
from os import makedirs from os import makedirs
from os.path import basename, dirname, isdir, isfile, join from os.path import basename, dirname, isdir, isfile, join
from unittest import TestCase from unittest import TestCase
from six import text_type
from yaml import safe_load from yaml import safe_load
from yaml.constructor import ConstructorError from yaml.constructor import ConstructorError
@ -181,7 +182,7 @@ class TestYamlProvider(TestCase):
with self.assertRaises(SubzoneRecordException) as ctx: with self.assertRaises(SubzoneRecordException) as ctx:
source.populate(zone) source.populate(zone)
self.assertEquals('Record www.sub.unit.tests. is under a managed ' self.assertEquals('Record www.sub.unit.tests. is under a managed '
'subzone', ctx.exception.message)
'subzone', text_type(ctx.exception))
class TestSplitYamlProvider(TestCase): class TestSplitYamlProvider(TestCase):
@ -373,4 +374,4 @@ class TestSplitYamlProvider(TestCase):
with self.assertRaises(SubzoneRecordException) as ctx: with self.assertRaises(SubzoneRecordException) as ctx:
source.populate(zone) source.populate(zone)
self.assertEquals('Record www.sub.unit.tests. is under a managed ' self.assertEquals('Record www.sub.unit.tests. is under a managed '
'subzone', ctx.exception.message)
'subzone', text_type(ctx.exception))

+ 2
- 2
tests/test_octodns_record.py View File

@ -758,14 +758,14 @@ class TestRecord(TestCase):
# Missing type # Missing type
with self.assertRaises(Exception) as ctx: with self.assertRaises(Exception) as ctx:
Record.new(self.zone, 'unknown', {}) Record.new(self.zone, 'unknown', {})
self.assertTrue('missing type' in ctx.exception.message)
self.assertTrue('missing type' in text_type(ctx.exception))
# Unknown type # Unknown type
with self.assertRaises(Exception) as ctx: with self.assertRaises(Exception) as ctx:
Record.new(self.zone, 'unknown', { Record.new(self.zone, 'unknown', {
'type': 'XXX', 'type': 'XXX',
}) })
self.assertTrue('Unknown record type' in ctx.exception.message)
self.assertTrue('Unknown record type' in text_type(ctx.exception))
def test_change(self): def test_change(self):
existing = Record.new(self.zone, 'txt', { existing = Record.new(self.zone, 'txt', {


+ 3
- 2
tests/test_octodns_source_axfr.py View File

@ -9,6 +9,7 @@ import dns.zone
from dns.exception import DNSException from dns.exception import DNSException
from mock import patch from mock import patch
from six import text_type
from unittest import TestCase from unittest import TestCase
from octodns.source.axfr import AxfrSource, AxfrSourceZoneTransferFailed, \ from octodns.source.axfr import AxfrSource, AxfrSourceZoneTransferFailed, \
@ -38,7 +39,7 @@ class TestAxfrSource(TestCase):
zone = Zone('unit.tests.', []) zone = Zone('unit.tests.', [])
self.source.populate(zone) self.source.populate(zone)
self.assertEquals('Unable to Perform Zone Transfer', self.assertEquals('Unable to Perform Zone Transfer',
ctx.exception.message)
text_type(ctx.exception))
class TestZoneFileSource(TestCase): class TestZoneFileSource(TestCase):
@ -68,4 +69,4 @@ class TestZoneFileSource(TestCase):
zone = Zone('invalid.zone.', []) zone = Zone('invalid.zone.', [])
self.source.populate(zone) self.source.populate(zone)
self.assertEquals('The DNS zone has no NS RRset at its origin.', self.assertEquals('The DNS zone has no NS RRset at its origin.',
ctx.exception.message)
text_type(ctx.exception))

+ 6
- 5
tests/test_octodns_zone.py View File

@ -6,6 +6,7 @@ from __future__ import absolute_import, division, print_function, \
unicode_literals unicode_literals
from unittest import TestCase from unittest import TestCase
from six import text_type
from octodns.record import ARecord, AaaaRecord, Create, Delete, Record, Update from octodns.record import ARecord, AaaaRecord, Create, Delete, Record, Update
from octodns.zone import DuplicateRecordException, InvalidNodeException, \ from octodns.zone import DuplicateRecordException, InvalidNodeException, \
@ -47,7 +48,7 @@ class TestZone(TestCase):
with self.assertRaises(DuplicateRecordException) as ctx: with self.assertRaises(DuplicateRecordException) as ctx:
zone.add_record(a) zone.add_record(a)
self.assertEquals('Duplicate record a.unit.tests., type A', self.assertEquals('Duplicate record a.unit.tests., type A',
ctx.exception.message)
text_type(ctx.exception))
self.assertEquals(zone.records, set([a])) self.assertEquals(zone.records, set([a]))
# can add duplicate with replace=True # can add duplicate with replace=True
@ -137,7 +138,7 @@ class TestZone(TestCase):
def test_missing_dot(self): def test_missing_dot(self):
with self.assertRaises(Exception) as ctx: with self.assertRaises(Exception) as ctx:
Zone('not.allowed', []) Zone('not.allowed', [])
self.assertTrue('missing ending dot' in ctx.exception.message)
self.assertTrue('missing ending dot' in text_type(ctx.exception))
def test_sub_zones(self): def test_sub_zones(self):
@ -160,7 +161,7 @@ class TestZone(TestCase):
}) })
with self.assertRaises(SubzoneRecordException) as ctx: with self.assertRaises(SubzoneRecordException) as ctx:
zone.add_record(record) zone.add_record(record)
self.assertTrue('not of type NS', ctx.exception.message)
self.assertTrue('not of type NS', text_type(ctx.exception))
# Can add it w/lenient # Can add it w/lenient
zone.add_record(record, lenient=True) zone.add_record(record, lenient=True)
self.assertEquals(set([record]), zone.records) self.assertEquals(set([record]), zone.records)
@ -174,7 +175,7 @@ class TestZone(TestCase):
}) })
with self.assertRaises(SubzoneRecordException) as ctx: with self.assertRaises(SubzoneRecordException) as ctx:
zone.add_record(record) zone.add_record(record)
self.assertTrue('under a managed sub-zone', ctx.exception.message)
self.assertTrue('under a managed sub-zone', text_type(ctx.exception))
# Can add it w/lenient # Can add it w/lenient
zone.add_record(record, lenient=True) zone.add_record(record, lenient=True)
self.assertEquals(set([record]), zone.records) self.assertEquals(set([record]), zone.records)
@ -188,7 +189,7 @@ class TestZone(TestCase):
}) })
with self.assertRaises(SubzoneRecordException) as ctx: with self.assertRaises(SubzoneRecordException) as ctx:
zone.add_record(record) zone.add_record(record)
self.assertTrue('under a managed sub-zone', ctx.exception.message)
self.assertTrue('under a managed sub-zone', text_type(ctx.exception))
# Can add it w/lenient # Can add it w/lenient
zone.add_record(record, lenient=True) zone.add_record(record, lenient=True)
self.assertEquals(set([record]), zone.records) self.assertEquals(set([record]), zone.records)


Loading…
Cancel
Save