class TestEnum(unittest.TestCase):
"""
- Verifies the repl() and str() behaviour of an example Enum
- Enums represent configuration values such as digitalio.Direction, digitalio.Pull etc.
+ Verifies the repl() and str() behaviour of an example Enum
+ Enums represent configuration values such as digitalio.Direction, digitalio.Pull etc.
"""
def setUp(self):
"""Create an example Enum, mocking __module__ and __qualname__"""
import adafruit_blinka
+
class Cls(adafruit_blinka.Enum):
pass
+
Cls.one = Cls()
Cls.two = Cls()
# class refs would be implicitly populated correctly in a real module
Cls.__qualname__ = "Example"
self.Cls = Cls
-
def test_iteritems(self):
"""A subtype of Enum can list all attributes of its own type"""
items = list(self.Cls.iteritems())
- self.assertEqual( items, [("one",self.Cls.one),("two",self.Cls.two),])
-
+ self.assertEqual(
+ items,
+ [
+ ("one", self.Cls.one),
+ ("two", self.Cls.two),
+ ],
+ )
def test_repr(self):
"""A repr() call on an Enum gives its fully-qualified name"""
name = "one"
actual = repr(getattr(self.Cls, name))
expected = "{}.{}.{}".format(self.Cls.__module__, self.Cls.__qualname__, name)
- self.assertEqual( actual, expected)
-
+ self.assertEqual(actual, expected)
def test_str(self):
"""A str() call on an Enum performs the same as repr()"""
- self.assertEqual(str(self.Cls.one), repr(self.Cls.one))
\ No newline at end of file
+ self.assertEqual(str(self.Cls.one), repr(self.Cls.one))
+
+
+class TestDigitalInOut(unittest.TestCase):
+ def test_context_manager(self):
+ import digitalio
+ from testing.board import default_pin
+
+ """Deinitialisation is triggered by __exit__() and should dispose machine.pin reference"""
+ dio = digitalio.DigitalInOut(default_pin)
+ self.assertIsNotNone(dio._pin)
+ with dio:
+ pass
+ self.assertIsNone(dio._pin)