s4-python: Move dnspython to lib/, like the other Python modules
[kai/samba-autobuild/.git] / lib / dnspython / tests / flags.py
1 # Copyright (C) 2003-2007, 2009, 2010 Nominum, Inc.
2 #
3 # Permission to use, copy, modify, and distribute this software and its
4 # documentation for any purpose with or without fee is hereby granted,
5 # provided that the above copyright notice and this permission notice
6 # appear in all copies.
7 #
8 # THE SOFTWARE IS PROVIDED "AS IS" AND NOMINUM DISCLAIMS ALL WARRANTIES
9 # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10 # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL NOMINUM BE LIABLE FOR
11 # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12 # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13 # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
14 # OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15
16 import unittest
17
18 import dns.flags
19 import dns.rcode
20 import dns.opcode
21
22 class FlagsTestCase(unittest.TestCase):
23
24     def test_rcode1(self):
25         self.failUnless(dns.rcode.from_text('FORMERR') ==  dns.rcode.FORMERR)
26
27     def test_rcode2(self):
28         self.failUnless(dns.rcode.to_text(dns.rcode.FORMERR) == "FORMERR")
29
30     def test_rcode3(self):
31         self.failUnless(dns.rcode.to_flags(dns.rcode.FORMERR) == (1, 0))
32
33     def test_rcode4(self):
34         self.failUnless(dns.rcode.to_flags(dns.rcode.BADVERS) == \
35                         (0, 0x01000000))
36
37     def test_rcode6(self):
38         self.failUnless(dns.rcode.from_flags(0, 0x01000000) == \
39                         dns.rcode.BADVERS)
40
41     def test_rcode6(self):
42         self.failUnless(dns.rcode.from_flags(5, 0) == dns.rcode.REFUSED)
43
44     def test_rcode7(self):
45         def bad():
46             dns.rcode.to_flags(4096)
47         self.failUnlessRaises(ValueError, bad)
48
49     def test_flags1(self):
50         self.failUnless(dns.flags.from_text("RA RD AA QR") == \
51                         dns.flags.QR|dns.flags.AA|dns.flags.RD|dns.flags.RA)
52
53     def test_flags2(self):
54         flags = dns.flags.QR|dns.flags.AA|dns.flags.RD|dns.flags.RA
55         self.failUnless(dns.flags.to_text(flags) == "QR AA RD RA")
56
57
58 if __name__ == '__main__':
59     unittest.main()