mirror of
https://gitlab.alpinelinux.org/alpine/aports.git
synced 2025-08-07 14:27:10 +02:00
123 lines
5.0 KiB
Diff
123 lines
5.0 KiB
Diff
From 2cbf3f24fd6b300c2d6ce2aa2921cea95a606d61 Mon Sep 17 00:00:00 2001
|
|
From: Steve Kowalik <steven@wedontsleep.org>
|
|
Date: Sat, 3 Feb 2024 12:14:56 +1100
|
|
Subject: [PATCH] Stop using datetime.utcnow() in tests
|
|
|
|
datetime.utcnow() is deprecated for Python 3.12+, and raises a warning.
|
|
Since warnings are treated as errors, this results in test failures.
|
|
Since utcnow calls are done by the SQLAlchemy mapping machinery, we need
|
|
to use a function.
|
|
|
|
Fixes #1303
|
|
---
|
|
tests/test_model.py | 37 +++++++++++++++++++------------------
|
|
1 file changed, 19 insertions(+), 18 deletions(-)
|
|
|
|
diff --git a/tests/test_model.py b/tests/test_model.py
|
|
index 0968a1e2..fc56d28d 100644
|
|
--- a/tests/test_model.py
|
|
+++ b/tests/test_model.py
|
|
@@ -2,6 +2,7 @@
|
|
|
|
import typing as t
|
|
from datetime import datetime
|
|
+from datetime import timezone
|
|
|
|
import pytest
|
|
import sqlalchemy as sa
|
|
@@ -14,6 +15,10 @@
|
|
from flask_sqlalchemy.model import Model
|
|
|
|
|
|
+def utc_now() -> datetime:
|
|
+ return datetime.now(tz=timezone.utc)
|
|
+
|
|
+
|
|
def test_default_model_class_1x(app: Flask) -> None:
|
|
db = SQLAlchemy(app)
|
|
|
|
@@ -147,12 +152,12 @@ def test_abstractmodel(app: Flask, model_class: t.Any) -> None:
|
|
class TimestampModel(db.Model):
|
|
__abstract__ = True
|
|
created: sa_orm.Mapped[datetime] = sa_orm.mapped_column(
|
|
- db.DateTime, nullable=False, insert_default=datetime.utcnow, init=False
|
|
+ db.DateTime, nullable=False, insert_default=utc_now, init=False
|
|
)
|
|
updated: sa_orm.Mapped[datetime] = sa_orm.mapped_column(
|
|
db.DateTime,
|
|
- insert_default=datetime.utcnow,
|
|
- onupdate=datetime.utcnow,
|
|
+ insert_default=utc_now,
|
|
+ onupdate=utc_now,
|
|
init=False,
|
|
)
|
|
|
|
@@ -167,10 +172,10 @@ class Post(TimestampModel):
|
|
class TimestampModel(db.Model): # type: ignore[no-redef]
|
|
__abstract__ = True
|
|
created: sa_orm.Mapped[datetime] = sa_orm.mapped_column(
|
|
- db.DateTime, nullable=False, default=datetime.utcnow
|
|
+ db.DateTime, nullable=False, default=utc_now
|
|
)
|
|
updated: sa_orm.Mapped[datetime] = sa_orm.mapped_column(
|
|
- db.DateTime, default=datetime.utcnow, onupdate=datetime.utcnow
|
|
+ db.DateTime, default=utc_now, onupdate=utc_now
|
|
)
|
|
|
|
class Post(TimestampModel): # type: ignore[no-redef]
|
|
@@ -181,10 +186,8 @@ class Post(TimestampModel): # type: ignore[no-redef]
|
|
|
|
class TimestampModel(db.Model): # type: ignore[no-redef]
|
|
__abstract__ = True
|
|
- created = db.Column(db.DateTime, nullable=False, default=datetime.utcnow)
|
|
- updated = db.Column(
|
|
- db.DateTime, onupdate=datetime.utcnow, default=datetime.utcnow
|
|
- )
|
|
+ created = db.Column(db.DateTime, nullable=False, default=utc_now)
|
|
+ updated = db.Column(db.DateTime, onupdate=utc_now, default=utc_now)
|
|
|
|
class Post(TimestampModel): # type: ignore[no-redef]
|
|
id = db.Column(db.Integer, primary_key=True)
|
|
@@ -207,12 +210,12 @@ def test_mixinmodel(app: Flask, model_class: t.Any) -> None:
|
|
|
|
class TimestampMixin(sa_orm.MappedAsDataclass):
|
|
created: sa_orm.Mapped[datetime] = sa_orm.mapped_column(
|
|
- db.DateTime, nullable=False, insert_default=datetime.utcnow, init=False
|
|
+ db.DateTime, nullable=False, insert_default=utc_now, init=False
|
|
)
|
|
updated: sa_orm.Mapped[datetime] = sa_orm.mapped_column(
|
|
db.DateTime,
|
|
- insert_default=datetime.utcnow,
|
|
- onupdate=datetime.utcnow,
|
|
+ insert_default=utc_now,
|
|
+ onupdate=utc_now,
|
|
init=False,
|
|
)
|
|
|
|
@@ -226,10 +229,10 @@ class Post(TimestampMixin, db.Model):
|
|
|
|
class TimestampMixin: # type: ignore[no-redef]
|
|
created: sa_orm.Mapped[datetime] = sa_orm.mapped_column(
|
|
- db.DateTime, nullable=False, default=datetime.utcnow
|
|
+ db.DateTime, nullable=False, default=utc_now
|
|
)
|
|
updated: sa_orm.Mapped[datetime] = sa_orm.mapped_column(
|
|
- db.DateTime, default=datetime.utcnow, onupdate=datetime.utcnow
|
|
+ db.DateTime, default=utc_now, onupdate=utc_now
|
|
)
|
|
|
|
class Post(TimestampMixin, db.Model): # type: ignore[no-redef]
|
|
@@ -239,10 +242,8 @@ class Post(TimestampMixin, db.Model): # type: ignore[no-redef]
|
|
else:
|
|
|
|
class TimestampMixin: # type: ignore[no-redef]
|
|
- created = db.Column(db.DateTime, nullable=False, default=datetime.utcnow)
|
|
- updated = db.Column(
|
|
- db.DateTime, onupdate=datetime.utcnow, default=datetime.utcnow
|
|
- )
|
|
+ created = db.Column(db.DateTime, nullable=False, default=utc_now)
|
|
+ updated = db.Column(db.DateTime, onupdate=utc_now, default=utc_now)
|
|
|
|
class Post(TimestampMixin, db.Model): # type: ignore[no-redef]
|
|
id = db.Column(db.Integer, primary_key=True)
|