mirror of
https://github.com/github/octodns.git
synced 2024-05-11 05:55:00 +00:00
93 lines
2.9 KiB
Python
93 lines
2.9 KiB
Python
#
|
|
#
|
|
#
|
|
|
|
from unittest import TestCase
|
|
|
|
from octodns.record import Record
|
|
from octodns.record.change import Create, Delete, Update
|
|
from octodns.zone import Zone
|
|
|
|
|
|
class TestChanges(TestCase):
|
|
zone = Zone('unit.tests.', [])
|
|
record_a_1 = Record.new(
|
|
zone, '1', {'type': 'A', 'ttl': 30, 'value': '1.2.3.4'}
|
|
)
|
|
record_a_2 = Record.new(
|
|
zone, '2', {'type': 'A', 'ttl': 30, 'value': '1.2.3.4'}
|
|
)
|
|
record_aaaa_1 = Record.new(
|
|
zone,
|
|
'1',
|
|
{
|
|
'type': 'AAAA',
|
|
'ttl': 30,
|
|
'value': '2601:644:500:e210:62f8:1dff:feb8:947a',
|
|
},
|
|
)
|
|
record_aaaa_2 = Record.new(
|
|
zone,
|
|
'2',
|
|
{
|
|
'type': 'AAAA',
|
|
'ttl': 30,
|
|
'value': '2601:644:500:e210:62f8:1dff:feb8:947a',
|
|
},
|
|
)
|
|
|
|
def test_sort_same_change_type(self):
|
|
# expect things to be ordered by name and type since all the change
|
|
# types are the same it doesn't matter
|
|
changes = [
|
|
Create(self.record_aaaa_1),
|
|
Create(self.record_a_2),
|
|
Create(self.record_a_1),
|
|
Create(self.record_aaaa_2),
|
|
]
|
|
self.assertEqual(
|
|
[
|
|
Create(self.record_a_1),
|
|
Create(self.record_aaaa_1),
|
|
Create(self.record_a_2),
|
|
Create(self.record_aaaa_2),
|
|
],
|
|
sorted(changes),
|
|
)
|
|
|
|
def test_sort_same_different_type(self):
|
|
# this time the change type is the deciding factor, deletes come before
|
|
# creates, and then updates. Things of the same type, go down the line
|
|
# and sort by name, and then type
|
|
changes = [
|
|
Delete(self.record_aaaa_1),
|
|
Create(self.record_aaaa_1),
|
|
Update(self.record_aaaa_1, self.record_aaaa_1),
|
|
Update(self.record_a_1, self.record_a_1),
|
|
Create(self.record_a_1),
|
|
Delete(self.record_a_1),
|
|
Delete(self.record_aaaa_2),
|
|
Create(self.record_aaaa_2),
|
|
Update(self.record_aaaa_2, self.record_aaaa_2),
|
|
Update(self.record_a_2, self.record_a_2),
|
|
Create(self.record_a_2),
|
|
Delete(self.record_a_2),
|
|
]
|
|
self.assertEqual(
|
|
[
|
|
Delete(self.record_a_1),
|
|
Delete(self.record_aaaa_1),
|
|
Delete(self.record_a_2),
|
|
Delete(self.record_aaaa_2),
|
|
Create(self.record_a_1),
|
|
Create(self.record_aaaa_1),
|
|
Create(self.record_a_2),
|
|
Create(self.record_aaaa_2),
|
|
Update(self.record_a_1, self.record_a_1),
|
|
Update(self.record_aaaa_1, self.record_aaaa_1),
|
|
Update(self.record_a_2, self.record_a_2),
|
|
Update(self.record_aaaa_2, self.record_aaaa_2),
|
|
],
|
|
sorted(changes),
|
|
)
|