def testExceptionsInImmortalMode(self): """ в бессметрном режиме никакие исключения не рейзятся никогда """ with mock.patch('django.db.models.query.QuerySet.iterator') as \ patched_iterator: patched_iterator.side_effect = OperationalError() qs = SphinxQuerySet(model=TagsIndex) self.assertEqual(list(qs.all()), [])
def testNoRepeatOnUnknownException(self): """ при эксепшне с другим текстом, должны получить ошибку """ with mock.patch('django.db.models.query.QuerySet.iterator') as \ patched_iterator: patched_iterator.side_effect = [OperationalError('some other error'), None] qs = SphinxQuerySet(model=TagsIndex) with self.assertRaises(OperationalError): list(qs.all())
def testRepeatOnSecondException(self): """ в случае, если при повторной попытке итерации опять возникает также самая ошибка, она всетаки должна срейзиться """ with mock.patch('django.db.models.query.QuerySet.iterator') as \ patched_iterator: patched_iterator.side_effect = OperationalError('Connection reset by peer') qs = SphinxQuerySet(model=TagsIndex) with self.assertRaises(OperationalError): list(qs.all())
def testRepeatOnSecondException(self): """ в случае, если при повторной попытке итерации опять возникает также самая ошибка, она всетаки должна срейзиться """ with mock.patch('django.db.models.query.QuerySet.iterator') as \ patched_iterator: patched_iterator.side_effect = OperationalError( 'Connection reset by peer') qs = SphinxQuerySet(model=TagsIndex) with self.assertRaises(OperationalError): list(qs.all())
def testNoRepeatOnUnknownException(self): """ при эксепшне с другим текстом, должны получить ошибку """ with mock.patch('django.db.models.query.QuerySet.iterator') as \ patched_iterator: patched_iterator.side_effect = [ OperationalError('some other error'), None ] qs = SphinxQuerySet(model=TagsIndex) with self.assertRaises(OperationalError): list(qs.all())
def testRepeatOnKnownException(self): """ проверяем механизм попытки повторения операции получения данных QuerySet при определенных ошибках """ tag = TagsIndex.objects.all()[0] with mock.patch('django.db.models.query.QuerySet.iterator') as \ patched_iterator: patched_iterator.side_effect = [OperationalError('Connection reset by peer'), [tag]] qs = SphinxQuerySet(model=TagsIndex) # Exception shall not pass!!! list(qs.all())
def testRepeatOnKnownException(self): """ проверяем механизм попытки повторения операции получения данных QuerySet при определенных ошибках """ tag = TagsIndex.objects.all()[0] with mock.patch('django.db.models.query.QuerySet.iterator') as \ patched_iterator: patched_iterator.side_effect = [ OperationalError('Connection reset by peer'), [tag] ] qs = SphinxQuerySet(model=TagsIndex) # Exception shall not pass!!! list(qs.all())