diff options
author | Bob Halley <halley@dnspython.org> | 2020-08-04 06:05:19 -0700 |
---|---|---|
committer | Bob Halley <halley@dnspython.org> | 2020-08-04 06:05:19 -0700 |
commit | c33265d94c275978169174a460de2c1fa0f1d517 (patch) | |
tree | 365642bbe8b28e250603a96313984b777173b650 | |
parent | b70e664ff050b30d2fe40ee041b102fa240827eb (diff) | |
download | dnspython-c33265d94c275978169174a460de2c1fa0f1d517.tar.gz |
test constants with independent code
-rw-r--r-- | tests/test_constants.py | 38 | ||||
-rwxr-xr-x | util/constants-tool | 32 |
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() |