--- /dev/null
+import unittest
+
+
+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.
+ """
+
+ 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.__module__ = "ho.hum"
+ 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),])
+
+
+ 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)
+
+
+ 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