isctest/asyncserver.py.
"""
-from isctest.asyncserver import (
- AsyncDnsServer,
-)
+from isctest.asyncserver import AsyncDnsServer
def main() -> None:
import dns.rdatatype
import dns.rrset
-from isctest.asyncserver import (
- DnsResponseSend,
- QueryContext,
- ResponseAction,
-)
+from isctest.asyncserver import DnsResponseSend, QueryContext, ResponseAction
from ..bailiwick_ans import ResponseSpoofer, spoofing_server
import dns.rdatatype
import dns.rrset
-from isctest.asyncserver import (
- DnsResponseSend,
- QueryContext,
- ResponseAction,
-)
+from isctest.asyncserver import DnsResponseSend, QueryContext, ResponseAction
from ..bailiwick_ans import ResponseSpoofer, spoofing_server
import time
import dns.message
-
import pytest
-import isctest
from isctest.instance import NamedInstance
+import isctest
+
@pytest.fixture(autouse=True)
def autouse_flush_resolver_cache(servers: Dict[str, NamedInstance]) -> None:
import sys
import time
-import isctest
-import pytest
-
import dns.exception
import dns.message
import dns.name
import dns.rcode
import dns.rdataclass
import dns.rdatatype
+import pytest
+
+import isctest
pytestmark = [
pytest.mark.skipif(
from re import compile as Re
-import pytest
-
import dns.message
+import pytest
import isctest
import isctest.mark
# See the COPYRIGHT file distributed with this work for additional
# information regarding copyright ownership.
-import filecmp
-import os
from pathlib import Path
from re import compile as Re
+
+import filecmp
+import os
import shutil
import subprocess
+import sys
import tempfile
import time
-import sys
import pytest
pytest.register_assert_rewrite("isctest")
# pylint: disable=wrong-import-position
-import isctest
from isctest.vars.build import SYSTEM_TEST_DIR_GIT_PATH
+import isctest
+
# pylint: enable=wrong-import-position
# Silence warnings caused by passing a pytest fixture to another fixture.
from isctest.asyncserver import (
AsyncDnsServer,
- ResponseHandler,
- DnsResponseSend,
DnsProtocol,
+ DnsResponseSend,
QueryContext,
+ ResponseHandler,
)
-
from isctest.name import prepend_label
from isctest.vars.algorithms import ALG_VARS
# See the COPYRIGHT file distributed with this work for additional
# information regarding copyright ownership.
-from isctest.asyncserver import (
- AsyncDnsServer,
- IgnoreAllQueries,
-)
+from isctest.asyncserver import AsyncDnsServer, IgnoreAllQueries
def main() -> None:
# See the COPYRIGHT file distributed with this work for additional
# information regarding copyright ownership.
-import logging
from typing import AsyncGenerator, List, Optional
+import logging
+
import dns.rcode
import dns.rdatatype
import dns.rrset
from isctest.asyncserver import (
AsyncDnsServer,
DnsResponseSend,
- ResponseHandler,
QueryContext,
+ ResponseHandler,
)
# See the COPYRIGHT file distributed with this work for additional
# information regarding copyright ownership.
+import dns.message
import pytest
-import isctest
-import dns.message
+import isctest
pytestmark = pytest.mark.extra_artifacts(
[
# See the COPYRIGHT file distributed with this work for additional
# information regarding copyright ownership.
-import base64
from re import compile as Re
+import base64
import os
-import pytest
from cryptography.hazmat.primitives.asymmetric import ec
+from dns.rdtypes.dnskeybase import Flag
import dns
import dns.dnssec
import dns.zone
-from dns.rdtypes.dnskeybase import Flag
+import pytest
import isctest
import pytest
-import isctest
from isctest.util import param
+import isctest
+
pytestmark = pytest.mark.extra_artifacts(
[
"*/K*",
# See the COPYRIGHT file distributed with this work for additional
# information regarding copyright ownership.
-import os
from re import compile as Re
+
+import os
import subprocess
import pytest
# information regarding copyright ownership.
from datetime import timedelta
+
import time
from dns import rdatatype
# information regarding copyright ownership.
from collections import namedtuple
+from re import compile as Re
+
import os
import re
-from re import compile as Re
import struct
import time
import pytest
from isctest.kasp import SettimeOptions
+
import isctest
pytestmark = pytest.mark.extra_artifacts(
# See the COPYRIGHT file distributed with this work for additional
# information regarding copyright ownership.
-import os
from re import compile as Re
+import os
+
from dns import edns
import pytest
# information regarding copyright ownership.
from re import compile as Re
+
import os
import shutil
import time
import pytest
+from isctest.util import param
+
import isctest
import isctest.mark
-from isctest.util import param
pytestmark = pytest.mark.extra_artifacts(
[
from dns.edns import EDECode
+
import pytest
-import isctest
from isctest.util import param
+import isctest
+
def bootstrap():
return {
# See the COPYRIGHT file distributed with this work for additional
# information regarding copyright ownership.
-import os
from re import compile as Re
+import os
+
import isctest
import os
import re
-import isctest
-import isctest.mark
+import dns.rrset
import pytest
-import dns.rrset
+import isctest
+import isctest.mark
pytestmark = [
isctest.mark.with_dnstap,
print("No python yaml module, skipping")
sys.exit(1)
-import subprocess
import pprint
+import subprocess
DNSTAP_READ = sys.argv[1]
DATAFILE = sys.argv[2]
import shutil
import pytest
+
import isctest
# See the COPYRIGHT file distributed with this work for additional
# information regarding copyright ownership.
+from functools import reduce
+from resource import RLIMIT_NOFILE, getrlimit, setrlimit
+
import os
-import sys
+import random
import socket
import subprocess
-import random
+import sys
import time
-from functools import reduce
-from resource import getrlimit
-from resource import setrlimit
-from resource import RLIMIT_NOFILE
-
MULTIDIG_INSTANCES = 10
CONNECT_TRIES = 5
import subprocess
import time
-import pytest
-
import dns
import dns.exception
import dns.name
import dns.rdataclass
import dns.rdatatype
+import pytest
import isctest
# information regarding copyright ownership.
import os
-import pytest
import dns.flags
+import pytest
import isctest
# See the COPYRIGHT file distributed with this work for additional
# information regarding copyright ownership.
-import dns
from dns import rdataclass, rdatatype
+import dns
+
import isctest
ARTIFACTS = [
import pytest
-import isctest.mark
-
from filters.common import (
ARTIFACTS,
check_filter,
prime_cache,
)
+import isctest.mark
+
pytestmark = pytest.mark.extra_artifacts(ARTIFACTS)
import pytest
-import isctest.mark
-
from filters.common import (
ARTIFACTS,
check_filter,
prime_cache,
)
+import isctest.mark
+
pytestmark = pytest.mark.extra_artifacts(ARTIFACTS)
import pytest
-import isctest
-import isctest.mark
-
from filters.common import (
ARTIFACTS,
check_filter,
prime_cache,
)
+import isctest
+import isctest.mark
+
pytestmark = pytest.mark.extra_artifacts(ARTIFACTS)
import pytest
-import isctest.mark
-
from filters.common import (
ARTIFACTS,
check_filter,
prime_cache,
)
+import isctest.mark
+
pytestmark = pytest.mark.extra_artifacts(ARTIFACTS)
import pytest
-import isctest
-
from filters.common import ARTIFACTS
+import isctest
+
pytestmark = pytest.mark.extra_artifacts(ARTIFACTS)
import pytest
-import isctest
-
from filters.common import ARTIFACTS
+import isctest
+
pytestmark = pytest.mark.extra_artifacts(ARTIFACTS)
import dns
import pytest
+
import isctest
pytestmark = pytest.mark.extra_artifacts(["conf/*.conf"])
# See the COPYRIGHT file distributed with this work for additional
# information regarding copyright ownership.
-from . import check
-from . import instance
-from . import hypothesis
-from . import query
-from . import kasp
-from . import run
-from . import template
-from . import log
-from . import vars # pylint: disable=redefined-builtin
+from . import ( # pylint: disable=redefined-builtin
+ check,
+ hypothesis,
+ instance,
+ kasp,
+ log,
+ query,
+ run,
+ template,
+ vars,
+)
# isctest.mark module is intentionally NOT imported, because it relies on
# environment variables which might not be set at the time of import of the
Dict,
List,
Optional,
- Set,
Sequence,
+ Set,
Tuple,
Union,
cast,
# See the COPYRIGHT file distributed with this work for additional
# information regarding copyright ownership.
+from typing import List, Optional, cast
+
import difflib
-import shutil
import os
-from typing import cast, List, Optional
+import shutil
-import dns.edns
from dns.edns import EDECode, EDEOption
+
+import dns.edns
import dns.flags
import dns.message
import dns.rcode
# This ensures we're using a suitable hypothesis version. A newer version is
# required for FIPS-enabled platforms.
-from . import settings
-from . import strategies
+from . import settings, strategies
# See the COPYRIGHT file distributed with this work for additional
# information regarding copyright ownership.
-import collections.abc
from typing import List, Union
from warnings import warn
+import collections.abc
+
from hypothesis.strategies import (
binary,
builds,
sampled_from,
)
-import dns.name
import dns.message
+import dns.name
import dns.rdataclass
import dns.rdatatype
# See the COPYRIGHT file distributed with this work for additional
# information regarding copyright ownership.
+from pathlib import Path
from typing import List, NamedTuple, Optional
import os
-from pathlib import Path
import re
-import dns.update
import dns.rcode
+import dns.update
-from .log import debug, WatchLogFromStart, WatchLogFromHere
-from .run import CmdResult, EnvCmd, perl
+from .log import WatchLogFromHere, WatchLogFromStart, debug
from .query import udp
+from .run import CmdResult, EnvCmd, perl
from .text import TextFile
from dataclasses import dataclass
from datetime import datetime, timedelta, timezone
from functools import total_ordering
+from pathlib import Path
+from re import compile as Re
+from typing import Dict, List, Optional, Tuple, Union
+
import glob
import os
-from pathlib import Path
import re
-from re import compile as Re
import time
-from typing import Dict, List, Optional, Tuple, Union
import dns
import dns.dnssec
import dns.rrset
import dns.tsig
+from isctest.instance import NamedInstance
+from isctest.run import EnvCmd
+from isctest.template import TrustAnchor
+from isctest.vars.algorithms import ALL_ALGORITHMS_BY_NUM, Algorithm
+
import isctest.log
import isctest.query
import isctest.util
-from isctest.instance import NamedInstance
-from isctest.template import TrustAnchor
-from isctest.run import EnvCmd
-from isctest.vars.algorithms import Algorithm, ALL_ALGORITHMS_BY_NUM
DEFAULT_TTL = 300
from .basic import (
avoid_duplicated_logs,
+ critical,
+ debug,
deinit_module_logger,
deinit_test_logger,
+ error,
+ info,
init_conftest_logger,
init_module_logger,
init_test_logger,
- debug,
- info,
warning,
- error,
- critical,
)
-
-from .watchlog import WatchLogFromStart, WatchLogFromHere
+from .watchlog import WatchLogFromHere, WatchLogFromStart
# See the COPYRIGHT file distributed with this work for additional
# information regarding copyright ownership.
-import logging
from pathlib import Path
-import textwrap
from typing import Dict, Optional
+import logging
+import textwrap
+
LOG_FORMAT = "%(asctime)s %(levelname)7s:%(name)s %(message)s"
LOG_INDENT = 4
import os
import time
-from isctest.text import compile_pattern, FlexPattern, LineReader
+from isctest.text import FlexPattern, LineReader, compile_pattern
T = TypeVar("T")
OneOrMore = Union[T, List[T]]
import os
import platform
-import socket
import shutil
+import socket
import pytest
# See the COPYRIGHT file distributed with this work for additional
# information regarding copyright ownership.
-from typing import Iterable, FrozenSet
+from typing import FrozenSet, Iterable
+
+from dns.name import Name
import dns.name
-import dns.zone
import dns.rdatatype
-
-from dns.name import Name
+import dns.zone
def prepend_label(label: str, name: Name) -> Name:
# See the COPYRIGHT file distributed with this work for additional
# information regarding copyright ownership.
+from typing import Any, Callable, Optional
+
import os
import time
-from typing import Any, Callable, Optional
-import dns.query
import dns.message
+import dns.query
import isctest.log
# See the COPYRIGHT file distributed with this work for additional
# information regarding copyright ownership.
-import os
from pathlib import Path
+from typing import List, Optional
+
+import os
import subprocess
import time
-from typing import List, Optional
import isctest.log
import isctest.text
# See the COPYRIGHT file distributed with this work for additional
# information regarding copyright ownership.
-import abc
-import re
from re import compile as Re
from typing import Iterator, List, Match, Optional, Pattern, TextIO, Union
+import abc
+import re
+
FlexPattern = Union[str, Pattern]
import os
-from .all import ALL
+from .. import log
from .algorithms import init_crypto_supported, set_algorithm_set
+from .all import ALL
from .features import init_features
from .openssl import parse_openssl_config
-from .. import log
def init_vars():
# See the COPYRIGHT file distributed with this work for additional
# information regarding copyright ownership.
+from typing import Dict, List, NamedTuple, Optional, Union
+
import os
import platform
import random
import subprocess
import tempfile
import time
-from typing import Dict, List, NamedTuple, Optional, Union
-from .basic import BASIC_VARS
from .. import log
+from .basic import BASIC_VARS
# Algorithms are selected randomly at runtime from a list of supported
# algorithms. The randomization is deterministic and remains stable for a
from collections import ChainMap
-# pylint: disable=import-error
-from .build import BUILD_VARS # type: ignore
-
# pylint: enable=import-error
from .algorithms import ALG_VARS, CRYPTO_SUPPORTED_VARS
from .basic import BASIC_VARS
+
+# pylint: disable=import-error
+from .build import BUILD_VARS # type: ignore
from .dirs import DIR_VARS
from .features import FEATURE_VARS
from .openssl import OPENSSL_VARS
# See the COPYRIGHT file distributed with this work for additional
# information regarding copyright ownership.
-import os
from re import compile as Re
from typing import Optional
+import os
+
from .. import log
OPENSSL_VARS = {
# See the COPYRIGHT file distributed with this work for additional
# information regarding copyright ownership.
+from datetime import timedelta
+
import os
import shutil
import subprocess
import time
-from datetime import timedelta
-
import dns
import dns.update
import pytest
-import isctest
-import isctest.mark
-from isctest.kasp import (
- KeyProperties,
- KeyTimingMetadata,
- SettimeOptions,
-)
+from isctest.kasp import KeyProperties, KeyTimingMetadata, SettimeOptions
from isctest.util import param
from isctest.vars.algorithms import ECDSAP256SHA256, ECDSAP384SHA384
+import isctest
+import isctest.mark
+
pytestmark = pytest.mark.extra_artifacts(
[
"K*.private",
# See the COPYRIGHT file distributed with this work for additional
# information regarding copyright ownership.
-import isctest
import pytest
+import isctest
+
pytestmark = pytest.mark.extra_artifacts(
["ns2/named.stats"],
)
# See the COPYRIGHT file distributed with this work for additional
# information regarding copyright ownership.
+from re import compile as Re
+
import hashlib
import os
-from re import compile as Re
import shutil
import pytest
# information regarding copyright ownership.
from datetime import timedelta
+
import os
import re
import shutil
import pytest
-import isctest
from isctest.kasp import KeyTimingMetadata
+import isctest
+
pytestmark = pytest.mark.extra_artifacts(
[
"K*",
import itertools
-import isctest
+import dns.rrset
import pytest
-import dns.rrset
+import isctest
@pytest.mark.parametrize(
import dns.message
import dns.zone
+import pytest
import isctest
-import pytest
pytestmark = pytest.mark.extra_artifacts(
["ns2/copied.db", "ns2/present.db", "ns2/alternate.db"]
# See the COPYRIGHT file distributed with this work for additional
# information regarding copyright ownership.
-import os
from datetime import timedelta
+import os
+
import pytest
import isctest
# information regarding copyright ownership.
from datetime import timedelta
-import os
from re import compile as Re
-import pytest
+import os
import dns
import dns.update
+import pytest
import isctest
# pylint: disable=unreachable
from dataclasses import dataclass
-import os
from pathlib import Path
from typing import Container, Iterable, Optional, Set, Tuple
-import pytest
+import os
+
+from hypothesis import assume, given
import dns.dnssec
import dns.message
import dns.rcode
import dns.rdataclass
import dns.rdatatype
-import dns.rdtypes.ANY.RRSIG
import dns.rdtypes.ANY.NSEC3
+import dns.rdtypes.ANY.RRSIG
import dns.rrset
+import pytest
from isctest.hypothesis.strategies import dns_names, sampled_from
+
import isctest
import isctest.name
-from hypothesis import assume, given
-
SUFFIX = dns.name.from_text(".")
AUTH = "10.53.0.1"
RESOLVER = "10.53.0.2"
# See the COPYRIGHT file distributed with this work for additional
# information regarding copyright ownership.
-import os
-
from datetime import timedelta
+import os
+
import dns
import pytest
import dns.update
import pytest
+from isctest.vars.algorithms import RSASHA1
+from nsec3.common import ALGORITHM, SIZE, check_nsec3_case, default_config, pytestmark
+
import isctest
import isctest.mark
-from isctest.vars.algorithms import RSASHA1
-from nsec3.common import (
- ALGORITHM,
- SIZE,
- default_config,
- pytestmark,
- check_nsec3_case,
-)
# include the following zones when rendering named configs
ZONES = {
import dns.update
import pytest
+from isctest.vars.algorithms import RSASHA1
+from nsec3.common import ALGORITHM, SIZE, check_nsec3_case, default_config, pytestmark
+
import isctest
import isctest.mark
-from isctest.vars.algorithms import RSASHA1
-from nsec3.common import (
- ALGORITHM,
- SIZE,
- default_config,
- pytestmark,
- check_nsec3_case,
-)
# include the following zones when rendering named configs
ZONES = {
import dns.update
import pytest
+from isctest.vars.algorithms import RSASHA1
+from nsec3.common import ALGORITHM, SIZE, check_nsec3_case, default_config, pytestmark
+
import isctest
import isctest.mark
-from isctest.vars.algorithms import RSASHA1
-from nsec3.common import (
- ALGORITHM,
- SIZE,
- default_config,
- pytestmark,
- check_nsec3_case,
-)
# include the following zones when rendering named configs
ZONES = {
import dns
import pytest
+from nsec3.common import ALGORITHM, SIZE, check_nsec3_case
+
import isctest
-from nsec3.common import (
- ALGORITHM,
- SIZE,
- check_nsec3_case,
-)
# include the following zones when rendering named configs
ZONES = {
import dns.update
import pytest
-import isctest
-import isctest.mark
from nsec3.common import (
ALGORITHM,
SIZE,
- default_config,
- pytestmark,
check_nsec3_case,
check_nsec3param,
+ default_config,
+ pytestmark,
)
+import isctest
+import isctest.mark
+
# include the following zones when rendering named configs
ZONES = {
"nsec3.kasp",
# pylint: disable=redefined-outer-name,unused-import
from datetime import timedelta
+
import os
import shutil
import dns.update
import pytest
+from isctest.vars.algorithms import RSASHA256
+from nsec3.common import check_auth_nsec3, check_nsec3param, pytestmark
+
import isctest
import isctest.mark
-from isctest.vars.algorithms import RSASHA256
-from nsec3.common import (
- pytestmark,
- check_auth_nsec3,
- check_nsec3param,
-)
DNSKEY_TTL = int(timedelta(hours=1).total_seconds())
ZSK_LIFETIME = int(timedelta(days=90).total_seconds())
# See the COPYRIGHT file distributed with this work for additional
# information regarding copyright ownership.
-from isctest.asyncserver import (
- AsyncDnsServer,
- IgnoreAllConnections,
- IgnoreAllQueries,
-)
+from isctest.asyncserver import AsyncDnsServer, IgnoreAllConnections, IgnoreAllQueries
def main() -> None:
# See the COPYRIGHT file distributed with this work for additional
# information regarding copyright ownership.
-import os
from re import compile as Re
+
+import os
import time
import isctest
import os
+
import pytest
import isctest
import re
import sys
-import isctest
-import pytest
-
import dns
import dns.exception
import dns.message
import dns.rcode
import dns.rdataclass
import dns.rdatatype
+import pytest
+
+import isctest
pytestmark = [
pytest.mark.skipif(
import re
from astroid import nodes
-
from pylint.checkers import BaseRawFileChecker
from pylint.lint import PyLinter
import dns.edns
import dns.name
import dns.rcode
-import dns.rrset
import dns.rdatatype
+import dns.rrset
from isctest.asyncserver import (
AsyncDnsServer,
QnameHandler,
QnameQtypeHandler,
QueryContext,
- StaticResponseHandler,
ResponseHandler,
+ StaticResponseHandler,
)
from ..resolver_ans import (
QnameHandler,
QnameQtypeHandler,
QueryContext,
- StaticResponseHandler,
ResponseHandler,
+ StaticResponseHandler,
)
from ..resolver_ans import (
information regarding copyright ownership.
"""
-import abc
-
from typing import AsyncGenerator
+import abc
+
import dns.flags
import dns.message
import dns.rcode
from isctest.asyncserver import (
AsyncDnsServer,
- DnsResponseSend,
DnsProtocol,
+ DnsResponseSend,
DomainHandler,
QnameHandler,
QnameQtypeHandler,
# information regarding copyright ownership.
import pytest
+
from isctest.mark import live_internet_test
pytestmark = pytest.mark.extra_artifacts(
import pytest
-import isctest
from isctest.util import param
-from rollover.common import (
- pytestmark,
- CDSS,
- DURATION,
- TIMEDELTA,
- ALGOROLL_CONFIG,
-)
-from rollover.setup import (
- configure_root,
- configure_tld,
- configure_algo_csk,
-)
+from rollover.common import ALGOROLL_CONFIG, CDSS, DURATION, TIMEDELTA, pytestmark
+from rollover.setup import configure_algo_csk, configure_root, configure_tld
+
+import isctest
POLICY = "csk-algoroll"
import pytest
-import isctest
from isctest.kasp import KeyTimingMetadata
from isctest.util import param
from rollover.common import (
- pytestmark,
- alg,
- size,
- CDSS,
ALGOROLL_CONFIG,
ALGOROLL_IPUB,
ALGOROLL_IPUBC,
ALGOROLL_KEYTTLPROP,
ALGOROLL_OFFSETS,
ALGOROLL_OFFVAL,
+ CDSS,
DURATION,
TIMEDELTA,
+ alg,
+ pytestmark,
+ size,
)
-from rollover.setup import (
- configure_root,
- configure_tld,
- configure_algo_csk,
-)
+from rollover.setup import configure_algo_csk, configure_root, configure_tld
+
+import isctest
CONFIG = ALGOROLL_CONFIG
POLICY = "csk-algoroll"
import pytest
-import isctest
from isctest.util import param
-from rollover.common import (
- pytestmark,
- CDSS,
- DURATION,
- TIMEDELTA,
- ALGOROLL_CONFIG,
-)
-from rollover.setup import (
- configure_root,
- configure_tld,
- configure_algo_ksk_zsk,
-)
+from rollover.common import ALGOROLL_CONFIG, CDSS, DURATION, TIMEDELTA, pytestmark
+from rollover.setup import configure_algo_ksk_zsk, configure_root, configure_tld
+
+import isctest
def bootstrap():
import pytest
-import isctest
from isctest.kasp import KeyTimingMetadata
from isctest.util import param
from rollover.common import (
- pytestmark,
- alg,
- size,
- CDSS,
ALGOROLL_CONFIG,
ALGOROLL_IPUB,
ALGOROLL_IPUBC,
ALGOROLL_KEYTTLPROP,
ALGOROLL_OFFSETS,
ALGOROLL_OFFVAL,
+ CDSS,
DURATION,
TIMEDELTA,
+ alg,
+ pytestmark,
+ size,
)
-from rollover.setup import (
- configure_root,
- configure_tld,
- configure_algo_ksk_zsk,
-)
+from rollover.setup import configure_algo_ksk_zsk, configure_root, configure_tld
+
+import isctest
CONFIG = ALGOROLL_CONFIG
POLICY = "ecdsa256"
import pytest
-import isctest
from isctest.kasp import Ipub, Iret
from isctest.util import param
-from rollover.common import (
- pytestmark,
- alg,
- size,
- TIMEDELTA,
-)
-from rollover.setup import (
- configure_root,
- configure_tld,
- configure_cskroll1,
-)
+from rollover.common import TIMEDELTA, alg, pytestmark, size
+from rollover.setup import configure_cskroll1, configure_root, configure_tld
+
+import isctest
CDSS = ["CDNSKEY", "CDS (SHA-384)"]
CONFIG = {
import pytest
-import isctest
from isctest.kasp import Ipub, Iret
from isctest.util import param
-from rollover.common import (
- pytestmark,
- alg,
- size,
- TIMEDELTA,
-)
-from rollover.setup import (
- configure_root,
- configure_tld,
- configure_cskroll2,
-)
+from rollover.common import TIMEDELTA, alg, pytestmark, size
+from rollover.setup import configure_cskroll2, configure_root, configure_tld
+
+import isctest
CDSS = ["CDNSKEY", "CDS (SHA-256)", "CDS (SHA-384)"]
CONFIG = {
# pylint: disable=redefined-outer-name,unused-import
+from rollover.common import CDSS, DEFAULT_CONFIG, alg, pytestmark, size
+
import isctest
-from rollover.common import (
- pytestmark,
- alg,
- size,
- CDSS,
- DEFAULT_CONFIG,
-)
def test_dynamic2inline(alg, size, ns3, templates):
import pytest
-import isctest
from isctest.kasp import Ipub, IpubC, Iret
from isctest.util import param
-from rollover.common import (
- pytestmark,
- alg,
- size,
- CDSS,
- TIMEDELTA,
-)
-from rollover.setup import (
- configure_root,
- configure_tld,
- configure_enable_dnssec,
-)
+from rollover.common import CDSS, TIMEDELTA, alg, pytestmark, size
+from rollover.setup import configure_enable_dnssec, configure_root, configure_tld
+
+import isctest
CONFIG = {
"dnskey-ttl": TIMEDELTA["PT5M"],
import pytest
+from rollover.common import CDSS, DURATION, UNSIGNING_CONFIG, alg, pytestmark, size
+from rollover.setup import configure_going_insecure, configure_root, configure_tld
+
import isctest
-from rollover.common import (
- pytestmark,
- alg,
- size,
- CDSS,
- DURATION,
- UNSIGNING_CONFIG,
-)
-from rollover.setup import (
- configure_root,
- configure_tld,
- configure_going_insecure,
-)
def bootstrap():
import pytest
-import isctest
from rollover.common import (
- pytestmark,
- alg,
- size,
CDSS,
DEFAULT_CONFIG,
DURATION,
UNSIGNING_CONFIG,
+ alg,
+ pytestmark,
+ size,
)
-from rollover.setup import (
- configure_root,
- configure_tld,
- configure_going_insecure,
-)
+from rollover.setup import configure_going_insecure, configure_root, configure_tld
+
+import isctest
def bootstrap():
from datetime import timedelta
-import isctest
from isctest.kasp import KeyTimingMetadata
from rollover.common import (
- pytestmark,
- alg,
- size,
KSK_CONFIG,
- KSK_LIFETIME_POLICY,
KSK_IPUB,
KSK_IRET,
+ KSK_LIFETIME_POLICY,
+ alg,
+ pytestmark,
+ size,
)
-from rollover.setup import (
- configure_root,
- configure_tld,
- configure_ksk_3crowd,
-)
+from rollover.setup import configure_ksk_3crowd, configure_root, configure_tld
+
+import isctest
CDSS = ["CDS (SHA-256)"]
POLICY = "ksk-doubleksk-autosign"
import pytest
-import isctest
from isctest.util import param
from rollover.common import (
- pytestmark,
- alg,
- size,
KSK_CONFIG,
- KSK_LIFETIME,
- KSK_LIFETIME_POLICY,
KSK_IPUB,
KSK_IPUBC,
KSK_IRET,
KSK_KEYTTLPROP,
+ KSK_LIFETIME,
+ KSK_LIFETIME_POLICY,
TIMEDELTA,
+ alg,
+ pytestmark,
+ size,
)
-from rollover.setup import (
- configure_root,
- configure_tld,
- configure_ksk_doubleksk,
-)
+from rollover.setup import configure_ksk_doubleksk, configure_root, configure_tld
+
+import isctest
CDSS = ["CDS (SHA-256)"]
POLICY = "ksk-doubleksk"
import pytest
-import isctest
from isctest.util import param
-from rollover.common import (
- pytestmark,
- alg,
- size,
- CDSS,
- DEFAULT_CONFIG,
- DURATION,
-)
+from rollover.common import CDSS, DEFAULT_CONFIG, DURATION, alg, pytestmark, size
+
+import isctest
@pytest.mark.parametrize(
import pytest
-import isctest
from isctest.util import param
-from rollover.common import (
- pytestmark,
- alg,
- size,
- CDSS,
- DEFAULT_CONFIG,
- DURATION,
-)
+from rollover.common import CDSS, DEFAULT_CONFIG, DURATION, alg, pytestmark, size
+
+import isctest
@pytest.fixture(scope="module", autouse=True)
# pylint: disable=redefined-outer-name,unused-import
from datetime import timedelta
-import os
-import pytest
+import os
import dns
import dns.update
+import pytest
-import isctest
from isctest.kasp import Iret, SettimeOptions
from isctest.run import EnvCmd
-from rollover.common import (
- pytestmark,
- alg,
- size,
-)
+from rollover.common import alg, pytestmark, size
from rollover.setup import fake_lifetime, render_and_sign_zone, setkeytimes
+import isctest
+
def bootstrap():
templates = isctest.template.TemplateEngine(".")
import pytest
+from rollover.common import CDSS, DEFAULT_CONFIG, DURATION, alg, pytestmark, size
+from rollover.setup import configure_root, configure_straight2none, configure_tld
+
import isctest
-from rollover.common import (
- pytestmark,
- alg,
- size,
- CDSS,
- DURATION,
- DEFAULT_CONFIG,
-)
-from rollover.setup import (
- configure_root,
- configure_tld,
- configure_straight2none,
-)
def bootstrap():
import pytest
+from rollover.common import CDSS, DEFAULT_CONFIG, DURATION, alg, pytestmark, size
+from rollover.setup import configure_root, configure_straight2none, configure_tld
+
import isctest
-from rollover.common import (
- pytestmark,
- alg,
- size,
- CDSS,
- DURATION,
- DEFAULT_CONFIG,
-)
-from rollover.setup import (
- configure_root,
- configure_tld,
- configure_straight2none,
-)
def bootstrap():
import pytest
-import isctest
from isctest.kasp import Ipub, Iret
from isctest.util import param
-from rollover.common import (
- pytestmark,
- alg,
- size,
- TIMEDELTA,
-)
-from rollover.setup import (
- configure_root,
- configure_tld,
- configure_zsk_prepub,
-)
+from rollover.common import TIMEDELTA, alg, pytestmark, size
+from rollover.setup import configure_root, configure_tld, configure_zsk_prepub
+
+import isctest
CONFIG = {
"dnskey-ttl": TIMEDELTA["PT1H"],
# information regarding copyright ownership.
from datetime import timedelta
+
import os
import pytest
# See the COPYRIGHT file distributed with this work for additional
# information regarding copyright ownership.
-import shutil
from typing import List
-import isctest
-from isctest.kasp import private_type_record, SettimeOptions
-from isctest.template import Nameserver, TrustAnchor, Zone
+import shutil
+
+from isctest.kasp import SettimeOptions, private_type_record
from isctest.run import EnvCmd
+from isctest.template import Nameserver, TrustAnchor, Zone
from rollover.common import default_algorithm
+import isctest
+
def configure_tld(zonename: str, delegations: List[Zone]) -> Zone:
templates = isctest.template.TemplateEngine(".")
# information regarding copyright ownership.
from datetime import timedelta
+
import os
-import isctest
from isctest.kasp import (
- KeyTimingMetadata,
Ipub,
Iret,
- private_type_record,
+ KeyTimingMetadata,
SettimeOptions,
+ private_type_record,
)
-from isctest.template import Nameserver, Zone
from isctest.run import EnvCmd
-
+from isctest.template import Nameserver, Zone
from rollover.common import default_algorithm
-from rollover.setup import (
- configure_root,
- configure_tld,
- setkeytimes,
-)
+from rollover.setup import configure_root, configure_tld, setkeytimes
+
+import isctest
def setup_zone(zone, ksk_time, ksk_timings, zsk_time, zsk_timings) -> Zone:
import os
-import pytest
-
import dns
import dns.rcode
import dns.rrset
+import pytest
import isctest
# See the COPYRIGHT file distributed with this work for additional
# information regarding copyright ownership.
-import isctest
+from dns import rdatatype
import pytest
-from dns import rdatatype
+
+import isctest
@pytest.mark.parametrize(
Generate insane test zone and check expected output of ZoneAnalyzer utility class
"""
+from pathlib import Path
+
import collections
import itertools
-from pathlib import Path
+
+from dns.name import Name
import dns
import dns.name
-from dns.name import Name
import pytest
import isctest
# information regarding copyright ownership.
import dns
+
import isctest
# information regarding copyright ownership.
from concurrent.futures import ThreadPoolExecutor, as_completed
+from string import ascii_lowercase as letters
+
import os
import random
import signal
import subprocess
-from string import ascii_lowercase as letters
import time
-import pytest
-
import dns
import dns.exception
+import pytest
import isctest
# See the COPYRIGHT file distributed with this work for additional
# information regarding copyright ownership.
-from datetime import datetime, timedelta
from collections import defaultdict
+from datetime import datetime, timedelta
from time import sleep
+
import os
import dns.message
# information regarding copyright ownership.
from datetime import datetime
+
import xml.etree.ElementTree as ET
import pytest
# https://github.com/pylint-dev/pylint/issues/10785#issuecomment-3677224217
# pylint: disable=unreachable
+from ipaddress import IPv4Address, IPv6Address
+
import glob
import os
import subprocess
-from ipaddress import IPv4Address, IPv6Address
-
-import pytest
+from dns.reversename import ipv4_reverse_domain, ipv6_reverse_domain
+from hypothesis import assume, example, given
+from hypothesis.strategies import ip_addresses
import dns.message
import dns.reversename
-from dns.reversename import ipv4_reverse_domain
-from dns.reversename import ipv6_reverse_domain
+import pytest
-import isctest
from isctest.hypothesis.strategies import dns_names
-from hypothesis import assume, given, example
-from hypothesis.strategies import ip_addresses
+import isctest
SERVER = "10.53.0.1"
import struct
import time
-import pytest
-
import dns
import dns.message
import dns.query
+import pytest
pytestmark = pytest.mark.extra_artifacts(
[
import socket
import time
-import pytest
-
import dns
import dns.edns
import dns.message
import dns.query
import dns.rdataclass
import dns.rdatatype
+import pytest
import isctest.mark # pylint: disable=import-error
import os
import subprocess
+from dns.dnssectypes import NSEC3Hash
+from hypothesis import given, settings, strategies
+
+import dns.dnssec
import pytest
-import isctest
from isctest.hypothesis.strategies import dns_names
-from hypothesis import strategies, given, settings
-
-from dns.dnssectypes import NSEC3Hash
-import dns.dnssec
+import isctest
NSEC3HASH = os.environ.get("NSEC3HASH")
import socket
import time
-import pytest
-
import dns.message
import dns.query
import dns.tsigkeyring
+import pytest
pytestmark = pytest.mark.extra_artifacts(
[
import time
-import pytest
+from hypothesis import assume, example, given
+from hypothesis.strategies import binary, booleans, composite, just, sampled_from
import dns.exception
import dns.message
import dns.rdtypes.ANY.TSIG
import dns.rrset
import dns.tsig
+import pytest
-import isctest
from isctest.hypothesis.strategies import dns_names, uint
-from hypothesis import assume, example, given
-from hypothesis.strategies import binary, booleans, composite, just, sampled_from
+import isctest
pytestmark = pytest.mark.extra_artifacts(
[
import struct
import time
-import pytest
-
-import isctest
-
import dns
import dns.message
import dns.name
import dns.rdataclass
import dns.rdatatype
import dns.rrset
+import pytest
+
+import isctest
pytestmark = pytest.mark.extra_artifacts(
[
# See the COPYRIGHT file distributed with this work for additional
# information regarding copyright ownership.
+from re import compile as Re
+
import os
import re
-from re import compile as Re
import pytest
# https://github.com/pylint-dev/pylint/issues/10785#issuecomment-3677224217
# pylint: disable=unreachable
-import pytest
+from hypothesis import assume, example, given, settings
import dns
import dns.message
import dns.rdataclass
import dns.rdatatype
import dns.rrset
+import pytest
from isctest.hypothesis.strategies import dns_names, dns_rdatatypes_without_meta
-from hypothesis import assume, example, given, settings
import isctest.check
import isctest.name
# See the COPYRIGHT file distributed with this work for additional
# information regarding copyright ownership.
-from isctest.asyncserver import (
- AsyncDnsServer,
- IgnoreAllQueries,
-)
+from isctest.asyncserver import AsyncDnsServer, IgnoreAllQueries
def main() -> None:
from isctest.asyncserver import (
ControllableAsyncDnsServer,
+ DnsResponseSend,
DomainHandler,
QueryContext,
ResponseAction,
- DnsResponseSend,
ToggleResponsesCommand,
)
# information regarding copyright ownership.
+from re import compile as Re
+
import fileinput
import os
-from re import compile as Re
import socket
import time
+import dns.message
import pytest
-import isctest
from isctest.util import param
-import dns.message
+import isctest
NEW_SOA_SERIAL = 1397051953
OLD_SOA_SERIAL = 1397051952
# See the COPYRIGHT file distributed with this work for additional
# information regarding copyright ownership.
+from re import compile as Re
+
import glob
import os
import re
-from re import compile as Re
import shutil
import signal
import time
information regarding copyright ownership.
"""
-import ipaddress
from typing import AsyncGenerator
+import ipaddress
+
import dns.rcode
import dns.rdatatype
import dns.rrset
from collections import namedtuple
-from docutils.parsers.rst import Directive, directives
from docutils import nodes
-
+from docutils.parsers.rst import Directive, directives
from sphinx import addnodes
from sphinx.directives import ObjectDescription
from sphinx.domains import Domain
# Depends on CWD - Sphinx plugin
-import json
from pathlib import Path
+import json
+
import parsegrammar
misc_path = Path(__file__).resolve().parent.parent.parent / "misc"
from collections import namedtuple
from itertools import groupby
+
import fileinput
import parsegrammar
[tool.ruff]
target-version = "py310"
lint.select = [
+ # import order
+ "I",
# f-strings
"UP031",
"UP032",
"doc/arm/conf.py",
"doc/man/conf.py",
]
+src = [
+ "bin/tests/system",
+ "doc/misc",
+ "doc/arm/_ext",
+]
+[tool.ruff.lint.isort]
+from-first = true
+lines-between-types = 1
+split-on-trailing-comma = false