From 5b11706091eff63df9c3c5eb8b3d801f568da5e9 Mon Sep 17 00:00:00 2001 From: MagerOK Date: Fri, 19 May 2023 14:41:21 +0200 Subject: [PATCH 1/2] my_tests --- tests/level_1/test_five_title.py | 5 ++++- tests/level_1/test_four_bank_parser.py | 22 +++++++++++++++++++++- tests/level_1/test_one_gender.py | 4 +++- tests/level_1/test_three_url_builder.py | 4 +++- tests/level_1/test_two_date_parser.py | 8 +++++++- 5 files changed, 38 insertions(+), 5 deletions(-) diff --git a/tests/level_1/test_five_title.py b/tests/level_1/test_five_title.py index fe767004..72ce1818 100644 --- a/tests/level_1/test_five_title.py +++ b/tests/level_1/test_five_title.py @@ -2,4 +2,7 @@ def test_change_copy_item(): - pass + assert change_copy_item('Banana') == 'Copy of Banana' + assert change_copy_item('Copy of Banana') == 'Copy of Banana (2)' + assert change_copy_item('Copy of Banana (7)') == 'Copy of Banana (8)' + 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..fdb4df1d 100644 --- a/tests/level_1/test_one_gender.py +++ b/tests/level_1/test_one_gender.py @@ -2,4 +2,6 @@ def test_genderalize(): - pass + assert genderalize('Ходил', 'Ходила', 'male') == 'Ходил' + assert genderalize('Ходил', 'Ходила', 'female') == 'Ходила' + 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..94c94059 100644 --- a/tests/level_1/test_three_url_builder.py +++ b/tests/level_1/test_three_url_builder.py @@ -2,4 +2,6 @@ def test_build_url(): - pass + assert build_url('https://www.youtube.com', 'watch', get_params={'v':'dQw4w9WgXcQ'}) == 'https://www.youtube.com/watch?v=dQw4w9WgXcQ' + 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..5a80e705 100644 --- a/tests/level_1/test_two_date_parser.py +++ b/tests/level_1/test_two_date_parser.py @@ -1,5 +1,11 @@ from functions.level_1.two_date_parser import compose_datetime_from +from datetime import datetime def test_compose_datetime_from(): - pass + 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)) + 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 From c70c141c67b6fb2c2e7c61e7c64236489437da8e Mon Sep 17 00:00:00 2001 From: MagerOK Date: Thu, 25 May 2023 14:03:25 +0200 Subject: [PATCH 2/2] fixes after first review --- .gitignore | 2 ++ tests/level_1/test_five_title.py | 5 ++++- tests/level_1/test_one_gender.py | 4 +++- tests/level_1/test_three_url_builder.py | 3 ++- tests/level_1/test_two_date_parser.py | 4 +++- 5 files changed, 14 insertions(+), 4 deletions(-) create mode 100644 .gitignore 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 72ce1818..e2ad99d0 100644 --- a/tests/level_1/test_five_title.py +++ b/tests/level_1/test_five_title.py @@ -1,8 +1,11 @@ from functions.level_1.five_title import change_copy_item -def test_change_copy_item(): +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_one_gender.py b/tests/level_1/test_one_gender.py index fdb4df1d..a4ab0975 100644 --- a/tests/level_1/test_one_gender.py +++ b/tests/level_1/test_one_gender.py @@ -1,7 +1,9 @@ from functions.level_1.one_gender import genderalize -def test_genderalize(): +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 94c94059..ce329381 100644 --- a/tests/level_1/test_three_url_builder.py +++ b/tests/level_1/test_three_url_builder.py @@ -1,7 +1,8 @@ from functions.level_1.three_url_builder import build_url -def test_build_url(): +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 5a80e705..9e9fe206 100644 --- a/tests/level_1/test_two_date_parser.py +++ b/tests/level_1/test_two_date_parser.py @@ -2,10 +2,12 @@ from datetime import datetime -def test_compose_datetime_from(): +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