]> Repositories - Adafruit_Blinka-hackapet.git/blobdiff - test/src/testing/adafruit_blinka.py
Moved testing out of top level python path
[Adafruit_Blinka-hackapet.git] / test / src / testing / adafruit_blinka.py
diff --git a/test/src/testing/adafruit_blinka.py b/test/src/testing/adafruit_blinka.py
new file mode 100644 (file)
index 0000000..91a2c84
--- /dev/null
@@ -0,0 +1,39 @@
+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