def test_update_at_wrong_line(): load_fixture('history.rst', 'HISTORY.rst') res = _run(['update', '1.0.6', '--date', 'today', '--at-line', '0']) expect(res.exit_code).to_be_equal(1) expect(res.output).to_be_equal( '"at_line" must be greater or equal to 1.\nAborted!\n' )
def test_update_with_line_too_long(history_dir, history_file): load_fixture_to('history.rst', history_file) add( 'some very long and sophisticated message, which is too long to fit 79' ' characters', history_dir, ) add( 'next message, which also is very long, but should fit into 79' ' characters aaaa', history_dir, ) add( 'let just say Lorem ipsum dolor sit amet consectetur ' 'adipisicing elit, sed do eiusmod tempor incididunt ut labore et ' 'dolore magna aliqua. Ut enim ad minim veniam, quis nostrud ' 'exercitation ullamco', history_dir, ) update( '1.0.6', history_dir, history_file, date='today', prefix='* ', line_length=79, ) content = get_fixture_content('history_update_long_line.rst') with history_file.open() as src: file_content = src.read() expect(content).to_be_equal(file_content)
def test_split_line(): split = split_into_lines expect(split('cha cha cha', 1)).to_be_equal(['cha', 'cha', 'cha']) expect(split('cha cha cha', 2)).to_be_equal(['cha', 'cha', 'cha']) expect(split('cha cha cha', 3)).to_be_equal(['cha', 'cha', 'cha']) expect(split('cha cha cha', 6)).to_be_equal(['cha', 'cha', 'cha']) expect(split('cha cha cha', 7)).to_be_equal(['cha cha', 'cha'])
def test_split_with_words_too_long(): expect(split_into_lines('aaaaaaaaa bbb ccc', 4)).to_be_equal( ['aaaaaaaaa', 'bbb', 'ccc'] ) expect(split_into_lines('bbb ccc aaaaaaaaa ddd', 4)).to_be_equal( ['bbb', 'ccc', 'aaaaaaaaa', 'ddd'] )
def test_basic(self): def fakeRequest(text): expect(text).is_equal('text 123') return [] api = CLanguageTool(request=fakeRequest) expect(api.check('text 123')).is_equal([])
def test_pull_returnSummaryWithoutSpelling(self): def fakeRequest(uid): return {} res = CTextRuPendingRequest(uid='uid', request=fakeRequest, spellRequired=False).pull() expect(res).is_type(CTextRuSummary)
def test_pull_returnSummary(self): def fakeRequest(uid): return {'spell_check': {}} res = CTextRuPendingRequest(uid='uid', request=fakeRequest, spellRequired=True).pull() expect(res).is_type(CTextRuSummary)
def test_update_with_special_headlines(): load_fixture('history_special.rst', 'HISTORY.rst') _run(['add', 'some_message']) _run(['add', 'next message']) _run(['update', '1.0.6', '--date', 'today']) content = get_fixture_content('history_special_after.rst') file_content = get_test_file_content('HISTORY.rst') expect(content).to_be_equal(file_content)
def test_pull_returnSelfIfSpellingNotReady(self): def fakeRequest(uid): expect(uid).is_equal('uid') return {'spell_check': ''} req = CTextRuPendingRequest(uid='uid', request=fakeRequest, spellRequired=True) expect(req.pull()).is_equal(req)
def test_pull_returnSelfIfNone(self): def fakeRequest(uid): expect(uid).is_equal('uid') return None req = CTextRuPendingRequest(uid='uid', request=fakeRequest, spellRequired=True) expect(req.pull()).is_equal(req)
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_update_at_line(): load_fixture('history.rst', 'HISTORY.rst') _run(['add', 'some_message']) _run(['add', 'next message']) _run(['update', '1.0.6', '--date', 'today', '--at-line', '1']) content = get_fixture_content('history_at_line_after.rst') file_content = get_test_file_content('HISTORY.rst') expect(content).to_be_equal(file_content)
def step_impl(context, message): #element = context.driver.find_element_by_id('flash_message') #expect(element.text).to_contain(message) found = WebDriverWait(context.driver, WAIT_SECONDS).until( expected_conditions.text_to_be_present_in_element( (By.ID, 'flash_message'), message ) ) expect(found).to_be(True)
def test_update_empty_file(history_dir, history_file): load_fixture_to('empty.txt', history_file) add('some_message', history_dir) add('next message', history_dir) update('1.0.6', history_dir, history_file, date='today', prefix='* ') content = get_fixture_content('empty_after.rst') with history_file.open() as src: file_content = src.read() expect(content.rstrip('\n')).to_be_equal(file_content.rstrip('\n'))
def test_update_with_special_headlines(history_dir, history_file): load_fixture_to('history_special.rst', history_file) add('some_message', history_dir) add('next message', history_dir) update('1.0.6', history_dir, history_file, date='today', prefix='* ') content = get_fixture_content('history_special_after.rst') with history_file.open() as src: file_content = src.read() expect(content).to_be_equal(file_content)
def test_load_config_when_file_doesnt_exist(): pattern = { 'history_dir': None, 'history_file': None, 'at_line': None, 'line_length': None, } values = get_defaults_from_config_file_if_exists() for key, value in pattern.items(): expect(value).to_be_equal(values.get(key))
def step_impl(context, name): #element = context.driver.find_element_by_id('search_results') #expect(element.text).to_contain(name) found = WebDriverWait(context.driver, WAIT_SECONDS).until( expected_conditions.text_to_be_present_in_element( (By.ID, 'search_results'), name ) ) expect(found).to_be(True)
def step_impl(context, text_string, element_name): element_id = 'promo_' + element_name.lower() #element = context.driver.find_element_by_id(element_id) found = WebDriverWait(context.driver, WAIT_SECONDS).until( expected_conditions.text_to_be_present_in_element_value( (By.ID, element_id), text_string ) ) #expect(element.get_attribute('value')).to_equal(text_string) expect(found).to_be(True)
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')
def test_get_config_from_file(): load_fixture('setup.cfg', 'empty.txt') pattern = { 'history_dir': None, 'history_file': None, 'at_line': None, 'line_length': None, } values = get_defaults_from_config_file_if_exists() for key, value in pattern.items(): expect(value).to_be_equal(values.get(key))
def test_load_config_from_setup_cfg(): load_fixture('setup.cfg', 'setup.cfg') pattern = { 'history_dir': None, 'history_file': 'HISTORY.rst', 'at_line': '42', 'line_length': '92', } values = get_defaults_from_config_file_if_exists() for key, value in pattern.items(): expect(value).to_be_equal(values.get(key))
def test_pyhistory_when_not_in_history_file_directory(): load_fixture('history.rst', 'HISTORY.rst') original_working_dir = os.getcwd() os.makedirs('one/two') os.chdir('one/two') _run(['add', 'some_message']) _run(['add', 'next message']) expect(len(os.listdir(os.getcwd()))).to_be_equal(0) result = _run(['list']) expect(result.output).to_be_equal(_join_lines( ['', '* some_message', '* next message', '']) ) os.chdir(original_working_dir) result = _run(['list']) expect(result.output).to_be_equal(_join_lines( ['', '* some_message', '* next message', '']) ) os.chdir('one/two') _run(['update', '1.0.6', '--date', 'today']) os.chdir(original_working_dir) content = get_fixture_content('history_after.rst') file_content = get_test_file_content('HISTORY.rst') expect(content).to_be_equal(file_content)
def test_list_long_line(): load_fixture('history.rst', 'HISTORY.rst') result = _run([ 'add', 'some very long and sophisticated message, which is too ' 'long to fit 79 characters' ]) result = _run(['list']) expect(result.output).to_be_equal( '\n' '* some very long and sophisticated message, which is too long to ' 'fit 79\n' ' characters\n' '\n' )
def test_assert_raises(meth, value, arg): """Test that method raises an assertion error when evaluated for comparables. """ with raises_assertion() as exc: expect(value, meth(*arg.args, **arg.kargs)) with raises_assertion() as exc: meth(value, *arg.args, **arg.kargs) with raises_assertion() as exc: opts = arg.kargs.copy() opts.update({'msg': 'TEST CUSTOM MESSAGE'}) meth(value, *arg.args, **opts) assert opts['msg'] in str(exc.value)
def _test_update_at_line(history_dir, history_file, at_line, fixture_name): load_fixture_to('history.rst', history_file) add('some_message', history_dir) add('next message', history_dir) update( '1.0.6', history_dir, history_file, date='today', at_line=at_line, prefix='* ', ) content = get_fixture_content(fixture_name) with history_file.open() as src: file_content = src.read() expect(content).to_be_equal(file_content)
def test_update_with_line_too_long(): load_fixture('history.rst', 'HISTORY.rst') _run([ 'add', 'some very long and sophisticated message, which is too ' 'long to fit 79 characters' ]) _run([ 'add', 'next message, which also is very long, but should fit ' 'into 79 characters aaaa' ]) _run([ 'add', 'let just say Lorem ipsum dolor sit amet consectetur ' 'adipisicing elit, sed do eiusmod tempor incididunt ut labore et ' 'dolore magna aliqua. Ut enim ad minim veniam, quis nostrud ' 'exercitation ullamco' ]) _run(['update', '1.0.6', '--date', 'today']) content = get_fixture_content('history_update_long_line.rst') file_content = get_test_file_content('HISTORY.rst') expect(content).to_be_equal(file_content)
def test_basic(self): summary = CtqsErrors([{ 'kind': 'A', 'message': 'error 1' }, { 'kind': 'B', 'message': 'error 2' }, { 'kind': 'A', 'message': 'error 3' }]) expect(summary.asText()).is_equal(''' A - error 1 - error 3 B - error 2 '''.strip())
def test_delete(history_dir, history_file): load_fixture_to('history.rst', history_file) add('some_message', history_dir) add('next message', history_dir) expect(list_(history_dir)).to_be_equal( {1: 'some_message\n', 2: 'next message\n'} ) delete([1], history_dir) expect(list_(history_dir)).to_be_equal({1: 'next message\n'}) add('test', history_dir) add('test2', history_dir) expected_output = {1: 'next message\n', 2: 'test\n', 3: 'test2\n'} expect(list_(history_dir)).to_be_equal(expected_output) delete([10], history_dir) expect(list_(history_dir)).to_be_equal(expected_output) delete([2, 3, 5, 101], history_dir) expect(list_(history_dir)).to_be_equal({1: 'next message\n'})
def test_delete_long_lines(): load_fixture('history.rst', 'HISTORY.rst') _run([ 'add', 'some very long and sophisticated message, which is too ' 'long to fit 79 characters' ]) messages = [ 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', ] for message in messages: _run(['add', message]) _run([ 'add', 'next message, which also is very long, and should not ' 'fit into 79 characters' ]) result = _run(['delete']) expect(result.output).to_be_equal( '\n' '1. some very long and sophisticated message, which is too long ' 'to fit 79\n' ' characters\n' '2. two\n' '3. three\n' '4. four\n' '5. five\n' '6. six\n' '7. seven\n' '8. eight\n' '9. nine\n' '10. next message, which also is very long, and should not fit ' 'into 79\n' ' characters\n' '\n' '(Delete by choosing entries numbers.)\n' )
def test_singleMatch(self): def fakeRequest(text): return [{ 'message': 'message', 'replacements': [], 'context': { 'text': 'text tupo text', 'offset': 5, 'length': 4 }, 'rule': { 'category': { 'name': 'error' } } }] api = CLanguageTool(request=fakeRequest) expect(api.check('')).is_equal([{ 'kind': 'error', 'message': '"text <b>tupo</b> text" - message.' }])
def test_add_list_and_clear(history_dir, history_file): add('some_message', history_dir) expect(list_(history_dir)).to_be_equal({1: 'some_message\n'}) add('next message', history_dir) expect(list_(history_dir)).to_be_equal( {1: 'some_message\n', 2: 'next message\n'} ) clear(history_dir) expect(list_(history_dir)).to_be_equal({})
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'}
def test_expect_chaining(): assert expect(True).Boolean()(assert_truthy) assert expect(True, v.Boolean(), assert_truthy).Truthy()
def test_expect_predicates_raises(value, predicates): """Test that Expect handles multiple predicates that returns boolean values. """ with raises_assertion(): assert expect(value, *predicates)
def test_expect_multiple_assertions(value, assertions): """Test that Expect handles multiple assertions.""" assert expect(value, *assertions)
def test_expect_chain_method_proxy(): for method in [method for method in dir(v) if method[0].isupper() or method[:2] in ('to', 'is')]: assert getattr(v, method) is getattr(expect(None), method).assertion
def test_assert_method(meth, value, arg): """Test that method passes when evaluated for comparables.""" assert expect(value, meth(*arg.args, **arg.kargs)) assert meth(value, *arg.args, **arg.kargs)
def test_expect_predicates(value, predicates): """Test that Expect handles multiple predicates that returns boolean values. """ assert expect(value, *predicates)
def test_expect_predicates_return_none(): assert expect(True, assert_truthy)
(v.IsNone, v.is_none), (v.IsNotNone, v.to_not_be_none), (v.IsNotNone, v.is_not_none), (v.Truthy, v.to_be_truthy), (v.Truthy, v.is_truthy), (v.Falsy, v.to_be_falsy), (v.Falsy, v.is_falsy), (v.Not, v.not_), (v.Not, v.does_not), (v.Not, v.to_fail), (v.Not, v.fails), (v.Predicate, v.does), (v.Predicate, v.to_pass), (v.Predicate, v.passes), (v.All, v.all_), (v.All, v.expect(None).all.assertion), (v.All, v.does_all), (v.All, v.passes_all), (v.NotAll, v.not_all), (v.NotAll, v.does_not_all), (v.NotAll, v.fails_all), (v.Any, v.any_), (v.Any, v.expect(None).any.assertion), (v.Any, v.does_any), (v.Any, v.passes_any), (v.NotAny, v.not_any), (v.NotAny, v.does_not_any), (v.NotAny, v.fails_any), (v.Greater, v.to_be_greater), (v.Greater, v.to_be_greater_than), (v.Greater, v.is_greater),
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 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
def test_list_empty(history_dir, history_file): expect(list_(history_dir)).to_be_equal({})
def test_update_at_negative_line(): load_fixture('history.rst', 'HISTORY.rst') result = _run(['update', '1.0.6', '--date', 'today', '--at-line', '-1']) expect(result.exit_code).to_be_equal(1)
def fakeRequest(uid): expect(uid).is_equal('uid') return None
def fakeRequest(uid): expect(uid).is_equal('uid') return {'spell_check': ''}
def test_expect_chain_invalid_method(method): with pytest.raises(AttributeError): getattr(expect(None), method)
def step_impl(context, message): """ Check the document title for a message """ expect(context.driver.title).to_contain(message)
def test_expect_chain_method_proxy(): for method in [ method for method in dir(v) if method[0].isupper() or method[:2] in ('to', 'is') ]: assert getattr(v, method) is getattr(expect(None), method).assertion
def step_impl(context, name): element = context.driver.find_element_by_id('search_results') error_msg = "I should not see '%s' in '%s'" % (name, element.text) expect(element.text).to_not_contain(name)