]> Repositories - Adafruit_Blinka-hackapet.git/blob - python/testing/mcp.py
Untested draft I2C
[Adafruit_Blinka-hackapet.git] / python / testing / mcp.py
1 import unittest
2
3
4 class TestEnum(unittest.TestCase):
5     """
6         Verifies the repl() and str() behaviour of an example Enum
7         Enums represent configuration values such as digitalio.Direction, digitalio.Pull etc.
8     """
9
10     def setUp(self):
11         """Create an example Enum, mocking __module__ and __qualname__"""
12         import mcp
13         class Cls(mcp.Enum):
14             pass
15         Cls.one = Cls()
16         Cls.two = Cls()
17         # class refs would be implicitly populated correctly in a real module
18         Cls.__module__ = "ho.hum"
19         Cls.__qualname__ = "Example"
20         self.Cls = Cls
21
22
23     def test_iteritems(self):
24         """A subtype of Enum can list all attributes of its own type"""
25         items = list(self.Cls.iteritems())
26         self.assertEqual( items, [("one",self.Cls.one),("two",self.Cls.two),])
27
28
29     def test_repr(self):
30         """A repr() call on an Enum gives its fully-qualified name"""
31         name = "one"
32         actual = repr(getattr(self.Cls, name))
33         expected = "{}.{}.{}".format(self.Cls.__module__, self.Cls.__qualname__, name)
34         self.assertEqual( actual, expected)
35
36
37     def test_str(self):
38         """A str() call on an Enum performs the same as repr()"""
39         self.assertEqual(str(self.Cls.one), repr(self.Cls.one))