|
|
|
@ -3,6 +3,7 @@ |
|
|
|
# |
|
|
|
|
|
|
|
from io import StringIO |
|
|
|
from json import loads |
|
|
|
from logging import getLogger |
|
|
|
from unittest import TestCase |
|
|
|
|
|
|
|
@ -11,6 +12,7 @@ from helpers import SimpleProvider |
|
|
|
from octodns.provider.plan import ( |
|
|
|
Plan, |
|
|
|
PlanHtml, |
|
|
|
PlanJson, |
|
|
|
PlanLogger, |
|
|
|
PlanMarkdown, |
|
|
|
RootNsChange, |
|
|
|
@ -126,6 +128,17 @@ class TestPlanHtml(TestCase): |
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
class TestPlanJson(TestCase): |
|
|
|
def test_basics(self): |
|
|
|
out = StringIO() |
|
|
|
PlanJson('json').run(plans, fh=out) |
|
|
|
data = loads(out.getvalue()) |
|
|
|
for key in ('test', 'unit.tests.', 'changes'): |
|
|
|
self.assertTrue(key in data) |
|
|
|
data = data[key] |
|
|
|
self.assertEqual(4, len(data)) |
|
|
|
|
|
|
|
|
|
|
|
class TestPlanMarkdown(TestCase): |
|
|
|
log = getLogger('TestPlanMarkdown') |
|
|
|
|
|
|
|
@ -394,18 +407,25 @@ class TestPlanSafety(TestCase): |
|
|
|
# we'll test the change .data's here while we're at it since they don't |
|
|
|
# have a dedicated test (file) |
|
|
|
delete_data = data['changes'][0] # delete |
|
|
|
self.assertEqual(['existing', 'type'], sorted(delete_data.keys())) |
|
|
|
self.assertEqual( |
|
|
|
['existing', 'record_type', 'type'], sorted(delete_data.keys()) |
|
|
|
) |
|
|
|
self.assertEqual('delete', delete_data['type']) |
|
|
|
self.assertEqual('A', delete_data['record_type']) |
|
|
|
self.assertEqual(delete.existing.data, delete_data['existing']) |
|
|
|
|
|
|
|
create_data = data['changes'][1] # create |
|
|
|
self.assertEqual(['new', 'type'], sorted(create_data.keys())) |
|
|
|
self.assertEqual( |
|
|
|
['new', 'record_type', 'type'], sorted(create_data.keys()) |
|
|
|
) |
|
|
|
self.assertEqual('create', create_data['type']) |
|
|
|
self.assertEqual('CNAME', create_data['record_type']) |
|
|
|
self.assertEqual(create.new.data, create_data['new']) |
|
|
|
|
|
|
|
update_data = data['changes'][3] # update |
|
|
|
self.assertEqual( |
|
|
|
['existing', 'new', 'type'], sorted(update_data.keys()) |
|
|
|
['existing', 'new', 'record_type', 'type'], |
|
|
|
sorted(update_data.keys()), |
|
|
|
) |
|
|
|
self.assertEqual('update', update_data['type']) |
|
|
|
self.assertEqual(update.existing.data, update_data['existing']) |
|
|
|
|