Я пытаюсь написать модульный тест, но я новичок в django и не знаю, как проверить эту функцию. Все, насколько я могу судить, работает при тестировании вручную, но было рекомендовано написать для него единичный тест.Как написать Unit Test в Django
У меня есть эта функция:
def time_encode(hours):
now = timezone.now().replace(second=0, microsecond=0)
remainder = now.minute % 15
delta = (15 - remainder)
timeFrom = now + timedelta(minutes=delta)
timeTo = timeFrom + timedelta(hours=hours)
return (timeFrom, timeTo)
Это вызывается с этой точки зрения:
@csrf_exempt
def emulate_create(request):
args = json.loads(request.body, object_hook=utils._datetime_decoder)
resourceId, count, hours = args['resourceId'], args['count'], args['hours']
print resourceId
timeFrom, timeTo = utils.time_encode(hours)
print timeFrom
reservation = ReservationProspect(
byUser=request.user,
forUser=request.user,
resource=get_object_or_404(Resource, uuid=resourceId),
modality=get_object_or_404(Modality, name="online"),
timeFrom=timeFrom,
timeTo=timeTo,
count=count
)
return HttpResponse(
json.dumps(
[reservation.toDict()],
default=utils._datetime_encoder
)
)
Я чувствую, что я не должен проверить материал в представлении, но я должен проверить функцию time_encode для нескольких тестовых случаев, так как его цель - вернуть timeFrom на ближайший 15-минутный интервал в будущем и timeTo, который является параметром «часов» вдали от timeFrom. Также важно, чтобы дата-время всегда возвращалось с секундами и миллисекундами в ноль. Каковы были бы ваши предложения относительно того, как пройти тестирование этого кода?
Перед тем, как добавить тест, вы должны добавить строку документации, объясняющий назначение функции. –