diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..151121e7 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +env +__pycache__ diff --git a/tests/level_1/test_five_title.py b/tests/level_1/test_five_title.py index fe767004..e2ad99d0 100644 --- a/tests/level_1/test_five_title.py +++ b/tests/level_1/test_five_title.py @@ -1,5 +1,11 @@ from functions.level_1.five_title import change_copy_item -def test_change_copy_item(): - pass +def test__change_copy_item__normal_name(): + assert change_copy_item('Banana') == 'Copy of Banana' +def test__change_copy_item__copy_of_name(): + assert change_copy_item('Copy of Banana') == 'Copy of Banana (2)' +def test__change_copy_item__copy_of_copy_name(): + assert change_copy_item('Copy of Banana (7)') == 'Copy of Banana (8)' +def test__change_copy_item__normal_name_with_lenght(): + assert change_copy_item('Banana', 5) == 'Banana' \ 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..c17d6798 100644 --- a/tests/level_1/test_four_bank_parser.py +++ b/tests/level_1/test_four_bank_parser.py @@ -1,5 +1,25 @@ +import datetime +import decimal + from functions.level_1.four_bank_parser import BankCard, SmsMessage, Expense, parse_ineco_expense def test_parse_ineco_expense(): - pass + sms = SmsMessage( + text="Вы купили 0.23 Эфира, *1234 18.05.23 23:59 MEWWALLET authcode 5005", + author="MewWallet", + sent_at=datetime.datetime.now(), + ) + + cards = [ + BankCard("1234", "Pavel Mager"), + BankCard("5678", "Pavel Mager"), + ] + + expected_output = Expense( + amount=decimal.Decimal("0.23"), + card=cards[0], + spent_in="MEWWALLET", + spent_at=datetime.datetime.strptime("18.05.23 23:59", "%d.%m.%y %H:%M"), + ) + assert parse_ineco_expense(sms, cards) == expected_output \ No newline at end of file diff --git a/tests/level_1/test_one_gender.py b/tests/level_1/test_one_gender.py index 31d0bc7f..a4ab0975 100644 --- a/tests/level_1/test_one_gender.py +++ b/tests/level_1/test_one_gender.py @@ -1,5 +1,9 @@ from functions.level_1.one_gender import genderalize -def test_genderalize(): - pass +def test__genderalize__male(): + assert genderalize('Ходил', 'Ходила', 'male') == 'Ходил' +def test__genderalize__female(): + assert genderalize('Ходил', 'Ходила', 'female') == 'Ходила' +def test__genderalize__something_else(): + assert genderalize('Ходил', 'Ходила', 'banana') == 'Ходила' diff --git a/tests/level_1/test_three_url_builder.py b/tests/level_1/test_three_url_builder.py index bb7b54d2..ce329381 100644 --- a/tests/level_1/test_three_url_builder.py +++ b/tests/level_1/test_three_url_builder.py @@ -1,5 +1,8 @@ from functions.level_1.three_url_builder import build_url -def test_build_url(): - pass +def test__build_url__with_params(): + assert build_url('https://www.youtube.com', 'watch', get_params={'v':'dQw4w9WgXcQ'}) == 'https://www.youtube.com/watch?v=dQw4w9WgXcQ' +def test__build_url__without_params(): + assert build_url('https://github.com', 'MagerOK/testing_exercises') == 'https://github.com/MagerOK/testing_exercises' + diff --git a/tests/level_1/test_two_date_parser.py b/tests/level_1/test_two_date_parser.py index b0247049..9e9fe206 100644 --- a/tests/level_1/test_two_date_parser.py +++ b/tests/level_1/test_two_date_parser.py @@ -1,5 +1,13 @@ from functions.level_1.two_date_parser import compose_datetime_from +from datetime import datetime -def test_compose_datetime_from(): - pass +def test__compose_datetime_from__any_date(): + date = compose_datetime_from('Bla-bla', '11:15') + today = datetime.today() + assert date == datetime(today.year, today.month, today.day, int(date.hour), int(date.minute)) +def test__compose_datetime_from__tomorrow_date(): + today = datetime.today() + date = compose_datetime_from('tomorrow', '13:40') + assert date == datetime(today.year, today.month, today.day + 1, int(date.hour), int(date.minute)) + \ No newline at end of file