summaryrefslogtreecommitdiff
path: root/tests
Commit message (Collapse)AuthorAgeFilesLines
* Deal with "in" changes for enums in python 3.12Bob Halley2023-05-061-5/+4
| | | | | | | | | In python 3.12, "in" for enums tests values as well, so something like "12345 in dns.rdatatype.RdataType" will now return True. This broke some logic guarding against registering a known-but-unimplmemented type code point with a class that didn't have the right name. We now just give up on this test as it will never be a real problem. We change a few related tests to be more sensible.
* Fix NSEC3 base32 processing. (#929)Brian Wellington2023-05-065-0/+5
| | | | | | | | | | The NSEC3 next name field is defined as base32 with no padding, but the code was doing base32 decoding with padding. This wouldn't have any effect in the normal case, since the only defined NSEC3 hashing algorithm is SHA1, and that generates a 160 bit hash that doesn't require padding when encoded in base32. This change removes generated padding after encode, rejects padded input on decode, and adds necessary padding for decode.
* Add make_resolver_at() and resolve_at(). (#926)Bob Halley2023-04-192-0/+38
|
* Add basic DDR support. (#919)Bob Halley2023-04-071-0/+43
| | | * Add basic DDR support.
* Improve get_rrset/find_rrset API. (#922)Brian Wellington2023-04-061-0/+8
| | | | | | | | | | | * Improve get_rrset/find_rrset API. This allows most of the parameters to be specified as strings, matching the interface for dns.message.make_query(). * Remove unneeded "the_section". There's no need to use a separate internal variable for the section; mypy doesn't complain about reuse.
* Zone signer (#911)Jakob Schlyter2023-03-201-0/+125
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * first cut at NSEC support * use transactions, fix delegations * rename to add_nsec_to_zone * optimize NSEC generation * split out function to get all secure names (could be useful for NSEC3 later) * add `Bitmap.from_rdtypes()` and add missing typing * more typing * add missing import * add more typing * fix tok type * remove _get_secure_names, optimize * better zone testing (compare as text) add test example with delegation below other delegation * include NSEC itself in the bitmap * lint * Add names iteration to transactions via iterate_names(). Also make rdataset iteration more obvious by adding an explicit iterate_rdatasets() API. * use iterate_names() * typo * black * use single iteration * better type fix * add optional transaction to add_nsec_to_zone * idea for zone signer * do not sign RRSIGs * fix signer * correctly sign DS * simplify * simplify by passing rrset to signer * fix typing * nit * add DS * add more test * rewrite zone signer * compact * simplify * make easier to read * bring back rrset_signer * move default RRset signer * more * more * prettier context handling (mypy issue pending) * make NSEC zone signer less complex * update * fix txn, sign as defined by SEP * docs * add back missing dnskey_include * rename dnskey_include to add_dnskey * check KSK/ZSK key tags in signed zone --------- Co-authored-by: Bob Halley <halley@dnspython.org>
* re-run blackBob Halley2023-03-196-9/+5
|
* Better DNS-over-HTTPS support. (#908)Bob Halley2023-03-192-101/+53
| | | | | | | | | | | | This change: Allows resolution hostnames in URLs using dnspython's resolver or via a bootstrap address, without rewriting URLs. Adds full support for source addresses and ports to httpx, except for asyncio I/O where only the source address can be specified. Removes support for requests.
* Add names iteration to transactions via iterate_names(). (#907)Bob Halley2023-03-141-7/+18
| | | | Also make rdataset iteration more obvious by adding an explicit iterate_rdatasets() API.
* Remove curio support.Bob Halley2023-03-122-65/+4
|
* Add dns.resolver.resolve_name(). (#903)Brian Wellington2023-03-102-0/+70
| | | | | | | | | | | | | * Add dns.resolver.resolve_name(). * Add missing type annotations. * Add async resolve_name(). * Replace List[Answer] with HostAnswers. * Switch addresses_and_families() tuple order * Fix comment.
* Remove the DSA signature test, as it can fail in certainBob Halley2023-03-071-8/+2
| | | | | OpenSSL 3 with the FIPS 140-3 module, as the module will not generate keys with a "q" size that is representable in DNSSEC.
* Resolver "nameserver" object support. (#897)Bob Halley2023-02-252-46/+73
| | | | | | | | | | | | | | | | | | | | | | | | | * Resolver "nameserver" object support. This turns the list of nameserver strings in the resolver into a tuple of nameserver objects, which abstract away making queries to a nameserver of a given type. The resolver's legacy nameserver list is "enriched" into a tuple of nameserver objects whenever it is set. Note that you cannot mutate the object other than by setting, e.g. res.nameservers.append("1.2.3.4") will not work. Error message accumulation has been updated to refer to the nameservers using a descriptive text form. * doco fix * more doco fixes * do enrichment at Resolution time * require a later mypy, fix type issues * add nameserver doc
* CDS/CDNSKEY utilities (#872)Jakob Schlyter2022-12-231-0/+110
| | | | | | | | | | | Add CDS and CDNSKEY utilities: make_cdnskey() make_cds() make_ds_rdataset() cds_rdataset_to_ds_rdataset() dnskey_rdataset_to_cds_rdataset() dnskey_rdataset_to_cdnskey_rdataset()
* Remove unsupported python case (#871)sblondon2022-12-161-4/+1
|
* DNSSEC policy. (#869)Bob Halley2022-12-151-26/+93
|
* DNSSEC signer (#866)Jakob Schlyter2022-12-122-0/+305
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * first cut at key_to_dnskey * update docs * typo * use real test vectors for DNSKEY * comment * split * add test for large exponent size * rename to make_dnskey * no default algorithm * rename and add comment * split out function to create rrsig signature data * docs * add type for public key * more typing * make RSA exponent key test easier to read * work in progress for dns.dnssec.sign * better docs * docs * simplify * add test with RSASHA1 * initial support for DSA * update docs * clean up DSA, t still not clear * allow inception/expiration to be specified as datetime, string, float or in * allow rrset to be specified as a tuple * calculate dsa_t * reformat * more rrset tuple fixes * support DSA * improve exception handling * fix return type error * fix typing issue to silence mypy * make test case more verbose * ensure UTC and use sigtime_to_posixtime to convert text to timestamp
* add missing skip marksBob Halley2022-10-091-0/+2
|
* Initial DoQ support.Bob Halley2022-10-095-0/+245
|
* Asyncio sockets should work after a timeout [#843].Bob Halley2022-10-061-0/+46
|
* add $ to allow_directives if missingBob Halley2022-08-161-0/+10
|
* allow zonefile directives to be specified explicitlyBob Halley2022-08-141-0/+63
|
* Add support for more bases in $GENERATEcorubba2022-08-051-0/+46
| | | | | | | | | | | When reading a zone from a zonefile, the `$GENERATE` resolution now not only supports decimal but also octal, hexadecimal and nibbles. When using nibbles with an even width, the generated index may end with a dot, and alone is interpreted as a absolute name. This behaviour is consistent with bind, but may cause these records to be dropped by the subdomain-check in `zonefile.py:398` (see also the `h.*` labels in the testcase that are missing from the result).
* Merge pull request #822 from bwelling/rdatatype-fixesBob Halley2022-07-171-0/+11
|\ | | | | Fix dns.rdatatype special cases.
| * Fix dns.rdatatype special cases.Brian Wellington2022-07-151-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Prior to this change, there was logic in dns.rdatatype.from_text() and to_text() to deal with types not handled by the RdataType enum; specifically, the NSAP-PTR type (the enum value has a different name, because of the hyphen) and user-registered types. This was fine when internal code called these methods, but most callers of from_text() were converted to dns.rdatatype.RdataType.make(), which supports both integer and text input, and it doesn't handle the special cases. This change adds more hooks into the enum wrapper and moves the special case handling for RdataType into them.
* | deal with more windows idiosyncraciesBob Halley2022-06-111-5/+7
| |
* | on windows, skip curio xfr tooBob Halley2022-06-111-1/+5
| |
* | give up on curio tests on windowsBob Halley2022-06-111-0/+3
| |
* | attempt to workaround curio exceptions that happen only in CIBob Halley2022-06-111-3/+6
| |
* | apply v4/v6 testing scheme from query tests to async tooBob Halley2022-06-101-13/+4
| |
* | remove debugging printBob Halley2022-06-101-1/+0
| |
* | Improve network checking [#812].Bob Halley2022-06-044-32/+73
| |
* | Merge pull request #809 from bdrung/wrap-long-linesBob Halley2022-05-162-44/+169
|\ \ | | | | | | Wrap long lines
| * | Wrap long linesBenjamin Drung2022-05-162-44/+169
| |/ | | | | | | | | | | Make flake8 and pylint happy by wrapping the long lines. Signed-off-by: Benjamin Drung <bdrung@ubuntu.com>
* | Allow skipping test cases that need Internet accessBenjamin Drung2022-05-161-6/+10
| | | | | | | | | | | | | | | | | | Support skipping all test cases that access the Internet by setting the environment variable `NO_INTERNET`. This is useful to make the test run reproducible and robust for future runs (to avoid breaking in case some random service on the Internet changes). Signed-off-by: Benjamin Drung <bdrung@ubuntu.com>
* | Add tests.util.is_internet_reachable()Benjamin Drung2022-05-166-54/+37
|/ | | | | | Introduce `tests.util.is_internet_reachable` to avoid duplicate code. Signed-off-by: Benjamin Drung <bdrung@ubuntu.com>
* test multi-message TSIG with and without paddingBob Halley2022-03-241-0/+51
|
* test padding in DoTBob Halley2022-03-231-0/+22
|
* test padding in DoHBob Halley2022-03-231-0/+21
|
* Add EDNS padding.Bob Halley2022-03-232-0/+63
|
* black autoformattingBob Halley2022-03-1553-4191/+5423
|
* test versioned zone non-txn get of nonexistent setBob Halley2022-03-121-0/+13
|
* improve version _validate_name test coverageBob Halley2022-03-061-0/+7
|
* Remove 3.6-specific code.Bob Halley2022-03-054-47/+7
| | | | | We still have to add AsyncExitStacks, and this requires making the associated socket wrappers async context managers.
* Add integrated typing to much of dnspython.Bob Halley2022-03-054-12/+29
|
* allow txn argument as suggested by @rthalleyJakob Schlyter2022-02-211-0/+9
|
* raise NoSOA if there is no SOA recordJakob Schlyter2022-02-191-1/+1
|
* implement dns.zone.Zone.get_soa()Jakob Schlyter2022-02-191-0/+12
|
* fix test TLS alertBob Halley2022-02-171-0/+4
|
* lgtm lint: suppress false positiveBob Halley2022-02-171-1/+1
|