def test_nsec_chain():

    (tests, errs) = harness.test_validator(test_name="nsec_chain", zone_name="example", file_name="rfc4035_example.")
    assert tests == 1
    assert errs == 0

    (tests, errs) = harness.test_validator(
        test_name="nsec_chain", zone_name="example", file_name="rfc4035_example._no_nsec", dnssec_type="NSEC"
    )
    assert tests == 1
    assert errs == 1

    (tests, errs) = harness.test_validator(
        test_name="nsec_chain", zone_name="example", file_name="rfc4035_example._chain_broke"
    )
    assert tests == 1
    assert errs == 1

    (tests, errs) = harness.test_validator(
        test_name="nsec_chain", zone_name="example", file_name="rfc4035_example._chain_short"
    )
    assert tests == 1
    assert errs == 1

    (tests, errs) = harness.test_validator(
        test_name="nsec_chain", zone_name="example", file_name="rfc4035_example._chain_misorder"
    )
    assert tests == 1
    assert errs == 1
def test_dnskeys():

    (tests, errs) = harness.test_validator(
        test_name='dnskey_origin',
        zone_name='example',
        file_name='rfc4035_example.')
    assert tests == 1
    assert errs == 0

    (tests, errs) = harness.test_validator(
        test_name='dnskey_origin',
        zone_name='example',
        file_name='rfc5155_example.')
    assert tests == 1
    assert errs == 0

    (tests, errs) = harness.test_validator(
        test_name='dnskey_origin',
        zone_name='001.cst.net',
        file_name='001.cst.net.')
    assert tests == 1
    assert errs == 0

    (tests, errs) = harness.test_validator(
        test_name='dnskey_origin',
        zone_name='001.cst.net',
        file_name='001.cst.net._zsk_not_origin')
    assert tests == 1
    assert errs == 1
def test_dnskey_bits():

    (tests, errs) = harness.test_validator(test_name="dnskey_bits", zone_name="example", file_name="rfc4035_example.")
    assert tests == 2
    assert errs == 0

    (tests, errs) = harness.test_validator(test_name="dnskey_bits", zone_name="example", file_name="rfc5155_example.")
    assert tests == 2
    assert errs == 0

    (tests, errs) = harness.test_validator(test_name="dnskey_bits", zone_name="001.cst.net", file_name="001.cst.net.")
    assert tests == 2
    assert errs == 0

    (tests, errs) = harness.test_validator(
        test_name="dnskey_bits", zone_name="001.cst.net", file_name="001.cst.net._zsk_not_origin"
    )
    assert tests == 1
    assert errs == 1

    (tests, errs) = harness.test_validator(
        test_name="dnskey_bits", zone_name="001.cst.net", file_name="001.cst.net._bad_dnskey"
    )
    assert tests == 2
    assert errs == 1
def test_ns_origin():

    (tests, errs) = harness.test_validator(
        test_name='ns_origin',
        zone_name='example',
        file_name='rfc4035_example.')
    assert tests == 1
    assert errs == 0

    (tests, errs) = harness.test_validator(
        test_name='ns_origin',
        zone_name='example',
        file_name='rfc5155_example.')
    assert tests == 1
    assert errs == 0

    (tests, errs) = harness.test_validator(
        test_name='ns_origin',
        zone_name='001.cst.net',
        file_name='001.cst.net.')
    assert tests == 1
    assert errs == 0

    (tests, errs) = harness.test_validator(
        test_name='ns_origin',
        zone_name='001.cst.net',
        file_name='001.cst.net._bad_ns')
    assert tests == 1
    assert errs == 1
def test_rrsig_time():

    (tests, errs) = harness.test_validator(
        test_name='rrsig_time',
        zone_name='example',
        file_name='rfc4035_example.')
    assert tests == 27
    assert errs == 0

    (tests, errs) = harness.test_validator(
        test_name='rrsig_time',
        zone_name='example',
        file_name='rfc5155_example.')
    assert tests == 30
    assert errs == 0

    (tests, errs) = harness.test_validator(
        test_name='rrsig_time',
        zone_name='001.cst.net',
        file_name='001.cst.net.')
    assert tests == 11
    assert errs == 0

    (tests, errs) = harness.test_validator(
        test_name='rrsig_time',
        zone_name='001.cst.net',
        file_name='001.cst.net._bad_rrsig_time')
    assert tests == 11
    assert errs == 1
def test_rrsig_signer_match():

    (tests, errs) = harness.test_validator(
        test_name="rrsig_signer_match", zone_name="example", file_name="rfc4035_example."
    )
    assert tests == 27
    assert errs == 0

    (tests, errs) = harness.test_validator(
        test_name="rrsig_signer_match", zone_name="example", file_name="rfc5155_example."
    )
    assert tests == 30
    assert errs == 0

    (tests, errs) = harness.test_validator(
        test_name="rrsig_signer_match", zone_name="001.cst.net", file_name="001.cst.net."
    )
    assert tests == 11
    assert errs == 0

    (tests, errs) = harness.test_validator(
        test_name="rrsig_signer_match", zone_name="001.cst.net", file_name="001.cst.net._bad_rrsig_signer"
    )
    assert tests == 11
    assert errs == 1
def test_nsec3_missing():

    (tests, errs) = harness.test_validator(
        test_name='nsec3_missing',
        zone_name='001.cst.net',
        file_name='001.cst.net.')
    assert tests == 7
    assert errs == 0

    (tests, errs) = harness.test_validator(
        test_name='nsec3_missing',
        zone_name='example',
        file_name='rfc5155_example.')
    assert tests == 17
    assert errs == 0

    (tests, errs) = harness.test_validator(
        test_name='nsec3_missing',
        zone_name='example',
        file_name='rfc5155_example._nsec3_missing')
    assert tests == 17
    assert errs == 3

    (tests, errs) = harness.test_validator(
        test_name='nsec3_missing',
        zone_name='example',
        file_name='rfc5155_example._bad_nsec3_covers')
    assert tests == 17
    assert errs == 1
def test_nsec3_orphan():

    (tests, errs) = harness.test_validator(
        test_name='nsec3_orphan',
        zone_name='001.cst.net',
        file_name='001.cst.net.')
    assert tests == 4
    assert errs == 0

    (tests, errs) = harness.test_validator(
        test_name='nsec3_orphan',
        zone_name='example',
        file_name='rfc5155_example.')
    assert tests == 12
    assert errs == 0

    (tests, errs) = harness.test_validator(
        test_name='nsec3_orphan',
        zone_name='example',
        file_name='rfc5155_example._bad_nsec3_covers')
    assert tests == 12
    assert errs == 1

    (tests, errs) = harness.test_validator(
        test_name='nsec3_orphan',
        zone_name='example',
        file_name='rfc5155_example._extra_nsec3_covers')
    assert tests == 12
    assert errs == 1
def test_nsec_orphan():

    (tests, errs) = harness.test_validator(
        test_name='nsec_orphan',
        zone_name='example',
        file_name='rfc4035_example.')
    assert tests == 10
    assert errs == 0

    (tests, errs) = harness.test_validator(
        test_name='nsec_orphan',
        zone_name='example',
        file_name='rfc4035_example._bad_nsec_covers')
    assert tests == 10
    assert errs == 1

    (tests, errs) = harness.test_validator(
        test_name='nsec_orphan',
        zone_name='example',
        file_name='rfc4035_example._extra_nsec_covers')
    assert tests == 10
    assert errs == 1
def test_nsec_missing():

    (tests, errs) = harness.test_validator(
        test_name='nsec_missing',
        zone_name='example',
        file_name='rfc4035_example.')
    assert tests == 15
    assert errs == 0

    (tests, errs) = harness.test_validator(
        test_name='nsec_missing',
        zone_name='example',
        file_name='rfc4035_example._nsec_missing')
    assert tests == 15
    assert errs == 3

    (tests, errs) = harness.test_validator(
        test_name='nsec_missing',
        zone_name='example',
        file_name='rfc4035_example._bad_nsec_covers')
    assert tests == 15
    assert errs == 1
def test_dnssectype_ambiguous():

    (tests, errs) = harness.test_validator(
        test_name='dnssectype_ambiguous',
        zone_name='example',
        file_name='rfc4035_example.')
    assert tests == 1
    assert errs == 0

    (tests, errs) = harness.test_validator(
        test_name='dnssectype_ambiguous',
        zone_name='example',
        file_name='rfc5155_example.')
    assert tests == 1
    assert errs == 0

    (tests, errs) = harness.test_validator(
        test_name='dnssectype_ambiguous',
        zone_name='001.cst.net',
        file_name='001.cst.net.')
    assert tests == 1
    assert errs == 0

    (tests, errs) = harness.test_validator(
        test_name='dnssectype_ambiguous',
        zone_name='001.cst.net',
        file_name='001.cst.net._extra_nsec')
    assert tests == 1
    assert errs == 1

    (tests, errs) = harness.test_validator(
        test_name='dnssectype_ambiguous',
        zone_name='001.cst.net',
        file_name='001.cst.net._only_nsec')
    assert tests == 1
    assert errs == 1
def test_soa_unique():

    (tests, errs) = harness.test_validator(
        test_name='soa_unique',
        zone_name='example',
        file_name='rfc4035_example.')
    assert tests == 1
    assert errs == 0

    (tests, errs) = harness.test_validator(
        test_name='soa_unique',
        zone_name='example',
        file_name='rfc5155_example.')
    assert tests == 1
    assert errs == 0

    (tests, errs) = harness.test_validator(
        test_name='soa_unique',
        zone_name='001.cst.net',
        file_name='001.cst.net.')
    assert tests == 1
    assert errs == 0

    (tests, errs) = harness.test_validator(
        test_name='soa_unique',
        zone_name='001.cst.net',
        file_name='001.cst.net._no_soa')
    assert tests == 1
    assert errs == 1

    (tests, errs) = harness.test_validator(
        test_name='soa_unique',
        zone_name='001.cst.net',
        file_name='001.cst.net._mult_soa')
    assert tests == 1
    assert errs == 1
def test_rrsig_missing():

    (tests, errs) = harness.test_validator(
        test_name='rrsig_missing',
        zone_name='example',
        file_name='rfc4035_example.',
        extra_defines=['rrsig_missing_now=20040501000000'])
    assert tests == 23
    assert errs == 0

    (tests, errs) = harness.test_validator(
        test_name='rrsig_missing',
        zone_name='example',
        file_name='rfc5155_example.',
        extra_defines=['rrsig_missing_now=20100101000000'])
    assert tests == 29
    assert errs == 0

    (tests, errs) = harness.test_validator(
        test_name='rrsig_missing',
        zone_name='001.cst.net',
        file_name='001.cst.net.',
        extra_defines=['rrsig_missing_now=20150701000000'])
    assert tests == 11
    assert errs == 0

    (tests, errs) = harness.test_validator(
        test_name='rrsig_missing',
        zone_name='001.cst.net',
        file_name='001.cst.net.',
        extra_defines=['rrsig_missing_now=20150801000000'])  # expired now
    assert tests == 11
    assert errs == 11

    (tests, errs) = harness.test_validator(
        test_name='rrsig_missing',
        zone_name='001.cst.net',
        file_name='001.cst.net._rrsig_missing',
        extra_defines=['rrsig_missing_now=20150701000000'])
    assert tests == 11
    assert errs == 1

    (tests, errs) = harness.test_validator(
        test_name='rrsig_missing',
        zone_name='001.cst.net',
        file_name='001.cst.net._rrsig_bad_algo',
        extra_defines=['rrsig_missing_now=20150701000000'])
    assert tests == 11
    assert errs == 1