summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBob Halley <halley@dnspython.org>2020-08-04 06:05:19 -0700
committerBob Halley <halley@dnspython.org>2020-08-04 06:05:19 -0700
commitc33265d94c275978169174a460de2c1fa0f1d517 (patch)
tree365642bbe8b28e250603a96313984b777173b650
parentb70e664ff050b30d2fe40ee041b102fa240827eb (diff)
downloaddnspython-c33265d94c275978169174a460de2c1fa0f1d517.tar.gz
test constants with independent code
-rw-r--r--tests/test_constants.py38
-rwxr-xr-xutil/constants-tool32
2 files changed, 39 insertions, 31 deletions
diff --git a/tests/test_constants.py b/tests/test_constants.py
new file mode 100644
index 0000000..e818bb9
--- /dev/null
+++ b/tests/test_constants.py
@@ -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)
diff --git a/util/constants-tool b/util/constants-tool
index bd843fa..0fc7cd4 100755
--- a/util/constants-tool
+++ b/util/constants-tool
@@ -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()