1
0
mirror of https://github.com/github/octodns.git synced 2024-05-11 05:55:00 +00:00

Use patch to mock in transip tests, rework bits to make more mockable

This commit is contained in:
Ross McFarland
2021-09-02 13:00:38 -07:00
parent 4f036c77f8
commit d374dc355b
2 changed files with 37 additions and 36 deletions

View File

@@ -63,31 +63,21 @@ class TransipProvider(BaseProvider):
account)
super(TransipProvider, self).__init__(id, *args, **kwargs)
if key is None and key_file is None:
if key_file is not None:
self._client = self._domain_service(account,
private_key_file=key_file)
elif key is not None:
self._client = self._domain_service(account, private_key=key)
else:
raise TransipConfigException(
'Missing `key` or `key_file` parameter in config'
)
self.account = account
self.key = key
self.key_file = key_file
self._client = None
self._currentZone = {}
@property
def client(self):
# This can't happen in __init__ b/c it makes network calls during the
# construction of the object and that before the tests have had a
# chance to install the mock client
if self._client is None:
if self.key_file is not None:
self._client = DomainService(self.account,
private_key_file=self.key_file)
else: # we checked key in __init__ so can assume it's not None
self._client = DomainService(self.account,
private_key=self.key)
return self._client
def _domain_service(self, *args, **kwargs):
'This exists only for mocking purposes'
return DomainService(*args, **kwargs)
def populate(self, zone, target=False, lenient=False):
@@ -98,7 +88,7 @@ class TransipProvider(BaseProvider):
before = len(zone.records)
try:
zoneInfo = self.client.get_info(zone.name[:-1])
zoneInfo = self._client.get_info(zone.name[:-1])
except WebFault as e:
if e.fault.faultcode == '102' and target is False:
# Zone not found in account, and not a target so just
@@ -148,7 +138,7 @@ class TransipProvider(BaseProvider):
self._currentZone = plan.desired
try:
self.client.get_info(plan.desired.name[:-1])
self._client.get_info(plan.desired.name[:-1])
except WebFault as e:
self.log.exception('_apply: get_info failed')
raise e
@@ -167,7 +157,7 @@ class TransipProvider(BaseProvider):
_dns_entries.extend(entries_for(name, record))
try:
self.client.set_dns_entries(plan.desired.name[:-1], _dns_entries)
self._client.set_dns_entries(plan.desired.name[:-1], _dns_entries)
except WebFault as e:
self.log.warning(('_apply: Set DNS returned ' +
'one or more errors: {}').format(