github.com/niedbalski/juju@v0.0.0-20190215020005-8ff100488e47/acceptancetests/jujupy/tests/test_exception.py (about)

     1  from tests import (
     2      TestCase
     3  )
     4  
     5  from jujupy.exceptions import (
     6      AppError,
     7      MachineError,
     8      ProvisioningError,
     9      StuckAllocatingError,
    10      StatusError,
    11      UnitError,
    12  )
    13  
    14  
    15  class TestStatusErrorTree(TestCase):
    16      """TestCase for StatusError and the tree of exceptions it roots."""
    17  
    18      def test_priority(self):
    19          pos = len(StatusError.ordering) - 1
    20          self.assertEqual(pos, StatusError.priority())
    21  
    22      def test_priority_mass(self):
    23          for index, error_type in enumerate(StatusError.ordering):
    24              self.assertEqual(index, error_type.priority())
    25  
    26      def test_priority_children_first(self):
    27          for index, error_type in enumerate(StatusError.ordering, 1):
    28              for second_error in StatusError.ordering[index:]:
    29                  self.assertFalse(issubclass(second_error, error_type))
    30  
    31      def test_priority_pairs(self):
    32          self.assertLess(MachineError.priority(), UnitError.priority())
    33          self.assertLess(UnitError.priority(), AppError.priority())
    34          self.assertLess(StuckAllocatingError.priority(),
    35                          MachineError.priority())
    36          self.assertLess(ProvisioningError.priority(),
    37                          StuckAllocatingError.priority())