--- /dev/null
+# Copyright (C) Dnspython Contributors, see LICENSE for text of ISC license
+
+import unittest
+
+import dns.dnssec
+import dns.rdtypes.dnskeybase
+import dns.flags
+import dns.rcode
+import dns.opcode
+import dns.message
+import dns.update
+import dns.edns
+
+import tests.util
+
+
+class ConstantsTestCase(unittest.TestCase):
+
+ def test_dnssec_constants(self):
+ tests.util.check_enum_exports(dns.dnssec, self.assertEqual,
+ only={dns.dnssec.Algorithm})
+ tests.util.check_enum_exports(dns.rdtypes.dnskeybase, self.assertEqual)
+
+ def test_flags_constants(self):
+ tests.util.check_enum_exports(dns.flags, self.assertEqual)
+ tests.util.check_enum_exports(dns.rcode, self.assertEqual)
+ tests.util.check_enum_exports(dns.opcode, self.assertEqual)
+
+ def test_message_constants(self):
+ tests.util.check_enum_exports(dns.message, self.assertEqual)
+ tests.util.check_enum_exports(dns.update, self.assertEqual)
+
+ def test_rdata_constants(self):
+ tests.util.check_enum_exports(dns.rdataclass, self.assertEqual)
+ tests.util.check_enum_exports(dns.rdatatype, self.assertEqual)
+
+ def test_edns_constants(self):
+ tests.util.check_enum_exports(dns.edns, self.assertEqual)
print(l, file=nf)
os.rename(new_filename, filename)
-def check():
- ok = True
- for enum_name in enum_names:
- dot = enum_name.rindex('.')
- module_name = enum_name[:dot]
- type_name = enum_name[dot + 1:]
- mod = import_module(module_name)
- enum = getattr(mod, type_name)
- for name, value in enum.__members__.items():
- try:
- if value != getattr(mod, name):
- ok = False
- print(f'{name} != {value}', file=sys.stderr)
- except Exception:
- ok = False
- print('exception checking', name, file=sys.stderr)
- return ok
-
-def usage():
- print('usage: constants-tool [generate|check]', file=sys.stderr)
- sys.exit(1)
-
def main():
- if len(sys.argv) < 2:
- usage()
- if sys.argv[1] == 'generate':
- generate()
- elif sys.argv[1] == 'check':
- if not check():
- sys.exit(2)
- else:
- usage()
+ generate()
if __name__ == '__main__':
main()