From 1cb5a03ce72a772b0c739a608d0fdb202524c9b9 Mon Sep 17 00:00:00 2001 From: deadc0de6 Date: Mon, 6 Feb 2023 15:44:26 +0100 Subject: [PATCH] more tests --- dotdrop/linktypes.py | 2 +- tests/test_misc.py | 64 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 65 insertions(+), 1 deletion(-) create mode 100644 tests/test_misc.py diff --git a/dotdrop/linktypes.py b/dotdrop/linktypes.py index 08b2b9d..1279f47 100644 --- a/dotdrop/linktypes.py +++ b/dotdrop/linktypes.py @@ -25,7 +25,7 @@ class LinkTypes(IntEnum): try: return key if isinstance(key, cls) else cls[key.upper()] except KeyError as exc: - if default: + if default and isinstance(default, cls): return default err = f'bad {cls.__name__} value: "{key}"' raise ValueError(err) from exc diff --git a/tests/test_misc.py b/tests/test_misc.py new file mode 100644 index 0000000..483ca5d --- /dev/null +++ b/tests/test_misc.py @@ -0,0 +1,64 @@ +""" +author: deadc0de6 (https://github.com/deadc0de6) +Copyright (c) 2023, deadc0de6 +basic unittest for misc stuff +""" + +# pylint: disable=R0903 +# pylint: disable=W0231 +# pylint: disable=W0212 + +import unittest +from dotdrop.profile import Profile +from dotdrop.linktypes import LinkTypes + + +class TestLinkTypes(unittest.TestCase): + """test case""" + + def test_exc(self): + """test exception""" + with self.assertRaises(ValueError): + LinkTypes.get('whatever') + with self.assertRaises(ValueError): + LinkTypes.get('whatever', default="something-else") + + +class TestProfile(unittest.TestCase): + """test case""" + + def test_hash(self): + """test profile hash""" + pro = Profile('some-profile') + self.assertIsNotNone(hash(pro)) + + def test_repr(self): + """test profile repr""" + name = 'profile-name' + pro = Profile(name) + expected = f'profile(key:"{name}")' + self.assertEqual(repr(pro), expected) + + def test_eq(self): + """test profile eq""" + p1_name = 'profile-1' + pro1 = Profile(p1_name, dotfiles=['abc']) + p2_name = 'profile-2' + pro2 = Profile(p2_name) + p3_name = p1_name + pro3 = Profile(p3_name, dotfiles=['abc']) + p4_name = p1_name + pro4 = Profile(p4_name, dotfiles=['ab']) + self.assertNotEqual(pro1, pro2) + self.assertEqual(pro1, pro3) + self.assertNotEqual(pro1, pro4) + self.assertNotEqual(pro3, pro4) + + +def main(): + """entry point""" + unittest.main() + + +if __name__ == '__main__': + main()