X-Git-Url: https://git.ayoreis.com/hackapet/Adafruit_Blinka.git/blobdiff_plain/f4f44cf730870773ff87242037bf7fd5f6acd8cd..5c2512abe5fa4f633afa94c742f3cd6bbf24c401:/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 index 0000000..91a2c84 --- /dev/null +++ b/test/src/testing/adafruit_blinka.py @@ -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