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

Test that Manager passes fh to _PlanOutputs

This commit is contained in:
Christian Funkhouser
2021-04-07 18:21:34 -04:00
parent 090dbe3515
commit 2075550f07
3 changed files with 31 additions and 3 deletions

View File

@@ -270,8 +270,9 @@ class Manager(object):
def sync(self, eligible_zones=[], eligible_sources=[], eligible_targets=[],
dry_run=True, force=False, plan_output_fh=stdout):
self.log.info('sync: eligible_zones=%s, eligible_targets=%s, '
'dry_run=%s, force=%s', eligible_zones, eligible_targets,
dry_run, force)
'dry_run=%s, force=%s, plan_output_fh=%s',
eligible_zones, eligible_targets, dry_run, force,
plan_output_fh)
zones = self.config['zones'].items()
if eligible_zones:

View File

@@ -0,0 +1,6 @@
manager:
plan_outputs:
"doesntexist":
class: octodns.provider.plan.DoesntExist
providers: {}
zones: {}

View File

@@ -8,7 +8,6 @@ from __future__ import absolute_import, division, print_function, \
from os import environ
from os.path import dirname, join
from six import text_type
from unittest import TestCase
from octodns.record import Record
from octodns.manager import _AggregateTarget, MainThreadExecutor, Manager, \
@@ -16,6 +15,10 @@ from octodns.manager import _AggregateTarget, MainThreadExecutor, Manager, \
from octodns.yaml import safe_load
from octodns.zone import Zone
from mock import MagicMock, patch
from unittest import TestCase
from helpers import DynamicProvider, GeoProvider, NoSshFpProvider, \
SimpleProvider, TemporaryDirectory
@@ -371,6 +374,24 @@ class TestManager(TestCase):
with self.assertRaises(TypeError):
manager._populate_and_plan('unit.tests.', [NoZone()], [])
@patch('octodns.manager.Manager._get_named_class')
def test_sync_passes_file_handle(self, mock):
plan_output_mock = MagicMock()
plan_output_class_mock = MagicMock()
plan_output_class_mock.return_value = plan_output_mock
mock.return_value = plan_output_class_mock
fh_mock = MagicMock()
Manager(get_config_filename('plan-output-filehandle.yaml')
).sync(plan_output_fh=fh_mock)
# Since we only care about the fh kwarg, and different _PlanOutputs are
# are free to require arbitrary kwargs anyway, we concern ourselves
# with checking the value of fh only.
plan_output_mock.run.assert_called()
_, kwargs = plan_output_mock.run.call_args
self.assertEqual(fh_mock, kwargs.get('fh'))
class TestMainThreadExecutor(TestCase):