Files
dns-sync/tests/test_legacy_dns_engine.py
T

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()