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')
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)
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( 'Слишком много ошибок в тексте! Проверка уникальности не выполнена.' ) ])
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()