zone2 = dns.zone.from_text(test_zone_with_nsec, "example.", relativize=False)
self.assertEqual(zone1.to_text(), zone2.to_text())
+ def test_sign_zone_initially_empty(self):
+ zone = dns.zone.Zone("example.")
+ soa = dns.rdataset.from_text("IN", "SOA", 3600,
+ "ns.example. hostmaster.example. 1 2 3 4 5")
+ privkey = ed25519.Ed25519PrivateKey.generate()
+ dnskey = dns.dnssec.make_dnskey(privkey.public_key(),
+ dns.dnssec.ED25519)
+ with zone.writer() as txn:
+ txn.add(dns.name.empty, soa)
+ dns.dnssec.sign_zone(zone, txn=txn, keys=[(privkey, dnskey)],
+ lifetime=3600)
+
+ self.assertIsNotNone(zone.find_rdataset(dns.name.empty, "SOA"))
+ self.assertIsNotNone(zone.find_rdataset(dns.name.empty, "RRSIG",
+ covers="SOA"))
@unittest.skipUnless(dns.dnssec._have_pyca, "Python Cryptography cannot be imported")
class DNSSECMakeDSTestCase(unittest.TestCase):