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'])
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))
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())
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'])
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())
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')
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)
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()))
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, )
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, )
def testContain(self): cond = condition.Conditions( [self.condition_class(type='type1', status='False')]) self.assertTrue('type1' in cond) self.assertFalse('type2' in cond)
def testGet_KeyError(self): cond = condition.Conditions([]) with self.assertRaises(KeyError): _ = cond['non-existing-type']