diff --git a/octodns/processor/meta.py b/octodns/processor/meta.py index c0baeb7..ba579d3 100644 --- a/octodns/processor/meta.py +++ b/octodns/processor/meta.py @@ -62,9 +62,8 @@ class MetaProcessor(BaseProcessor): # Extra values to set on the records # (default: None) #include_extra: - # - key=val - # - foo=bar - # - arbitrary string + # key: val + # foo: env/BAR ''' @classmethod @@ -103,7 +102,11 @@ class MetaProcessor(BaseProcessor): self.uuid = self.get_uuid() if include_uuid else None self.include_version = include_version self.include_provider = include_provider - self.include_extra = include_extra + self.include_extra = ( + [f'{key}={val}' for key, val in include_extra.items()] + if include_extra is not None + else [] + ) self.ttl = ttl def values(self, target_id): @@ -116,8 +119,8 @@ class MetaProcessor(BaseProcessor): ret.append(f'time={self.time}') if self.uuid: ret.append(f'uuid={self.uuid}') - if self.include_extra is not None: - ret.extend(self.include_extra) + # these were previously converted into key=value or will otherwise be [] + ret.extend(self.include_extra) return ret def process_source_and_target_zones(self, desired, existing, target): diff --git a/tests/test_octodns_processor_meta.py b/tests/test_octodns_processor_meta.py index 685f34b..00d2c97 100644 --- a/tests/test_octodns_processor_meta.py +++ b/tests/test_octodns_processor_meta.py @@ -116,7 +116,7 @@ class TestMetaProcessor(TestCase): self.assertFalse(proc.time) self.assertFalse(proc.include_provider) self.assertFalse(proc.include_version) - self.assertIsNone(proc.include_extra) + self.assertEqual([], proc.include_extra) values = list(proc.values('dummy')) self.assertEqual(1, len(values)) @@ -124,17 +124,24 @@ class TestMetaProcessor(TestCase): self.assertEqual(f'uuid={proc.uuid}', value) def test_extra(self): - extra = ['one', 'two=three', 'four', 'five six'] + extra = {'key': 'value', 'foo': 'bar', 'baz': 42} + expected = ['key=value', 'foo=bar', 'baz=42'] proc = MetaProcessor('test', include_time=False, include_extra=extra) - self.assertEqual(extra, proc.include_extra) + self.assertEqual(expected, proc.include_extra) self.assertFalse(proc.include_provider) self.assertFalse(proc.include_version) self.assertFalse(proc.time) self.assertFalse(proc.uuid) values = list(proc.values('dummy')) - self.assertEqual(4, len(values)) - self.assertEqual(extra, values) + self.assertEqual(3, len(values)) + self.assertEqual(expected, values) + + # other param values + proc = MetaProcessor('test', include_time=False, include_extra=None) + self.assertEqual([], proc.include_extra) + proc = MetaProcessor('test', include_time=False, include_extra={}) + self.assertEqual([], proc.include_extra) def test_is_up_to_date_meta(self): proc = MetaProcessor('test')