Mock DSDigest for compatibility with older dnspython

DSDigest class isn't available prior to dnspython 2.0.0 and prior to Add
an isctest.compat.DSDigest compatibility hack to support those versions.
This commit is contained in:
Nicki Křížek 2025-11-27 13:16:26 +01:00
parent f6cb154b65
commit 2f2be20547
2 changed files with 15 additions and 1 deletions

View file

@ -54,3 +54,17 @@ else:
class EDEOption:
def __new__(cls, *args, **kwargs):
raise RuntimeError("Using EDEOption requires dnspython>=2.2.0")
# pylint: disable=unused-import
try:
from dns.dnssec import DSDigest
except ImportError: # dnspython<2.0.0
import enum
class DSDigest(enum.IntEnum): # type: ignore
"""DNSSEC Delgation Signer Digest Algorithm"""
SHA1 = 1
SHA256 = 2
SHA384 = 4

View file

@ -21,7 +21,6 @@ from typing import Dict, List, Optional, Tuple, Union
import dns
import dns.dnssec
from dns.dnssectypes import DSDigest
import dns.rdatatype
import dns.rrset
import dns.tsig
@ -31,6 +30,7 @@ import pytest
import isctest.log
import isctest.query
import isctest.util
from isctest.compat import DSDigest
from isctest.instance import NamedInstance
from isctest.template import TrustAnchor
from isctest.vars.algorithms import Algorithm, ALL_ALGORITHMS_BY_NUM