Регрессивное тестирование с учетом даты с использованием Python - PullRequest
0 голосов
/ 29 октября 2010

Привет, я помогаю настроить пакет регрессионного тестирования для нашего веб-приложения на python.Многие из наших тестов - это планирование стиля, где важна текущая дата.Например: создайте повторяющееся событие, которое будет выполняться каждую неделю в течение месяца, начинающегося 1 февраля.

Чтобы проверить это, я действительно хочу переопределить текущую дату, чтобы я мог двигаться вперед и назад ввремя, чтобы проверить состояние приложения.Например, я могу добавить страницу только для тестирования, которая позволяет мне установить «текущую» дату, которая передается на серверную часть Python и используется для вычисления даты.

В прошлом, когда я делал это,Я включил его в архитектуру приложения с первого дня. К сожалению, я опаздываю к этому проекту, и для него нет поддержки приложений.

Итак, вот мой вопрос, есть ли способ переопределить текущийдата вызова веб-службы?Например, могу ли я перехватить вызовы на текущую дату (возможно, исправление обезьяны?).Я бы предпочел не делать целых операций МОК, поскольку это означало бы изменение сотен методов.- Дэйв

Ответы [ 2 ]

1 голос
/ 29 октября 2010

Вы можете сделать что-то вроде этого:

from datetime import datetime
orig_datetime_now = datetime.now

datetime.now = lambda: datetime(2010, 2, 1)

# tests here

datetime.now = orig_datetime_now

Хотя, вероятно, лучше (не связываться со сторонними библиотеками и т. Д.), Добавить вспомогательный метод в ваш класс, чтобы получить текущую дату, и сделать то же самое исправление, как показано выше.

0 голосов
/ 08 ноября 2010

Отвечая на мой вопрос:

Наш текущий план заключается в тестировании на виртуальных машинах и изменении даты / времени на виртуальных машинах. Это более полное решение, поскольку оно получает базу данных и рабочие потоки одновременно.

Я опубликую обновление с некоторым реальным опытом, когда мы начнем делать это.

...