'Test find tv shows by indexer_id'

def test_find(self):

    sickbeard.QUALITY_DEFAULT = Quality.FULLHDTV
    sickbeard.showList = []
    show123 = TestTVShow(0, 123)
    show456 = TestTVShow(0, 456)
    show789 = TestTVShow(0, 789)
    shows = [show123, show456, show789]
    shows_duplicate = (shows + shows)
    test_cases = {(False, None): None, (False, u''): None, (False, u'123'): None, (False, 123): None, (False, 12.3): None, (True, None): None, (True, u''): None, (True, u'123'): None, (True, 123): show123, (True, 12.3): None, (True, 456): show456, (True, 789): show789}
    unicode_test_cases = {(False, u''): None, (False, u'123'): None, (True, u''): None, (True, u'123'): None}
    for tests in (test_cases, unicode_test_cases):
        for ((use_shows, indexer_id), result) in six.iteritems(tests):
            if use_shows:
                self.assertEqual(Show.find(shows, indexer_id), result)
            else:
                self.assertEqual(Show.find(None, indexer_id), result)
    with self.assertRaises(MultipleShowObjectsException):
        Show.find(shows_duplicate, 456)
