Browse Source

Test that Manager passes fh to _PlanOutputs

pull/689/head
Christian Funkhouser 5 years ago
parent
commit
2075550f07
No known key found for this signature in database GPG Key ID: B41C144625325CF1
3 changed files with 31 additions and 3 deletions
  1. +3
    -2
      octodns/manager.py
  2. +6
    -0
      tests/config/plan-output-filehandle.yaml
  3. +22
    -1
      tests/test_octodns_manager.py

+ 3
- 2
octodns/manager.py 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:


+ 6
- 0
tests/config/plan-output-filehandle.yaml View File

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

+ 22
- 1
tests/test_octodns_manager.py 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):


Loading…
Cancel
Save