mirror of
https://github.com/GSA/notifications-api.git
synced 2026-01-31 15:15:38 -05:00
replace utcnow with timezone naive utc call
This commit is contained in:
14
app/utils.py
14
app/utils.py
@@ -1,4 +1,4 @@
|
|||||||
from datetime import datetime, timedelta
|
from datetime import datetime, timedelta, timezone
|
||||||
|
|
||||||
from flask import url_for
|
from flask import url_for
|
||||||
from sqlalchemy import func
|
from sqlalchemy import func
|
||||||
@@ -132,3 +132,15 @@ def hilite(message):
|
|||||||
ansi_green = "\033[32m"
|
ansi_green = "\033[32m"
|
||||||
ansi_reset = "\033[0m"
|
ansi_reset = "\033[0m"
|
||||||
return f"{ansi_green}{message}{ansi_reset}"
|
return f"{ansi_green}{message}{ansi_reset}"
|
||||||
|
|
||||||
|
|
||||||
|
def aware_utcnow():
|
||||||
|
return datetime.now(timezone.utc)
|
||||||
|
|
||||||
|
|
||||||
|
def naive_utcnow():
|
||||||
|
return aware_utcnow().replace(tzinfo=None)
|
||||||
|
|
||||||
|
|
||||||
|
def utc_now():
|
||||||
|
return naive_utcnow()
|
||||||
|
|||||||
@@ -8,10 +8,11 @@ Create Date: 2020-12-04 15:06:22.544803
|
|||||||
|
|
||||||
import sqlalchemy as sa
|
import sqlalchemy as sa
|
||||||
from alembic import op
|
from alembic import op
|
||||||
from notifications_utils.template import BroadcastMessageTemplate
|
|
||||||
from sqlalchemy.dialects import postgresql
|
from sqlalchemy.dialects import postgresql
|
||||||
from sqlalchemy.orm.session import Session
|
from sqlalchemy.orm.session import Session
|
||||||
|
|
||||||
|
from notifications_utils.template import BroadcastMessageTemplate
|
||||||
|
|
||||||
revision = "0336_broadcast_msg_content_2"
|
revision = "0336_broadcast_msg_content_2"
|
||||||
down_revision = "0335_broadcast_msg_content"
|
down_revision = "0335_broadcast_msg_content"
|
||||||
|
|
||||||
|
|||||||
@@ -17,9 +17,7 @@ from notifications_utils.formatters import (
|
|||||||
strip_and_remove_obscure_whitespace,
|
strip_and_remove_obscure_whitespace,
|
||||||
)
|
)
|
||||||
from notifications_utils.insensitive_dict import InsensitiveDict
|
from notifications_utils.insensitive_dict import InsensitiveDict
|
||||||
from notifications_utils.international_billing_rates import (
|
from notifications_utils.international_billing_rates import INTERNATIONAL_BILLING_RATES
|
||||||
INTERNATIONAL_BILLING_RATES,
|
|
||||||
)
|
|
||||||
from notifications_utils.postal_address import (
|
from notifications_utils.postal_address import (
|
||||||
address_line_7_key,
|
address_line_7_key,
|
||||||
address_lines_1_to_6_and_postcode_keys,
|
address_lines_1_to_6_and_postcode_keys,
|
||||||
|
|||||||
@@ -43,10 +43,7 @@ from notifications_utils.markdown import (
|
|||||||
notify_letter_preview_markdown,
|
notify_letter_preview_markdown,
|
||||||
notify_plain_text_email_markdown,
|
notify_plain_text_email_markdown,
|
||||||
)
|
)
|
||||||
from notifications_utils.postal_address import (
|
from notifications_utils.postal_address import PostalAddress, address_lines_1_to_7_keys
|
||||||
PostalAddress,
|
|
||||||
address_lines_1_to_7_keys,
|
|
||||||
)
|
|
||||||
from notifications_utils.sanitise_text import SanitiseSMS
|
from notifications_utils.sanitise_text import SanitiseSMS
|
||||||
from notifications_utils.take import Take
|
from notifications_utils.take import Take
|
||||||
from notifications_utils.template_change import TemplateChange
|
from notifications_utils.template_change import TemplateChange
|
||||||
|
|||||||
@@ -12,12 +12,13 @@ from app.dao.services_dao import dao_fetch_service_by_id
|
|||||||
from app.dao.users_dao import create_user_code
|
from app.dao.users_dao import create_user_code
|
||||||
from app.enums import AuthType, CodeType
|
from app.enums import AuthType, CodeType
|
||||||
from app.models import Notification, User, VerifyCode
|
from app.models import Notification, User, VerifyCode
|
||||||
|
from app.utils import utc_now
|
||||||
from tests import create_admin_authorization_header
|
from tests import create_admin_authorization_header
|
||||||
|
|
||||||
|
|
||||||
@freeze_time("2016-01-01T12:00:00")
|
@freeze_time("2016-01-01T12:00:00")
|
||||||
def test_user_verify_sms_code(client, sample_sms_code):
|
def test_user_verify_sms_code(client, sample_sms_code):
|
||||||
sample_sms_code.user.logged_in_at = datetime.utcnow() - timedelta(days=1)
|
sample_sms_code.user.logged_in_at = utc_now() - timedelta(days=1)
|
||||||
assert not VerifyCode.query.first().code_used
|
assert not VerifyCode.query.first().code_used
|
||||||
assert sample_sms_code.user.current_session_id is None
|
assert sample_sms_code.user.current_session_id is None
|
||||||
data = json.dumps(
|
data = json.dumps(
|
||||||
@@ -31,8 +32,8 @@ def test_user_verify_sms_code(client, sample_sms_code):
|
|||||||
)
|
)
|
||||||
assert resp.status_code == 204
|
assert resp.status_code == 204
|
||||||
assert VerifyCode.query.first().code_used
|
assert VerifyCode.query.first().code_used
|
||||||
assert sample_sms_code.user.logged_in_at == datetime.utcnow()
|
assert sample_sms_code.user.logged_in_at == utc_now()
|
||||||
assert sample_sms_code.user.email_access_validated_at != datetime.utcnow()
|
assert sample_sms_code.user.email_access_validated_at != utc_now()
|
||||||
assert sample_sms_code.user.current_session_id is not None
|
assert sample_sms_code.user.current_session_id is not None
|
||||||
|
|
||||||
|
|
||||||
@@ -122,7 +123,7 @@ def test_user_verify_code_expired_code_and_increments_failed_login_count(
|
|||||||
|
|
||||||
@freeze_time("2016-01-01 10:00:00.000000")
|
@freeze_time("2016-01-01 10:00:00.000000")
|
||||||
def test_user_verify_password(client, sample_user):
|
def test_user_verify_password(client, sample_user):
|
||||||
yesterday = datetime.utcnow() - timedelta(days=1)
|
yesterday = utc_now() - timedelta(days=1)
|
||||||
sample_user.logged_in_at = yesterday
|
sample_user.logged_in_at = yesterday
|
||||||
data = json.dumps({"password": "password"})
|
data = json.dumps({"password": "password"})
|
||||||
auth_header = create_admin_authorization_header()
|
auth_header = create_admin_authorization_header()
|
||||||
@@ -288,8 +289,8 @@ def test_send_sms_code_returns_204_when_too_many_codes_already_created(
|
|||||||
verify_code = VerifyCode(
|
verify_code = VerifyCode(
|
||||||
code_type=CodeType.SMS,
|
code_type=CodeType.SMS,
|
||||||
_code=12345,
|
_code=12345,
|
||||||
created_at=datetime.utcnow() - timedelta(minutes=10),
|
created_at=utc_now() - timedelta(minutes=10),
|
||||||
expiry_datetime=datetime.utcnow() + timedelta(minutes=40),
|
expiry_datetime=utc_now() + timedelta(minutes=40),
|
||||||
user=sample_user,
|
user=sample_user,
|
||||||
)
|
)
|
||||||
db.session.add(verify_code)
|
db.session.add(verify_code)
|
||||||
@@ -537,8 +538,8 @@ def test_send_email_code_returns_404_for_bad_input_data(admin_request):
|
|||||||
# we send iAuthType.SMS and AuthType.WEBAUTHN users email code to validate their email access
|
# we send iAuthType.SMS and AuthType.WEBAUTHN users email code to validate their email access
|
||||||
@pytest.mark.parametrize("auth_type", AuthType)
|
@pytest.mark.parametrize("auth_type", AuthType)
|
||||||
def test_user_verify_email_code(admin_request, sample_user, auth_type):
|
def test_user_verify_email_code(admin_request, sample_user, auth_type):
|
||||||
sample_user.logged_in_at = datetime.utcnow() - timedelta(days=1)
|
sample_user.logged_in_at = utc_now() - timedelta(days=1)
|
||||||
sample_user.email_access_validated_at = datetime.utcnow() - timedelta(days=1)
|
sample_user.email_access_validated_at = utc_now() - timedelta(days=1)
|
||||||
sample_user.auth_type = auth_type
|
sample_user.auth_type = auth_type
|
||||||
magic_code = str(uuid.uuid4())
|
magic_code = str(uuid.uuid4())
|
||||||
verify_code = create_user_code(sample_user, magic_code, CodeType.EMAIL)
|
verify_code = create_user_code(sample_user, magic_code, CodeType.EMAIL)
|
||||||
@@ -553,8 +554,8 @@ def test_user_verify_email_code(admin_request, sample_user, auth_type):
|
|||||||
)
|
)
|
||||||
|
|
||||||
assert verify_code.code_used
|
assert verify_code.code_used
|
||||||
assert sample_user.logged_in_at == datetime.utcnow()
|
assert sample_user.logged_in_at == utc_now()
|
||||||
assert sample_user.email_access_validated_at == datetime.utcnow()
|
assert sample_user.email_access_validated_at == utc_now()
|
||||||
assert sample_user.current_session_id is not None
|
assert sample_user.current_session_id is not None
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user