55 lines
1.5 KiB
Python
55 lines
1.5 KiB
Python
import unittest
|
|
|
|
from dns_sync.engine import build_sync_plan
|
|
from dns_sync.models import (
|
|
DesiredRecord,
|
|
ProviderCapabilities,
|
|
ProviderRecord,
|
|
)
|
|
|
|
|
|
class LegacyDnsEngineTests(unittest.TestCase):
|
|
def test_existing_dns_plan_still_adds_updates_and_preserves_matches(self):
|
|
desired = {
|
|
"add.example.com": DesiredRecord(
|
|
hostname="add.example.com",
|
|
ip="192.168.1.101",
|
|
),
|
|
"keep.example.com": DesiredRecord(
|
|
hostname="keep.example.com",
|
|
ip="192.168.1.101",
|
|
),
|
|
"update.example.com": DesiredRecord(
|
|
hostname="update.example.com",
|
|
ip="192.168.1.101",
|
|
),
|
|
}
|
|
current = {
|
|
"keep.example.com": ProviderRecord(
|
|
hostname="keep.example.com",
|
|
ip="192.168.1.101",
|
|
),
|
|
"update.example.com": ProviderRecord(
|
|
hostname="update.example.com",
|
|
ip="192.168.1.50",
|
|
),
|
|
}
|
|
|
|
plan = build_sync_plan(
|
|
desired,
|
|
current,
|
|
ProviderCapabilities(),
|
|
)
|
|
|
|
actions = {
|
|
item.desired.hostname: item.action
|
|
for item in plan
|
|
}
|
|
self.assertEqual(actions["add.example.com"], "ADD")
|
|
self.assertEqual(actions["keep.example.com"], "UNCHANGED")
|
|
self.assertEqual(actions["update.example.com"], "UPDATE")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|