4 class TestEnum(unittest.TestCase):
6 Verifies the repl() and str() behaviour of an example Enum
7 Enums represent configuration values such as digitalio.Direction, digitalio.Pull etc.
11 """Create an example Enum, mocking __module__ and __qualname__"""
12 import adafruit_blinka
14 class Cls(adafruit_blinka.Enum):
19 # class refs would be implicitly populated correctly in a real module
20 Cls.__module__ = "ho.hum"
21 Cls.__qualname__ = "Example"
24 def test_iteritems(self):
25 """A subtype of Enum can list all attributes of its own type"""
26 items = list(self.Cls.iteritems())
30 ("one", self.Cls.one),
31 ("two", self.Cls.two),
36 """A repr() call on an Enum gives its fully-qualified name"""
38 actual = repr(getattr(self.Cls, name))
39 expected = "{}.{}.{}".format(self.Cls.__module__, self.Cls.__qualname__, name)
40 self.assertEqual(actual, expected)
43 """A str() call on an Enum performs the same as repr()"""
44 self.assertEqual(str(self.Cls.one), repr(self.Cls.one))
47 class TestDigitalInOut(unittest.TestCase):
48 def test_context_manager(self):
50 from testing.board import default_pin
52 """Deinitialisation is triggered by __exit__() and should dispose machine.pin reference"""
53 dio = digitalio.DigitalInOut(default_pin)
54 self.assertIsNotNone(dio._pin)
57 self.assertIsNone(dio._pin)