Python testing

Выполнен
Заказ
5567870
Раздел
Программирование
Предмет
Тип работы
Антиплагиат
Не указан
Срок сдачи
21 Сен 2023 в 21:55
Цена
700 ₽
Блокировка
5 дней
Размещен
20 Сен 2023 в 14:51
Просмотров
385
Описание работы

from freezegun import freeze_time

from datetime import datetime

import unittest

from module_03_ci_culture_beginning.homework.hw1.hello_word_with_day import app


username = 'username'

weekday = {

0: "Хорошего понедельника",

1: "Хорошего вторника",

2: "Хорошей среды",

3: "Хорошего четверга",

4: "Хорошей пятницы",

5: "Хорошей суббота",

6: "Хорошего воскресенья",

}


class TestDayUsername(unittest.TestCase):

""" Тест корректности дня недели и имени пользователя """


def setUp(self):

""" Инициализация. Функция запускается перед каждым тестом """

app.config['TESTING'] = True

app.config['DEBUG'] = False

self.app = app.test_client()

self.base_url = '/hello-world/'


def test_can_get_correct_username_weekday(self):

""" Тест получения дня недели и имени пользователя """

response = self.app.get(self.base_url + username)

response_text = response.data.decode()

day = datetime.today()

self.assertTrue(username in response_text)

self.assertTrue(str(type(day)) == "")

self.assertNotEqual(username, weekday[day.weekday()])


if __name__ == '__main__':

unittest.main()


Добрый день! Хотелось попросить доделать задачу, а именно:

Мы кое-что забыли проверить, когда писали тест test_can_get_correct_username_with_weekdate: добавьте проверку корректности вернувшегося дня недели.

Советы и рекомендации
  • Что будет, если программа выдаёт неправильный день недели, а в username передать строку ‘Хорошей среды’?
  • Тестировать только сегодняшний день будет неправильным — вдруг у программы семь пятниц на неделе. Но как это сделать, если получение дня недели происходит в самой тестируемой функции? В этом поможет библиотека freezegun. Протестируйте по крайней мере 7 дней.
Что оценивается
  • Для тестирования вернувшегося дня недели создана отдельная функция.
  • Обрабатывается случай, когда в username вводится пожелание хорошего дня.


Вот тут есть пример с контекстным менеджером freezegun:

https://github.com/spulec/freezegun#context-manager

В аргумент можно также передать объект datetime. 

Фишка в том, что на сервере время тоже замораживается, так как мы используем тестовый клиент приложения.

Нужна такая же работа?
  • Разместите заказ
  • Выберите исполнителя
  • Получите результат
Гарантия на работу 1 год
Средний балл 4.96
Стоимость Назначаете сами
Эксперт Выбираете сами
Уникальность работы от 70%
Время выполнения заказа:
8 часов 53 минуты
Выполнен в срок
Нужна аналогичная работа?
Оформи быстрый заказ и узнай стоимость
Гарантированные бесплатные доработки
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Темы журнала
Показать ещё
Прямой эфир