From 7a87658c19e989ecf832e56c553d06f33a7cc491 Mon Sep 17 00:00:00 2001 From: Eugene Myasnikov Date: Tue, 21 Nov 2023 00:32:34 +0300 Subject: [PATCH 1/4] Lesson 1 done --- tests/level_1/test_five_title.py | 26 ++++++++++++-- tests/level_1/test_four_bank_parser.py | 37 ++++++++++++++++++-- tests/level_1/test_one_gender.py | 19 ++++++++-- tests/level_1/test_three_url_builder.py | 26 ++++++++++++-- tests/level_1/test_two_date_parser.py | 46 +++++++++++++++++++++++-- 5 files changed, 144 insertions(+), 10 deletions(-) diff --git a/tests/level_1/test_five_title.py b/tests/level_1/test_five_title.py index fe767004..ec945f02 100644 --- a/tests/level_1/test_five_title.py +++ b/tests/level_1/test_five_title.py @@ -1,5 +1,27 @@ +import pytest + from functions.level_1.five_title import change_copy_item -def test_change_copy_item(): - pass +@pytest.fixture +def base_book(): + return 'Some book name (1234)', 20 + + +@pytest.fixture +def base_copy_book(base_book): + return 'Copy of '+ base_book[0], 100 + + +def test_change_copy_item(base_book: tuple[str, int]): + assert change_copy_item(base_book[0], + base_book[1]) == 'Some book name (1234)' + + +def test_change_copy_long_item(base_book): + assert change_copy_item(base_book[0], 100) == 'Copy of Some book name (1234)' + + +def test_change_copy_item_number(base_copy_book: tuple[str, int]): + assert change_copy_item(base_copy_book[0], base_copy_book[1]) ==\ + 'Copy of Some book name (1235)' \ No newline at end of file diff --git a/tests/level_1/test_four_bank_parser.py b/tests/level_1/test_four_bank_parser.py index df6c1b41..4bb19ef5 100644 --- a/tests/level_1/test_four_bank_parser.py +++ b/tests/level_1/test_four_bank_parser.py @@ -1,5 +1,38 @@ +import datetime +import decimal + +import pytest + from functions.level_1.four_bank_parser import BankCard, SmsMessage, Expense, parse_ineco_expense -def test_parse_ineco_expense(): - pass +@pytest.fixture +def base_sms(): + return SmsMessage( + text='123.45 RUB, 5559123456789012 20.11.23 21:00 SOFA_SHOP authcode 123456', + author='My Bank', + sent_at=datetime.datetime.now() + ) + + +@pytest.fixture +def base_cards(): + return [BankCard( + last_digits='9012', + owner='Eugene' + ), + BankCard( + last_digits='1234', + owner='Daria' + ) + ] + + +def test_parse_ineco_expense(base_sms, base_cards): + assert parse_ineco_expense(base_sms, base_cards) == Expense( + amount=decimal.Decimal('123.45'), + card=BankCard(last_digits='9012', owner='Eugene'), + spent_in='SOFA_SHOP', + spent_at=datetime.datetime.strptime(f'20.11.23 21:00', '%d.%m.%y %H:%M') + ) + diff --git a/tests/level_1/test_one_gender.py b/tests/level_1/test_one_gender.py index 31d0bc7f..45312936 100644 --- a/tests/level_1/test_one_gender.py +++ b/tests/level_1/test_one_gender.py @@ -1,5 +1,20 @@ +import pytest + from functions.level_1.one_gender import genderalize -def test_genderalize(): - pass +@pytest.fixture +def base_gender_data(): + return 'He goes', 'She goes' + + +def test_genderalize_male(base_gender_data): + assert genderalize(base_gender_data[0], base_gender_data[1], 'male') == base_gender_data[0] + + +def test_genderalize_female(base_gender_data): + assert genderalize(base_gender_data[0], base_gender_data[1], 'female') == base_gender_data[1] + + +def test_return_type(): + assert type(genderalize('goes', 'goes', 'male') == type(str)) diff --git a/tests/level_1/test_three_url_builder.py b/tests/level_1/test_three_url_builder.py index bb7b54d2..eb5c2645 100644 --- a/tests/level_1/test_three_url_builder.py +++ b/tests/level_1/test_three_url_builder.py @@ -1,5 +1,27 @@ +import pytest + from functions.level_1.three_url_builder import build_url -def test_build_url(): - pass +@pytest.fixture +def base_url_data(): + return 'some-url.com', 'relative_part' + + +@pytest.fixture +def url_data_params(base_url_data): + return (base_url_data[0], + base_url_data[1], + {'param1': 'value1', 'param2': 'value2'}) + + +def test_build_url(base_url_data): + assert build_url(base_url_data[0], + base_url_data[1]) == 'some-url.com/relative_part' + + +def test_build_url_params(url_data_params: tuple[str, str, dict[str, str]]): + assert build_url(url_data_params[0], + url_data_params[1], + url_data_params[2]) == \ + 'some-url.com/relative_part?param1=value1¶m2=value2' diff --git a/tests/level_1/test_two_date_parser.py b/tests/level_1/test_two_date_parser.py index b0247049..7c9bde06 100644 --- a/tests/level_1/test_two_date_parser.py +++ b/tests/level_1/test_two_date_parser.py @@ -1,5 +1,47 @@ +import datetime + +import pytest + from functions.level_1.two_date_parser import compose_datetime_from -def test_compose_datetime_from(): - pass +@pytest.fixture +def base_date(): + return 'today', '04:20' + + +@pytest.fixture +def future_date(): + return 'tomorrow', '12:00' + + +@pytest.fixture +def wrong_data(): + return '123456', 'asdfghjkl' + + +def test_compose_datetime_from(base_date): + date = datetime.date.today() + assert compose_datetime_from(base_date[0], + base_date[1]) == datetime.datetime(date.year, + date.month, + date.day, + int('04'), + int('20')) + + +def test_compose_datetime_tomorrow(future_date): + date = datetime.date.today() + full_date = datetime.datetime(date.year, + date.month, + date.day, + int('12'), + int('00')) + assert compose_datetime_from(future_date[0], + future_date[1]) - full_date == \ + datetime.timedelta(days=1) + + +def test_compose_datetime_wrong_data(wrong_data): + with pytest.raises(ValueError): + compose_datetime_from(wrong_data[0], wrong_data[1]) From 4b683cf89331acfdd2f85102b7a38d58f99b251d Mon Sep 17 00:00:00 2001 From: Eugene Myasnikov Date: Fri, 24 Nov 2023 17:59:52 +0300 Subject: [PATCH 2/4] Lesson 1 bug fix done --- tests/level_1/test_five_title.py | 33 ++++++++++++++++-------- tests/level_1/test_four_bank_parser.py | 34 +++++++++++++++++-------- tests/level_1/test_one_gender.py | 10 +++++--- tests/level_1/test_three_url_builder.py | 20 +++++++-------- tests/level_1/test_two_date_parser.py | 16 ++++++------ 5 files changed, 72 insertions(+), 41 deletions(-) diff --git a/tests/level_1/test_five_title.py b/tests/level_1/test_five_title.py index ec945f02..e1b7ea84 100644 --- a/tests/level_1/test_five_title.py +++ b/tests/level_1/test_five_title.py @@ -5,23 +5,36 @@ @pytest.fixture def base_book(): - return 'Some book name (1234)', 20 + return {'name': 'Some book name (1234)', 'max_l': 20} @pytest.fixture def base_copy_book(base_book): - return 'Copy of '+ base_book[0], 100 + return {'name': 'Copy of ' + base_book['name'], 'max_l': 100} -def test_change_copy_item(base_book: tuple[str, int]): - assert change_copy_item(base_book[0], - base_book[1]) == 'Some book name (1234)' +def test_change_copy_item(base_book: dict[str, str | int]): + assert change_copy_item(base_book['name'], + base_book['max_l']) == 'Some book name (1234)' -def test_change_copy_long_item(base_book): - assert change_copy_item(base_book[0], 100) == 'Copy of Some book name (1234)' +def test_change_copy_long_item(base_book: dict[str, str | int]): + assert change_copy_item(base_book['name'], 100) == 'Copy of Some book name (1234)' -def test_change_copy_item_number(base_copy_book: tuple[str, int]): - assert change_copy_item(base_copy_book[0], base_copy_book[1]) ==\ - 'Copy of Some book name (1235)' \ No newline at end of file +def test_change_copy_item_number(base_copy_book: dict[str, str | int]): + assert change_copy_item(base_copy_book['name'], base_copy_book['max_l']) ==\ + 'Copy of Some book name (1235)' + + +@pytest.mark.parametrize('name, max_l, expected', + [ + ('Book name 1 (1234)', + 50, + 'Copy of Book name 1 (1234)'), + ('Veeeeeery long book name (1234)', + 15, + 'Veeeeeery long book name (1234)') + ]) +def test_several_items(name, max_l, expected): + assert change_copy_item(name, max_l) == expected diff --git a/tests/level_1/test_four_bank_parser.py b/tests/level_1/test_four_bank_parser.py index 4bb19ef5..80b6d06c 100644 --- a/tests/level_1/test_four_bank_parser.py +++ b/tests/level_1/test_four_bank_parser.py @@ -14,25 +14,39 @@ def base_sms(): sent_at=datetime.datetime.now() ) +@pytest.fixture +def no_card_sms(): + return SmsMessage( + text='123.45 RUB, no_card 20.11.23 21:00 SOFA_SHOP authcode 123456', + author='My Bank', + sent_at=datetime.datetime.now() + ) @pytest.fixture def base_cards(): - return [BankCard( - last_digits='9012', - owner='Eugene' - ), - BankCard( - last_digits='1234', - owner='Daria' - ) - ] + return {'cards': + [ + BankCard( + last_digits='9012', + owner='Eugene' + ), + BankCard( + last_digits='1234', + owner='Daria' + ) + ] + } def test_parse_ineco_expense(base_sms, base_cards): - assert parse_ineco_expense(base_sms, base_cards) == Expense( + assert parse_ineco_expense(base_sms, base_cards['cards']) == Expense( amount=decimal.Decimal('123.45'), card=BankCard(last_digits='9012', owner='Eugene'), spent_in='SOFA_SHOP', spent_at=datetime.datetime.strptime(f'20.11.23 21:00', '%d.%m.%y %H:%M') ) + +def test_parse_no_card(no_card_sms, base_cards): + with pytest.raises(IndexError): + parse_ineco_expense(no_card_sms, base_cards['cards']) diff --git a/tests/level_1/test_one_gender.py b/tests/level_1/test_one_gender.py index 45312936..d9cb954c 100644 --- a/tests/level_1/test_one_gender.py +++ b/tests/level_1/test_one_gender.py @@ -5,15 +5,19 @@ @pytest.fixture def base_gender_data(): - return 'He goes', 'She goes' + return {'male': 'He goes','female': 'She goes', 'sex': 'male'} def test_genderalize_male(base_gender_data): - assert genderalize(base_gender_data[0], base_gender_data[1], 'male') == base_gender_data[0] + assert genderalize(base_gender_data['male'], + base_gender_data['female'], + base_gender_data['sex']) == base_gender_data['male'] def test_genderalize_female(base_gender_data): - assert genderalize(base_gender_data[0], base_gender_data[1], 'female') == base_gender_data[1] + assert genderalize(base_gender_data['male'], + base_gender_data['female'], + 'female') == base_gender_data['female'] def test_return_type(): diff --git a/tests/level_1/test_three_url_builder.py b/tests/level_1/test_three_url_builder.py index eb5c2645..f5020609 100644 --- a/tests/level_1/test_three_url_builder.py +++ b/tests/level_1/test_three_url_builder.py @@ -5,23 +5,23 @@ @pytest.fixture def base_url_data(): - return 'some-url.com', 'relative_part' + return {'base': 'some-url.com','relative': 'relative_part'} @pytest.fixture def url_data_params(base_url_data): - return (base_url_data[0], - base_url_data[1], - {'param1': 'value1', 'param2': 'value2'}) + return {'params': {'param1': 'value1', 'param2': 'value2'}} def test_build_url(base_url_data): - assert build_url(base_url_data[0], - base_url_data[1]) == 'some-url.com/relative_part' + assert build_url(base_url_data['base'], + base_url_data['relative']) == \ + base_url_data['base']+'/'+base_url_data['relative'] -def test_build_url_params(url_data_params: tuple[str, str, dict[str, str]]): - assert build_url(url_data_params[0], - url_data_params[1], - url_data_params[2]) == \ +def test_build_url_params(base_url_data: dict[str, str], + url_data_params: dict[str, dict:[str, str]]): + assert build_url(base_url_data['base'], + base_url_data['relative'], + url_data_params['params']) == \ 'some-url.com/relative_part?param1=value1¶m2=value2' diff --git a/tests/level_1/test_two_date_parser.py b/tests/level_1/test_two_date_parser.py index 7c9bde06..26102e4d 100644 --- a/tests/level_1/test_two_date_parser.py +++ b/tests/level_1/test_two_date_parser.py @@ -7,23 +7,23 @@ @pytest.fixture def base_date(): - return 'today', '04:20' + return {'day': 'today', 'time': '04:20'} @pytest.fixture def future_date(): - return 'tomorrow', '12:00' + return {'day': 'tomorrow', 'time': '12:00'} @pytest.fixture def wrong_data(): - return '123456', 'asdfghjkl' + return {'day': '123456','time': 'asdfghjkl'} def test_compose_datetime_from(base_date): date = datetime.date.today() - assert compose_datetime_from(base_date[0], - base_date[1]) == datetime.datetime(date.year, + assert compose_datetime_from(base_date['day'], + base_date['time']) == datetime.datetime(date.year, date.month, date.day, int('04'), @@ -37,11 +37,11 @@ def test_compose_datetime_tomorrow(future_date): date.day, int('12'), int('00')) - assert compose_datetime_from(future_date[0], - future_date[1]) - full_date == \ + assert compose_datetime_from(future_date['day'], + future_date['time']) - full_date == \ datetime.timedelta(days=1) def test_compose_datetime_wrong_data(wrong_data): with pytest.raises(ValueError): - compose_datetime_from(wrong_data[0], wrong_data[1]) + compose_datetime_from(wrong_data['day'], wrong_data['time']) From 1a940c5320dbc36bd29e95d057c6d90233f0a61e Mon Sep 17 00:00:00 2001 From: Eugene Myasnikov Date: Mon, 27 Nov 2023 17:49:00 +0300 Subject: [PATCH 3/4] Lesson 2 done --- tests/level_2/test_five_replace_word.py | 24 +++++++++++++ tests/level_2/test_four_sentiment.py | 38 +++++++++++++++++++++ tests/level_2/test_one_pr_url.py | 29 ++++++++++++++++ tests/level_2/test_three_first.py | 25 ++++++++++++++ tests/level_2/test_two_date_parser.py | 45 +++++++++++++++++++++++++ 5 files changed, 161 insertions(+) create mode 100644 tests/level_2/test_five_replace_word.py create mode 100644 tests/level_2/test_four_sentiment.py create mode 100644 tests/level_2/test_one_pr_url.py create mode 100644 tests/level_2/test_three_first.py create mode 100644 tests/level_2/test_two_date_parser.py diff --git a/tests/level_2/test_five_replace_word.py b/tests/level_2/test_five_replace_word.py new file mode 100644 index 00000000..af7736fd --- /dev/null +++ b/tests/level_2/test_five_replace_word.py @@ -0,0 +1,24 @@ +import pytest +from functions.level_2.five_replace_word import replace_word + + +@pytest.mark.parametrize('text, word_from, word_to, expected', + [('one two', 'one', 'three', 'three two'), + ('THREE FIVE', 'three', 'six', 'six FIVE')]) +def test__replace_word__success(text, word_from, word_to, expected): + assert replace_word(text, word_from, word_to) == expected + + +@pytest.mark.parametrize('text, word_from, word_to, expected', + [('one two', 'four', 'three', 'one two'), + ('THREE FIVE', 'four', 'six', 'THREE FIVE')]) +def test__replace_word__fail(text, word_from, word_to, expected): + assert replace_word(text, word_from, word_to) == expected + + +@pytest.mark.parametrize('text, word_from, word_to, expected', + [(1, 'four', 'three', AttributeError), + ([1, 2], 'four', 'six', AttributeError)]) +def test__replace_word__error(text: str, word_from, word_to, expected): + with pytest.raises(expected): + replace_word(text, word_from, word_to) \ No newline at end of file diff --git a/tests/level_2/test_four_sentiment.py b/tests/level_2/test_four_sentiment.py new file mode 100644 index 00000000..4e962367 --- /dev/null +++ b/tests/level_2/test_four_sentiment.py @@ -0,0 +1,38 @@ +import pytest +from functions.level_2.four_sentiment import check_tweet_sentiment + + +@pytest.mark.parametrize('text, good_words, bad_words, expected', + [('Bright sun is shining', + {'bright', 'shining'}, + {'fuck', 'shit'}, + 'GOOD'), + ('Bright fuck is shit', + {'bright', 'shining'}, + {'fuck', 'shit'}, + 'BAD')]) +def test__check_tweet_sentiment__success(text: str, good_words: set[str], + bad_words: set[str], expected: str): + assert check_tweet_sentiment(text, good_words, bad_words) == expected + + +@pytest.mark.parametrize('text, good_words, bad_words, expected', + [('Bright sun is shining', + set(), + set(), + None), + ('Bright fuck is shit', + {'bright', 'shining'}, + {'bright', 'shining'}, + None)]) +def test__check_tweet_sentiment__fail(text: str, good_words: set[str], + bad_words: set[str], expected: None): + assert check_tweet_sentiment(text, good_words, bad_words) == expected + + +@pytest.mark.parametrize('text, good_words, bad_words, expected', + [(123, set(), set(), AttributeError)]) +def test__check_tweet_sentiment__error(text: str, good_words: set[str], + bad_words:set[str], expected): + with pytest.raises(expected): + check_tweet_sentiment(text, good_words, bad_words) diff --git a/tests/level_2/test_one_pr_url.py b/tests/level_2/test_one_pr_url.py new file mode 100644 index 00000000..f906cc71 --- /dev/null +++ b/tests/level_2/test_one_pr_url.py @@ -0,0 +1,29 @@ +import pytest +from functions.level_2.one_pr_url import is_github_pull_request_url + +# https://github.com/justatrade/crosses_and_zeros/pull/2 + + +@pytest.mark.parametrize('url, expected', + [('https://github.com/justatrade/oop_bases_challenges/pull/3', True), + ('https://github.com/justatrade/crosses_and_zeros/pull/2', True)]) +def test__is_github_pull_request_url__succses(url: str, expected: bool): + assert is_github_pull_request_url(url) == expected + + +@pytest.mark.parametrize('url, expected', + [('https://pornhub.com/justatrade/oop_bases_challenges/pull/3', False), + ('https://github.com/justatrade/crosses_and_zeros/push/2', False), + ('https://////', False), + ('a/b/c/d/e/f', False), + ('', False)]) +def test__is_github_pull_request_url__fail(url: str, expected: bool): + assert is_github_pull_request_url(url) == expected + + +@pytest.mark.parametrize('not_url, expected', + [(12345, AttributeError), + (123.45, AttributeError)]) +def test__is_github_pull_request_url__value_error(not_url: str, expected): # не смог подобрать тут хинт, чтобы линтер не ругался + with pytest.raises(expected): + is_github_pull_request_url(not_url) diff --git a/tests/level_2/test_three_first.py b/tests/level_2/test_three_first.py new file mode 100644 index 00000000..ded79125 --- /dev/null +++ b/tests/level_2/test_three_first.py @@ -0,0 +1,25 @@ +import pytest +from functions.level_2.three_first import first + + +@pytest.mark.parametrize('items, default, expected', + [([1, 2, 3], 'some_default', 1), + ([1, 2, 3], None, 1)]) +def test__first__success(items, default, expected): + assert first(items, default) == expected + + +@pytest.mark.parametrize('items, default, expected', + [([], 'some_default', 'some_default'), + ([], None, None)]) +def test__first__empty_list(items, default, expected): + assert first(items, default) == expected + + +@pytest.mark.parametrize('items, default, expected', + [(123, 'some_default', TypeError), + ([], 'NOT_SET', AttributeError)]) +def test__first__error(items, default, expected): + with pytest.raises(expected): + first(items, default) + diff --git a/tests/level_2/test_two_date_parser.py b/tests/level_2/test_two_date_parser.py new file mode 100644 index 00000000..6566fd1b --- /dev/null +++ b/tests/level_2/test_two_date_parser.py @@ -0,0 +1,45 @@ +import pytest +from functions.level_2.two_square_equation import solve_square_equation + + +@pytest.mark.parametrize('square_coefficient, linear_coefficient,' + 'const_coefficient, expected', + [(5.0, -8.0, 3.0, (0.6, 1.0)), + (8.0, 2.0, -1.0, (-0.5, 0.25)), + (0.0, 1.0, -4.0, (4.0, None)), + (4.0, 4.0, 1.0, (-0.5, -0.5))]) +def test__two_square_equation__success(square_coefficient, + linear_coefficient, + const_coefficient, + expected): + assert solve_square_equation(square_coefficient, + linear_coefficient, + const_coefficient) == expected + + +@pytest.mark.parametrize('square_coefficient, linear_coefficient,' + 'const_coefficient, expected', + [(1.0, 2.0, 3.0, (None, None))]) +def test__two_square_equation__fail(square_coefficient, + linear_coefficient, + const_coefficient, + expected): + assert solve_square_equation(square_coefficient, + linear_coefficient, + const_coefficient) == expected + + +@pytest.mark.parametrize('square_coefficient, linear_coefficient,' + 'const_coefficient, expected', + [('abc', -8.0, 3.0, TypeError), + (8.0, 'abc', -1.0, TypeError), + (0.0, 1.0, 'abc', TypeError), + (None, None, None, TypeError)]) +def test__two_square_equation__error(square_coefficient, + linear_coefficient, + const_coefficient, + expected): + with pytest.raises(expected): + solve_square_equation(square_coefficient, + linear_coefficient, + const_coefficient) From cbd8c805bc3f3df60e74b0498b422ccfa7802212 Mon Sep 17 00:00:00 2001 From: Eugene Myasnikov Date: Thu, 30 Nov 2023 21:58:09 +0300 Subject: [PATCH 4/4] Level 2 bugfix --- tests/level_2/test_five_replace_word.py | 12 +++++------ tests/level_2/test_four_sentiment.py | 12 +++++------ tests/level_2/test_one_pr_url.py | 12 +++++------ tests/level_2/test_three_first.py | 14 ++++++------- tests/level_2/test_two_date_parser.py | 28 ++++++++++++------------- 5 files changed, 39 insertions(+), 39 deletions(-) diff --git a/tests/level_2/test_five_replace_word.py b/tests/level_2/test_five_replace_word.py index af7736fd..afb765fa 100644 --- a/tests/level_2/test_five_replace_word.py +++ b/tests/level_2/test_five_replace_word.py @@ -16,9 +16,9 @@ def test__replace_word__fail(text, word_from, word_to, expected): assert replace_word(text, word_from, word_to) == expected -@pytest.mark.parametrize('text, word_from, word_to, expected', - [(1, 'four', 'three', AttributeError), - ([1, 2], 'four', 'six', AttributeError)]) -def test__replace_word__error(text: str, word_from, word_to, expected): - with pytest.raises(expected): - replace_word(text, word_from, word_to) \ No newline at end of file +# @pytest.mark.parametrize('text, word_from, word_to, expected', +# [(1, 'four', 'three', AttributeError), +# ([1, 2], 'four', 'six', AttributeError)]) +# def test__replace_word__error(text: str, word_from, word_to, expected): +# with pytest.raises(expected): +# replace_word(text, word_from, word_to) \ No newline at end of file diff --git a/tests/level_2/test_four_sentiment.py b/tests/level_2/test_four_sentiment.py index 4e962367..f1175afe 100644 --- a/tests/level_2/test_four_sentiment.py +++ b/tests/level_2/test_four_sentiment.py @@ -30,9 +30,9 @@ def test__check_tweet_sentiment__fail(text: str, good_words: set[str], assert check_tweet_sentiment(text, good_words, bad_words) == expected -@pytest.mark.parametrize('text, good_words, bad_words, expected', - [(123, set(), set(), AttributeError)]) -def test__check_tweet_sentiment__error(text: str, good_words: set[str], - bad_words:set[str], expected): - with pytest.raises(expected): - check_tweet_sentiment(text, good_words, bad_words) +# @pytest.mark.parametrize('text, good_words, bad_words, expected', +# [(123, set(), set(), AttributeError)]) +# def test__check_tweet_sentiment__error(text: str, good_words: set[str], +# bad_words:set[str], expected): +# with pytest.raises(expected): +# check_tweet_sentiment(text, good_words, bad_words) diff --git a/tests/level_2/test_one_pr_url.py b/tests/level_2/test_one_pr_url.py index f906cc71..f0bc0426 100644 --- a/tests/level_2/test_one_pr_url.py +++ b/tests/level_2/test_one_pr_url.py @@ -21,9 +21,9 @@ def test__is_github_pull_request_url__fail(url: str, expected: bool): assert is_github_pull_request_url(url) == expected -@pytest.mark.parametrize('not_url, expected', - [(12345, AttributeError), - (123.45, AttributeError)]) -def test__is_github_pull_request_url__value_error(not_url: str, expected): # не смог подобрать тут хинт, чтобы линтер не ругался - with pytest.raises(expected): - is_github_pull_request_url(not_url) +# @pytest.mark.parametrize('not_url, expected', +# [(12345, AttributeError), +# (123.45, AttributeError)]) +# def test__is_github_pull_request_url__value_error(not_url: str, expected): # не смог подобрать тут хинт, чтобы линтер не ругался +# with pytest.raises(expected): +# is_github_pull_request_url(not_url) diff --git a/tests/level_2/test_three_first.py b/tests/level_2/test_three_first.py index ded79125..a7bd9bbd 100644 --- a/tests/level_2/test_three_first.py +++ b/tests/level_2/test_three_first.py @@ -16,10 +16,10 @@ def test__first__empty_list(items, default, expected): assert first(items, default) == expected -@pytest.mark.parametrize('items, default, expected', - [(123, 'some_default', TypeError), - ([], 'NOT_SET', AttributeError)]) -def test__first__error(items, default, expected): - with pytest.raises(expected): - first(items, default) - +# @pytest.mark.parametrize('items, default, expected', +# [(123, 'some_default', TypeError), +# ([], 'NOT_SET', AttributeError)]) +# def test__first__error(items, default, expected): +# with pytest.raises(expected): +# first(items, default) +# diff --git a/tests/level_2/test_two_date_parser.py b/tests/level_2/test_two_date_parser.py index 6566fd1b..4b5ca7ca 100644 --- a/tests/level_2/test_two_date_parser.py +++ b/tests/level_2/test_two_date_parser.py @@ -29,17 +29,17 @@ def test__two_square_equation__fail(square_coefficient, const_coefficient) == expected -@pytest.mark.parametrize('square_coefficient, linear_coefficient,' - 'const_coefficient, expected', - [('abc', -8.0, 3.0, TypeError), - (8.0, 'abc', -1.0, TypeError), - (0.0, 1.0, 'abc', TypeError), - (None, None, None, TypeError)]) -def test__two_square_equation__error(square_coefficient, - linear_coefficient, - const_coefficient, - expected): - with pytest.raises(expected): - solve_square_equation(square_coefficient, - linear_coefficient, - const_coefficient) +# @pytest.mark.parametrize('square_coefficient, linear_coefficient,' +# 'const_coefficient, expected', +# [('abc', -8.0, 3.0, TypeError), +# (8.0, 'abc', -1.0, TypeError), +# (0.0, 1.0, 'abc', TypeError), +# (None, None, None, TypeError)]) +# def test__two_square_equation__error(square_coefficient, +# linear_coefficient, +# const_coefficient, +# expected): +# with pytest.raises(expected): +# solve_square_equation(square_coefficient, +# linear_coefficient, +# const_coefficient)