|
0 |
# Copyright (C) 2006-2017 Nominum, Inc.
|
|
1 |
#
|
|
2 |
# Permission to use, copy, modify, and distribute this software and its
|
|
3 |
# documentation for any purpose with or without fee is hereby granted,
|
|
4 |
# provided that the above copyright notice and this permission notice
|
|
5 |
# appear in all copies.
|
|
6 |
#
|
|
7 |
# THE SOFTWARE IS PROVIDED "AS IS" AND NOMINUM DISCLAIMS ALL WARRANTIES
|
|
8 |
# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
9 |
# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL NOMINUM BE LIABLE FOR
|
|
10 |
# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
11 |
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
12 |
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
|
|
13 |
# OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
14 |
|
|
15 |
try:
|
|
16 |
import unittest2 as unittest
|
|
17 |
except ImportError:
|
|
18 |
import unittest
|
|
19 |
|
|
20 |
import dns.rdata
|
|
21 |
import dns.rdataclass
|
|
22 |
import dns.rdatatype
|
|
23 |
import dns.rdtypes.ANY.TXT
|
|
24 |
import dns.ttl
|
|
25 |
|
|
26 |
class NSEC3TestCase(unittest.TestCase):
|
|
27 |
def test_NSEC3_bitmap(self):
|
|
28 |
rdata = dns.rdata.from_text(dns.rdataclass.IN, dns.rdatatype.NSEC3,
|
|
29 |
u"1 0 100 ABCD SCBCQHKU35969L2A68P3AD59LHF30715 A CAA TYPE65534")
|
|
30 |
bitmap = bytearray(b'\0' * 32)
|
|
31 |
bitmap[31] = bitmap[31] | 2
|
|
32 |
self.assertEqual(rdata.windows, [(0, bytearray(b'@')),
|
|
33 |
(1, bytearray(b'@')), # CAA = 257
|
|
34 |
(255, bitmap)
|
|
35 |
])
|
|
36 |
|
|
37 |
if __name__ == '__main__':
|
|
38 |
unittest.main()
|