mirror of
https://github.com/github/octodns.git
synced 2024-05-11 05:55:00 +00:00
Merge pull request #1030 from octodns/remove-py-3-7-try
Require python 3.8, remove a p3.7 import work-around, address other minor TODOs as prep for 1.0
This commit is contained in:
@@ -1,3 +1,10 @@
|
||||
## v1.0.0 - 2023-??-?? - The One
|
||||
|
||||
#### Stuff
|
||||
|
||||
* Removal of a Python 3.7 specific import work-around now that it's no longer an
|
||||
active/supported version. Also bumps required minimum version of Python 3.8
|
||||
|
||||
## v1.0.0.rc1 - 2023-07-20 - The last one before the 1s
|
||||
|
||||
* Record and Zone validation now ensures there's no whitespace in names
|
||||
|
||||
@@ -101,9 +101,3 @@ class ArgumentParser(_Base):
|
||||
# we still want plans to come out during quite so set the plan
|
||||
# logger output to info in case the PlanLogger is being used
|
||||
getLogger('Plan').setLevel(INFO)
|
||||
|
||||
# TODO: these should move out of octoDNS core...
|
||||
# boto is noisy, set it to warn
|
||||
getLogger('botocore').level = WARNING
|
||||
# DynectSession is noisy too
|
||||
getLogger('DynectSession').level = WARNING
|
||||
|
||||
+2
-12
@@ -5,6 +5,8 @@
|
||||
from collections import deque
|
||||
from concurrent.futures import ThreadPoolExecutor
|
||||
from importlib import import_module
|
||||
from importlib.metadata import PackageNotFoundError
|
||||
from importlib.metadata import version as module_version
|
||||
from logging import getLogger
|
||||
from os import environ
|
||||
from sys import stdout
|
||||
@@ -19,18 +21,6 @@ from .record import Record
|
||||
from .yaml import safe_load
|
||||
from .zone import Zone
|
||||
|
||||
# TODO: this can go away once we no longer support python 3.7
|
||||
try: # pragma: no cover
|
||||
from importlib.metadata import PackageNotFoundError
|
||||
from importlib.metadata import version as module_version
|
||||
except ModuleNotFoundError: # pragma: no cover
|
||||
|
||||
class PackageNotFoundError(Exception):
|
||||
pass
|
||||
|
||||
def module_version(*args, **kargs):
|
||||
raise PackageNotFoundError('placeholder')
|
||||
|
||||
|
||||
class _AggregateTarget(object):
|
||||
id = 'aggregate'
|
||||
|
||||
@@ -79,7 +79,6 @@ class Plan(object):
|
||||
)
|
||||
|
||||
def raise_if_unsafe(self):
|
||||
# TODO: what is safe really?
|
||||
if (
|
||||
self.existing
|
||||
and len(self.existing.records) >= self.MIN_EXISTING_RECORDS
|
||||
|
||||
+6
-2
@@ -161,8 +161,12 @@ class Zone(object):
|
||||
|
||||
self._records[record.name].discard(record)
|
||||
|
||||
# TODO: delete this
|
||||
_remove_record = remove_record
|
||||
# TODO: delete this at v2.0.0rc0
|
||||
def _remove_record(self, record):
|
||||
self.log.warning(
|
||||
'_remove_record: method has been deprecated, used remove_record instead'
|
||||
)
|
||||
return self.remove_record(record)
|
||||
|
||||
def changes(self, desired, target):
|
||||
self.log.debug('changes: zone=%s, target=%s', self, target)
|
||||
|
||||
@@ -99,7 +99,7 @@ setup(
|
||||
long_description_content_type='text/markdown',
|
||||
name='octodns',
|
||||
packages=find_packages(),
|
||||
python_requires='>=3.6',
|
||||
python_requires='>=3.8',
|
||||
tests_require=tests_require,
|
||||
url='https://github.com/octodns/octodns',
|
||||
version=version(),
|
||||
|
||||
@@ -139,32 +139,31 @@ class TestYamlProvider(TestCase):
|
||||
with open(dynamic_yaml_file) as fh:
|
||||
data = safe_load(fh.read())
|
||||
|
||||
# make sure new dynamic records made the trip
|
||||
# make sure dynamic records made the trip
|
||||
dyna = data.pop('a')
|
||||
self.assertTrue('values' in dyna)
|
||||
# self.assertTrue('dynamic' in dyna)
|
||||
# TODO:
|
||||
self.assertTrue('dynamic' in dyna)
|
||||
|
||||
# make sure new dynamic records made the trip
|
||||
# make sure dynamic records made the trip
|
||||
dyna = data.pop('aaaa')
|
||||
self.assertTrue('values' in dyna)
|
||||
# self.assertTrue('dynamic' in dyna)
|
||||
self.assertTrue('dynamic' in dyna)
|
||||
|
||||
dyna = data.pop('cname')
|
||||
self.assertTrue('value' in dyna)
|
||||
# self.assertTrue('dynamic' in dyna)
|
||||
self.assertTrue('dynamic' in dyna)
|
||||
|
||||
dyna = data.pop('real-ish-a')
|
||||
self.assertTrue('values' in dyna)
|
||||
# self.assertTrue('dynamic' in dyna)
|
||||
self.assertTrue('dynamic' in dyna)
|
||||
|
||||
dyna = data.pop('simple-weighted')
|
||||
self.assertTrue('value' in dyna)
|
||||
# self.assertTrue('dynamic' in dyna)
|
||||
self.assertTrue('dynamic' in dyna)
|
||||
|
||||
dyna = data.pop('pool-only-in-fallback')
|
||||
self.assertTrue('value' in dyna)
|
||||
# self.assertTrue('dynamic' in dyna)
|
||||
self.assertTrue('dynamic' in dyna)
|
||||
|
||||
# make sure nothing is left
|
||||
self.assertEqual([], list(data.keys()))
|
||||
|
||||
@@ -125,7 +125,7 @@ class TestZone(TestCase):
|
||||
# add a record, delete a record -> [Delete, Create]
|
||||
c = ARecord(before, 'c', {'ttl': 42, 'value': '1.1.1.1'})
|
||||
after.add_record(c)
|
||||
after._remove_record(b)
|
||||
after.remove_record(b)
|
||||
self.assertEqual(after.records, set([a, c]))
|
||||
changes = before.changes(after, target)
|
||||
self.assertEqual(2, len(changes))
|
||||
@@ -154,6 +154,14 @@ class TestZone(TestCase):
|
||||
self.assertFalse(changed.changes(update.new, target))
|
||||
update.__repr__()
|
||||
|
||||
def test_deprecated__remove_record(self):
|
||||
zone = Zone('unit.tests.', [])
|
||||
a = ARecord(zone, 'a', {'ttl': 42, 'value': '1.1.1.1'})
|
||||
zone.add_record(a)
|
||||
self.assertEqual({a}, zone.records)
|
||||
zone._remove_record(a)
|
||||
self.assertEqual(set(), zone.records)
|
||||
|
||||
def test_unsupporting(self):
|
||||
class NoAaaaProvider(object):
|
||||
id = 'no-aaaa'
|
||||
|
||||
Reference in New Issue
Block a user