API - fix readable duration - fix #62

+ add some tests on user utils
This commit is contained in:
Sam
2021-01-31 10:21:40 +01:00
parent b385ccacbc
commit cd9caa6623
3 changed files with 58 additions and 6 deletions

View File

@ -647,10 +647,11 @@ def request_password_reset() -> Union[Dict, HttpResponse]:
if user:
password_reset_token = user.encode_password_reset_token(user.id)
ui_url = current_app.config['UI_URL']
user_language = 'en' if user.language is None else user.language
email_data = {
'expiration_delay': get_readable_duration(
current_app.config['PASSWORD_TOKEN_EXPIRATION_SECONDS'],
'en' if user.language is None else user.language,
user_language,
),
'username': user.username,
'password_reset_url': (
@ -660,7 +661,7 @@ def request_password_reset() -> Union[Dict, HttpResponse]:
'browser_name': request.user_agent.browser, # type: ignore
}
user_data = {
'language': user.language if user.language else 'en',
'language': user_language,
'email': user.email,
}
reset_password_email.send(user_data, email_data)

View File

@ -156,13 +156,18 @@ def display_readable_file_size(size_in_bytes: Union[float, int]) -> str:
return f'{size_in_bytes} bytes'
def get_readable_duration(duration: int, locale: Optional[str] = 'en') -> str:
def get_readable_duration(duration: int, locale: Optional[str] = None) -> str:
"""
Return readable and localized duration from duration in seconds
"""
if locale is not None and locale != 'en':
_t = humanize.i18n.activate(locale) # noqa
if locale is None:
locale = 'en'
if locale != 'en':
try:
_t = humanize.i18n.activate(locale) # noqa
except FileNotFoundError:
locale = 'en'
readable_duration = humanize.naturaldelta(timedelta(seconds=duration))
if locale is not None and locale != 'en':
if locale != 'en':
humanize.i18n.deactivate()
return readable_duration