def test_no_match_with_default(self): choice = Choice([('redhat 7.0', 'fred'), ('SuSe 2012', 'star'), 'match']) match = choice.choose(self.what_to_match) self.assertEqual(match, 'match')
def test_match_single_string(self): choice = Choice('fred') match = choice.choose(self.what_to_match) self.assertEqual(match, 'fred')
def test_no_match(self): choice = Choice([('redhat 7.0','fred'), ('SuSe 2012','star')]) with self.assertRaises(ValueError) as cm: match = choice.choose(self.what_to_match) self.assertEqual(str(cm.exception), 'Nothing matched')
def test_match_single_string_in_array(self): choice = Choice(['fred']) match = choice.choose(self.what_to_match) self.assertEqual(match, 'fred')
def test_None_alone_in_sequence_is_allowed(self): choice = Choice([None]) match = choice.choose(self.what_to_match) self.assertEqual(match, None)
def test_match_second_in_wildcarding(self): choice = Choice([('ubuntu 12.11','fred'), ('ubuntu 12.*','star')]) match = choice.choose(self.what_to_match) self.assertEqual(match, 'star')
def test_match_default_in_sequence_with_default(self): choice = Choice([('no match', 'first'), 'fred']) match = choice.choose(self.what_to_match) self.assertEqual(match, 'fred')
def test_match_second_item_in_sequence_with_default(self): choice = Choice([('ubuntu 12.11','first'), ('ubuntu 12.10', 'second')]) match = choice.choose(self.what_to_match) self.assertEqual(match, 'second')
def test_choice_cannot_be_None(self): with self.assertRaises(GiveUp) as cm: choice = Choice(None)
def test_None_can_be_default(self): choice = Choice([('no match', 'first'), None]) match = choice.choose(self.what_to_match) self.assertEqual(match, None)
def test_match_second_item_in_sequence_with_default(self): choice = Choice([('ubuntu 12.11', 'first'), ('ubuntu 12.10', 'second')]) match = choice.choose(self.what_to_match) self.assertEqual(match, 'second')
def test_match_first_item_in_sequence(self): choice = Choice([('ubuntu 12.10', 'first')]) match = choice.choose(self.what_to_match) self.assertEqual(match, 'first')
def test_match_second_in_wildcarding(self): choice = Choice([('ubuntu 12.11', 'fred'), ('ubuntu 12.*', 'star')]) match = choice.choose(self.what_to_match) self.assertEqual(match, 'star')
def test_match_first_item_in_sequence(self): choice = Choice([('ubuntu 12.10','first')]) match = choice.choose(self.what_to_match) self.assertEqual(match, 'first')
def test_match_second_in_more_wildcarding(self): choice = Choice([('ubuntu 12.2?', 'fred'), ('ubuntu 12.1?', 'query')]) match = choice.choose(self.what_to_match) self.assertEqual(match, 'query')
def test_None_can_be_default(self): choice = Choice([('no match','first'), None]) match = choice.choose(self.what_to_match) self.assertEqual(match, None)
def test_two_strings(self): with self.assertRaises(GiveUp) as cm: choice = Choice(['fred', 'fred'])
def test_match_default_in_sequence_with_default(self): choice = Choice([('no match','first'), 'fred']) match = choice.choose(self.what_to_match) self.assertEqual(match, 'fred')
def test_middle_string(self): with self.assertRaises(GiveUp) as cm: choice = Choice([('ubuntu 12.10', 'fred'), 'fred', ('ubuntu 12.*', 'star')])
def test_match_second_in_more_wildcarding(self): choice = Choice([('ubuntu 12.2?','fred'), ('ubuntu 12.1?','query')]) match = choice.choose(self.what_to_match) self.assertEqual(match, 'query')
def test_no_match(self): choice = Choice([('redhat 7.0', 'fred'), ('SuSe 2012', 'star')]) with self.assertRaises(ValueError) as cm: match = choice.choose(self.what_to_match) self.assertEqual(str(cm.exception), 'Nothing matched')
def test_no_match_with_default(self): choice = Choice([('redhat 7.0','fred'), ('SuSe 2012','star'), 'match']) match = choice.choose(self.what_to_match) self.assertEqual(match, 'match')