1 # SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
3 # SPDX-License-Identifier: MIT
7 class TestEnum(unittest.TestCase):
9 Verifies the repl() and str() behaviour of an example Enum
10 Enums represent configuration values such as digitalio.Direction, digitalio.Pull etc.
14 """Create an example Enum, mocking __module__ and __qualname__"""
15 import adafruit_blinka
17 class Cls(adafruit_blinka.Enum):
22 # class refs would be implicitly populated correctly in a real module
23 Cls.__module__ = "ho.hum"
24 Cls.__qualname__ = "Example"
27 def test_iteritems(self):
28 """A subtype of Enum can list all attributes of its own type"""
29 items = list(self.Cls.iteritems())
33 ("one", self.Cls.one),
34 ("two", self.Cls.two),
39 """A repr() call on an Enum gives its fully-qualified name"""
41 actual = repr(getattr(self.Cls, name))
42 expected = "{}.{}.{}".format(self.Cls.__module__, self.Cls.__qualname__, name)
43 self.assertEqual(actual, expected)
46 """A str() call on an Enum performs the same as repr()"""
47 self.assertEqual(str(self.Cls.one), repr(self.Cls.one))
50 class TestDigitalInOut(unittest.TestCase):
51 def test_context_manager(self):
53 from testing.board import default_pin
55 """Deinitialisation is triggered by __exit__() and should dispose machine.pin reference"""
56 dio = digitalio.DigitalInOut(default_pin)
57 self.assertIsNotNone(dio._pin)
60 self.assertIsNone(dio._pin)