Ошибка, которую вы делаете, состоит в том, что strptime вызывает ошибку значения, если строка даты не соответствует заданному формату. например:
date_str = '2019/06/09 12:60'
datetime_obj = datetime.datetime.strptime(date_str, '%Y/%m/%d %H:%M')
.
.
ValueError: unconverted data remains: 0
datetime_obj никогда не устанавливается, потому что strptime никогда не возвращает значение.
Также, как отмечалось, вы сравниваете ответ от strptime со строкой inout - это никогда не сработает.
Попробуйте более простой подход:
import datetime
def time_to_datetime(datetimeSTR):
datetime_obj = datetime.datetime.strptime(datetimeSTR, '%Y/%m/%d %H:%M')
return datetime_obj
Или вы можете поймать любое исключение и ререйз (например, плохая практика, но, возможно, стоит сделать это для иллюстрации.
import datetime
def time_to_datetime(datetimeSTR):
try:
datetime_obj = datetime.datetime.strptime(datetimeSTR, '%Y/%m/%d %H:%M')
except ValueErr as err:
print(err)
raise ValueError('The time must have the format YYYY/MM/DD HH:MM')
else:
return datetime_obj
Таким образом, вы видите, как strptime ведет себя для различных входных данных в вашем тесте, и у вас есть обработка ошибок в вашей функции ... хотя, как я уже говорил, пересмотр ошибки является (имо) плохой практикой.