From: Nicki Křížek Date: Wed, 1 Apr 2026 15:04:22 +0000 (+0200) Subject: Improve isctest.template dataclasses' defaults X-Git-Url: http://git.ipfire.org/gitweb/index.cgi?a=commitdiff_plain;h=95ca42810e56eda2cb2f27819ddaa039de14fc4a;p=thirdparty%2Fbind9.git Improve isctest.template dataclasses' defaults Extend the Nameserver to generate the default IPv4/IPv6 values, add NSX values for the predefined nameservers (there are 11 of them, as per bin/tests/system/ifconfig.sh.in max value). Add the missing ns11 fixture. Extend the Zone to derive the zone filename by default, unless specified. Adjust the existing uses of these classes to utilize the simplified defaults. (cherry picked from commit fa3a59e70c97a24090a24d46135f672a004bf9ca) --- diff --git a/bin/tests/system/conftest.py b/bin/tests/system/conftest.py index ee792fb0a85..9228c596ed4 100644 --- a/bin/tests/system/conftest.py +++ b/bin/tests/system/conftest.py @@ -765,3 +765,8 @@ def ns9(servers): @pytest.fixture(scope="module") def ns10(servers): return servers["ns10"] + + +@pytest.fixture(scope="module") +def ns11(servers): + return servers["ns11"] diff --git a/bin/tests/system/isctest/template.py b/bin/tests/system/isctest/template.py index 5555589460b..f26c7deab9f 100644 --- a/bin/tests/system/isctest/template.py +++ b/bin/tests/system/isctest/template.py @@ -14,6 +14,7 @@ from dataclasses import dataclass import os from pathlib import Path +import re from typing import Any, Dict, Optional, Union import pytest @@ -101,6 +102,51 @@ class TemplateEngine: self.render(template[:-3], data) +@dataclass +class Nameserver: + + name: str + num: int | None = None + ip: str | None = None + ip6: str | None = None + + def __post_init__(self): + if self.num is None: + match = re.search(r"\d+", self.name) + assert match + self.num = int(match.group(0)) + if self.ip is None: + self.ip = f"10.53.0.{self.num}" + if self.ip6 is None: + self.ip6 = f"fd92:7065:b8e:ffff::{self.num}" + + +NS1 = Nameserver("ns1") +NS2 = Nameserver("ns2") +NS3 = Nameserver("ns3") +NS4 = Nameserver("ns4") +NS5 = Nameserver("ns5") +NS6 = Nameserver("ns6") +NS7 = Nameserver("ns7") +NS8 = Nameserver("ns8") +NS9 = Nameserver("ns9") +NS10 = Nameserver("ns10") +NS11 = Nameserver("ns11") + + +@dataclass +class Zone: + + name: str + ns: Nameserver + type: str = "primary" + filename: str | None = None + + def __post_init__(self): + if self.filename is None: + self.filename = f"{self.name}.db" + + @dataclass class TrustAnchor: domain: str