1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
|
"""
Unit tests for the stem.util.enum class and functions.
"""
import unittest
import stem.util.enum
class TestEnum(unittest.TestCase):
def test_enum_examples(self):
"""
Checks that the pydoc examples are accurate.
"""
insects = stem.util.enum.Enum('ANT', 'WASP', 'LADYBUG', 'FIREFLY')
self.assertEquals('Ant', insects.ANT)
self.assertEquals(('Ant', 'Wasp', 'Ladybug', 'Firefly'), tuple(insects))
pets = stem.util.enum.Enum(('DOG', 'Skippy'), 'CAT', ('FISH', 'Nemo'))
self.assertEquals('Skippy', pets.DOG)
self.assertEquals('Cat', pets.CAT)
def test_uppercase_enum_example(self):
"""
Checks that the pydoc example for the UppercaseEnum constructor function is
accurate.
"""
runlevels = stem.util.enum.UppercaseEnum('DEBUG', 'INFO', 'NOTICE', 'WARN', 'ERROR')
self.assertEquals('DEBUG', runlevels.DEBUG)
def test_enum_methods(self):
"""
Exercises enumeration methods.
"""
insects = stem.util.enum.Enum('ANT', 'WASP', 'LADYBUG', 'FIREFLY')
# next method
self.assertEquals(insects.WASP, insects.next(insects.ANT))
self.assertEquals(insects.ANT, insects.next(insects.FIREFLY))
# previous method
self.assertEquals(insects.FIREFLY, insects.previous(insects.ANT))
self.assertEquals(insects.LADYBUG, insects.previous(insects.FIREFLY))
# keys method
self.assertEquals(['ANT', 'WASP', 'LADYBUG', 'FIREFLY'], insects.keys())
|