Пример #1
0
    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()), [])
Пример #2
0
    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()), [])
Пример #3
0
    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())
Пример #4
0
    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())
Пример #5
0
    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())
Пример #6
0
    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())
Пример #7
0
    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())
Пример #8
0
    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())