Exemple #1
0
 def testGetStatus(self):
     """Check status converts bool as expected."""
     for st in ['True', 'TRUE']:
         cond = condition.Conditions(
             [self.condition_class(type='type1', status=st)])
         self.assertTrue(cond['type1']['status'])
     for st in ['false', 'Unknown', 'foo-bar']:
         cond = condition.Conditions(
             [self.condition_class(type='type1', status=st)])
         self.assertFalse(cond['type1']['status'])
Exemple #2
0
    def testGet(self):
        """Sanity check for getter."""
        cond1 = self.condition_class(type='type1', status='False')
        cond = condition.Conditions([cond1])
        self.assertEqual(cond1.status, str(cond['type1']['status']))
        self.assertEqual(1, len(cond))

        cond2 = self.condition_class(type='type2',
                                     status='False',
                                     message='bar')
        cond = condition.Conditions([cond1, cond2])
        self.assertEqual(cond2.message, cond['type2']['message'])
        self.assertEqual(cond2.message, cond['type2']['message'])
        self.assertEqual(cond2.status, str(cond['type2']['status']))
        self.assertEqual(2, len(cond))
Exemple #3
0
    def testIsTerminal(self):
        """Test condition reports itself as terminal when it is."""
        cond = condition.Conditions([
            self.condition_class(type='type1', status='False'),
            self.condition_class(type='type2', status='True')
        ],
                                    ready_condition='type1')
        self.assertTrue(cond.IsTerminal())

        cond = condition.Conditions([
            self.condition_class(type='type1', status='False'),
            self.condition_class(type='type2', status='False')
        ],
                                    ready_condition='type2')
        self.assertTrue(cond.IsTerminal())
Exemple #4
0
 def testIter(self):
     cond = condition.Conditions([
         self.condition_class(type='type1', status='False'),
         self.condition_class(type='type2', status='False')
     ])
     for cond_type in cond:
         self.assertFalse(cond[cond_type]['status'])
Exemple #5
0
    def testNotTerminal(self):
        """Test condition reports itself as not terminal when it is not."""
        cond = condition.Conditions([
            self.condition_class(type='type1', status='Unknown'),
            self.condition_class(type='type2', status='True')
        ],
                                    ready_condition='type1')
        self.assertFalse(cond.IsTerminal())

        cond = condition.Conditions([
            self.condition_class(type='type1', status='False'),
            self.condition_class(type='type2', status='True')
        ],
                                    ready_condition='type2',
                                    observed_generation=1,
                                    generation=2)
        self.assertFalse(cond.IsTerminal())
Exemple #6
0
 def testMessage_Unready(self):
     cond = condition.Conditions([
         self.condition_class(type='type1', status='Unknown',
                              message='bar'),
         self.condition_class(type='type2', status='Unknown', message='foo')
     ],
                                 ready_condition='type1')
     self.assertEqual(cond.DescriptiveMessage(), 'bar')
Exemple #7
0
 def testMessage_Error(self, type1_args, type2_args, result):
     """The message is always whatever the error is, otherwise why not ready."""
     cond = condition.Conditions([
         self.condition_class(type='type1', **type1_args),
         self.condition_class(type='type2', **type2_args)
     ],
                                 ready_condition='type1')
     self.assertEqual(cond.DescriptiveMessage(), result)
Exemple #8
0
 def testSubconditionsAreNonTerminal(self):
     cond = condition.Conditions([
         self.condition_class(type='type1', status='Unknown'),
         self.condition_class(type='type2', status='True', severity='Info'),
         self.condition_class(
             type='type3', status='Unknown', severity='Warning')
     ],
                                 ready_condition='type1')
     self.assertCountEqual(['type2', 'type3'],
                           list(cond.NonTerminalSubconditions()))
Exemple #9
0
 def conditions(self):
     self.AssertFullObject()
     if self._m.status:
         c = self._m.status.conditions
     else:
         c = []
     return condition.Conditions(
         c,
         self.READY_CONDITION,
         getattr(self._m.status, 'observedGeneration', None),
         self.generation,
     )
Exemple #10
0
 def GetConditions(self, terminal_condition=None):
     self.AssertFullObject()
     if self._m.status:
         c = self._m.status.conditions
     else:
         c = []
     return condition.Conditions(
         c,
         terminal_condition if terminal_condition else self.READY_CONDITION,
         getattr(self._m.status, 'observedGeneration', None),
         self.generation,
     )
Exemple #11
0
 def testContain(self):
     cond = condition.Conditions(
         [self.condition_class(type='type1', status='False')])
     self.assertTrue('type1' in cond)
     self.assertFalse('type2' in cond)
Exemple #12
0
 def testGet_KeyError(self):
     cond = condition.Conditions([])
     with self.assertRaises(KeyError):
         _ = cond['non-existing-type']