]> git.ipfire.org Git - thirdparty/dnspython.git/commitdiff
test constants with independent code 564/head
authorBob Halley <halley@dnspython.org>
Tue, 4 Aug 2020 13:05:19 +0000 (06:05 -0700)
committerBob Halley <halley@dnspython.org>
Tue, 4 Aug 2020 13:05:19 +0000 (06:05 -0700)
tests/test_constants.py [new file with mode: 0644]
util/constants-tool

diff --git a/tests/test_constants.py b/tests/test_constants.py
new file mode 100644 (file)
index 0000000..e818bb9
--- /dev/null
@@ -0,0 +1,38 @@
+# 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)
index bd843fa87f6ce797fe0682cc642da02e33896408..0fc7cd416a1be2502d2a060dc6515953331eab08 100755 (executable)
@@ -78,38 +78,8 @@ def generate():
                     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()