Exemple #1
0
    def test_addPost_valid(self):
        def fakeRequest(url, params):
            expect(url).is_equal('http://api.text.ru/post')
            expect(params['userkey']).is_equal('user key')
            expect(params['text']).is_equal('text 123')
            return {'text_uid': 'text id'}

        api = CTextRuAPI(key='user key', request=fakeRequest)
        expect(api.addPost('text 123')).is_equal('text id')
Exemple #2
0
    def test_getTask_valid(self):
        response = {'result': True}

        def fakeRequest(url, params):
            expect(url).is_equal('http://api.text.ru/post')
            expect(params['userkey']).is_equal('user key')
            expect(params['uid']).is_equal('uid')
            return response

        api = CTextRuAPI(key='user key', request=fakeRequest)
        expect(api.getTask('uid')).is_equal(response)
Exemple #3
0
    def test_addPost_errorRaiseException(self):
        def fakeRequest(url, params):
            return {'error_code': 321, 'error_desc': 'description'}

        api = CTextRuAPI(key='user key', request=fakeRequest)
        try:
            api.addPost('text 123')
        except Exception as e:
            expect(str(e)).is_equal('(Text.Ru) Error #321: description')
        else:
            raise Exception('Exception expected')
class CTextQuality(object):
    def __init__(self, configs):
        self.configs = configs
        self._textRu = CTextRuAPI(configs.TextRu.key)
        self._languagetool = CLanguageTool()

    def TextRu_check(self, text):
        # todo: Возвращать фейковый отчёт с ошибкой и 0% text_unique, если возникла ошибка
        results = self._textRu.check(text)
        while not results.isReady():
            results = results.pull()
            time.sleep(0 if results.isReady() else 5)
        return results

    def evaluate(self, text):
        spelling = self._languagetool.check(text)

        errors = CtqsErrors(spelling)
        if len(spelling) < self.configs.MaxSpellingErrors:
            textRu = self.TextRu_check(text)
            res = [errors, textRu]
            if textRu.text_unique < self.configs.MinUnique:
                res.append(
                    CtqsMessage(
                        '<b>ВНИМАНИЕ!</b> Текст уникален лишь на %.0f%%, а минимальный уровень уникальности - %.0f%%.'
                        % (textRu.text_unique, self.configs.MinUnique)))
            return CtqsJoined(res)

        return CtqsJoined([
            errors,
            CtqsMessage(
                'Слишком много ошибок в тексте! Проверка уникальности не выполнена.'
            )
        ])
Exemple #5
0
    def test_getTask_NoneIfBusy(self):
        def fakeRequest(url, params):
            return {'error_code': 144}

        api = CTextRuAPI(key='user key', request=fakeRequest)
        expect(api.getTask('uid')).is_equal(None)
 def __init__(self, configs):
     self.configs = configs
     self._textRu = CTextRuAPI(configs.TextRu.key)
     self._languagetool = CLanguageTool()