housekeep: centralize datetime generation

Signed-off-by: Kevin Morris <kevr@0cost.org>
This commit is contained in:
Kevin Morris 2022-01-18 05:59:52 -08:00
parent 7bcc8d7ce7
commit 7f6c23d4cb
No known key found for this signature in database
GPG key ID: F7E46DED420788F3
41 changed files with 146 additions and 179 deletions

View file

@ -13,7 +13,7 @@ from fastapi.testclient import TestClient
import aurweb.models.account_type as at
from aurweb import captcha, db, logging
from aurweb import captcha, db, logging, time
from aurweb.asgi import app
from aurweb.db import create, query
from aurweb.models.accepted_term import AcceptedTerm
@ -155,7 +155,7 @@ def test_post_passreset_user(client: TestClient, user: User):
def test_post_passreset_resetkey(client: TestClient, user: User):
with db.begin():
user.session = Session(UsersID=user.ID, SessionID="blah",
LastUpdateTS=datetime.utcnow().timestamp())
LastUpdateTS=time.utcnow())
# Prepare a password reset.
with client as request:

View file

@ -1,12 +1,10 @@
from datetime import datetime
import fastapi
import pytest
from fastapi import HTTPException
from sqlalchemy.exc import IntegrityError
from aurweb import config, db
from aurweb import config, db, time
from aurweb.auth import AnonymousUser, BasicAuthBackend, _auth_required, account_type_required
from aurweb.models.account_type import USER, USER_ID
from aurweb.models.session import Session
@ -55,7 +53,7 @@ async def test_auth_backend_invalid_sid(backend: BasicAuthBackend):
@pytest.mark.asyncio
async def test_auth_backend_invalid_user_id():
# Create a new session with a fake user id.
now_ts = datetime.utcnow().timestamp()
now_ts = time.utcnow()
with pytest.raises(IntegrityError):
Session(UsersID=666, SessionID="realSession",
LastUpdateTS=now_ts + 5)
@ -65,7 +63,7 @@ async def test_auth_backend_invalid_user_id():
async def test_basic_auth_backend(user: User, backend: BasicAuthBackend):
# This time, everything matches up. We expect the user to
# equal the real_user.
now_ts = datetime.utcnow().timestamp()
now_ts = time.utcnow()
with db.begin():
db.create(Session, UsersID=user.ID, SessionID="realSession",
LastUpdateTS=now_ts + 5)
@ -87,7 +85,7 @@ async def test_expired_session(backend: BasicAuthBackend, user: User):
# Set Session.LastUpdateTS to 20 seconds expired.
timeout = config.getint("options", "login_timeout")
now_ts = int(datetime.utcnow().timestamp())
now_ts = time.utcnow()
with db.begin():
request.user.session.LastUpdateTS = now_ts - timeout - 20

View file

@ -1,6 +1,5 @@
import re
from datetime import datetime
from http import HTTPStatus
from unittest import mock
@ -10,7 +9,7 @@ from fastapi.testclient import TestClient
import aurweb.config
from aurweb import db
from aurweb import db, time
from aurweb.asgi import app
from aurweb.models.account_type import USER_ID
from aurweb.models.session import Session
@ -200,7 +199,7 @@ def test_login_remember_me(client: TestClient, user: User):
cookie_timeout = aurweb.config.getint(
"options", "persistent_cookie_timeout")
now_ts = int(datetime.utcnow().timestamp())
now_ts = time.utcnow()
session = db.query(Session).filter(Session.UsersID == user.ID).first()
# Expect that LastUpdateTS is not past the cookie timeout
@ -294,7 +293,7 @@ def test_generate_unique_sid_exhausted(client: TestClient, user: User,
This exercises the bad path of /login, where we can't find a unique
SID to assign the user.
"""
now = int(datetime.utcnow().timestamp())
now = time.utcnow()
with db.begin():
# Create a second user; we'll login with this one.
user2 = db.create(User, Username="test2", Email="test2@example.org",

View file

@ -1,17 +1,17 @@
from datetime import datetime
from zoneinfo import ZoneInfo
from aurweb import filters
from aurweb import filters, time
def test_timestamp_to_datetime():
ts = datetime.utcnow().timestamp()
ts = time.utcnow()
dt = datetime.utcfromtimestamp(int(ts))
assert filters.timestamp_to_datetime(ts) == dt
def test_as_timezone():
ts = datetime.utcnow().timestamp()
ts = time.utcnow()
dt = filters.timestamp_to_datetime(ts)
assert filters.as_timezone(dt, "UTC") == dt.astimezone(tz=ZoneInfo("UTC"))

View file

@ -1,6 +1,5 @@
import re
from datetime import datetime
from http import HTTPStatus
from unittest.mock import patch
@ -8,7 +7,7 @@ import pytest
from fastapi.testclient import TestClient
from aurweb import db
from aurweb import db, time
from aurweb.asgi import app
from aurweb.models.account_type import USER_ID
from aurweb.models.package import Package
@ -62,7 +61,7 @@ def packages(user):
# For i..num_packages, create a package named pkg_{i}.
pkgs = []
now = int(datetime.utcnow().timestamp())
now = time.utcnow()
with db.begin():
for i in range(num_packages):
pkgbase = db.create(PackageBase, Name=f"pkg_{i}",
@ -184,7 +183,7 @@ def test_homepage_dashboard(redis, packages, user):
def test_homepage_dashboard_requests(redis, packages, user):
now = int(datetime.utcnow().timestamp())
now = time.utcnow()
pkg = packages[0]
reqtype = db.query(RequestType, RequestType.ID == DELETION_ID).first()
@ -210,7 +209,7 @@ def test_homepage_dashboard_flagged_packages(redis, packages, user):
# Set the first Package flagged by setting its OutOfDateTS column.
pkg = packages[0]
with db.begin():
pkg.PackageBase.OutOfDateTS = int(datetime.utcnow().timestamp())
pkg.PackageBase.OutOfDateTS = time.utcnow()
cookies = {"AURSID": user.login(Request(), "testPassword")}
with client as request:

View file

@ -1,11 +1,10 @@
from datetime import datetime
from logging import ERROR
from typing import List
from unittest import mock
import pytest
from aurweb import config, db, models
from aurweb import config, db, models, time
from aurweb.models import Package, PackageBase, PackageRequest, User
from aurweb.models.account_type import TRUSTED_USER_ID, USER_ID
from aurweb.models.request_type import ORPHAN_ID
@ -48,7 +47,7 @@ def user2() -> User:
@pytest.fixture
def pkgbases(user: User) -> List[PackageBase]:
now = int(datetime.utcnow().timestamp())
now = time.utcnow()
output = []
with db.begin():

View file

@ -1,10 +1,8 @@
from datetime import datetime
import pytest
from sqlalchemy.exc import IntegrityError
from aurweb import db
from aurweb import db, time
from aurweb.models.account_type import USER_ID
from aurweb.models.package_base import PackageBase
from aurweb.models.package_request import (ACCEPTED, ACCEPTED_ID, CLOSED, CLOSED_ID, PENDING, PENDING_ID, REJECTED,
@ -54,7 +52,7 @@ def test_package_request_creation(user: User, pkgbase: PackageBase):
def test_package_request_closed(user: User, pkgbase: PackageBase):
ts = int(datetime.utcnow().timestamp())
ts = time.utcnow()
with db.begin():
package_request = db.create(PackageRequest, ReqTypeID=MERGE_ID,
User=user, PackageBase=pkgbase,

View file

@ -1,10 +1,8 @@
from datetime import datetime
import pytest
from sqlalchemy.exc import IntegrityError
from aurweb import db
from aurweb import db, time
from aurweb.models.account_type import USER_ID
from aurweb.models.package_base import PackageBase
from aurweb.models.package_vote import PackageVote
@ -33,7 +31,7 @@ def pkgbase(user: User) -> PackageBase:
def test_package_vote_creation(user: User, pkgbase: PackageBase):
ts = int(datetime.utcnow().timestamp())
ts = time.utcnow()
with db.begin():
package_vote = db.create(PackageVote, User=user,

View file

@ -1,6 +1,5 @@
import re
from datetime import datetime
from http import HTTPStatus
from typing import List
from unittest import mock
@ -9,7 +8,7 @@ import pytest
from fastapi.testclient import TestClient
from aurweb import asgi, db
from aurweb import asgi, db, time
from aurweb.models import License, PackageLicense
from aurweb.models.account_type import USER_ID, AccountType
from aurweb.models.dependency_type import DependencyType
@ -116,7 +115,7 @@ def tu_user():
@pytest.fixture
def package(maintainer: User) -> Package:
""" Yield a Package created by user. """
now = int(datetime.utcnow().timestamp())
now = time.utcnow()
with db.begin():
pkgbase = db.create(PackageBase,
Name="test-package",
@ -138,7 +137,7 @@ def pkgbase(package: Package) -> PackageBase:
@pytest.fixture
def target(maintainer: User) -> PackageBase:
""" Merge target. """
now = int(datetime.utcnow().timestamp())
now = time.utcnow()
with db.begin():
pkgbase = db.create(PackageBase, Name="target-package",
Maintainer=maintainer,
@ -166,7 +165,7 @@ def pkgreq(user: User, pkgbase: PackageBase) -> PackageRequest:
@pytest.fixture
def comment(user: User, package: Package) -> PackageComment:
pkgbase = package.PackageBase
now = int(datetime.utcnow().timestamp())
now = time.utcnow()
with db.begin():
comment = db.create(PackageComment,
User=user,
@ -181,7 +180,7 @@ def comment(user: User, package: Package) -> PackageComment:
def packages(maintainer: User) -> List[Package]:
""" Yield 55 packages named pkg_0 .. pkg_54. """
packages_ = []
now = int(datetime.utcnow().timestamp())
now = time.utcnow()
with db.begin():
for i in range(55):
pkgbase = db.create(PackageBase,
@ -293,7 +292,7 @@ def test_package(client: TestClient, package: Package):
def test_package_comments(client: TestClient, user: User, package: Package):
now = (datetime.utcnow().timestamp())
now = (time.utcnow())
with db.begin():
comment = db.create(PackageComment, PackageBase=package.PackageBase,
User=user, Comments="Test comment", CommentTS=now)
@ -847,7 +846,7 @@ def test_packages_sort_by_popularity(client: TestClient,
def test_packages_sort_by_voted(client: TestClient,
maintainer: User,
packages: List[Package]):
now = int(datetime.utcnow().timestamp())
now = time.utcnow()
with db.begin():
db.create(PackageVote, PackageBase=packages[0].PackageBase,
User=maintainer, VoteTS=now)
@ -942,7 +941,7 @@ def test_packages_sort_by_maintainer(client: TestClient,
def test_packages_sort_by_last_modified(client: TestClient,
packages: List[Package]):
now = int(datetime.utcnow().timestamp())
now = time.utcnow()
# Set the first package's ModifiedTS to be 1000 seconds before now.
package = packages[0]
with db.begin():
@ -970,7 +969,7 @@ def test_packages_flagged(client: TestClient, maintainer: User,
packages: List[Package]):
package = packages[0]
now = int(datetime.utcnow().timestamp())
now = time.utcnow()
with db.begin():
package.PackageBase.OutOfDateTS = now
@ -1100,7 +1099,7 @@ def test_packages_post(client: TestClient, user: User, package: Package):
def test_packages_post_unflag(client: TestClient, user: User,
maintainer: User, package: Package):
# Flag `package` as `user`.
now = int(datetime.utcnow().timestamp())
now = time.utcnow()
with db.begin():
package.PackageBase.Flagger = user
package.PackageBase.OutOfDateTS = now
@ -1127,7 +1126,7 @@ def test_packages_post_unflag(client: TestClient, user: User,
assert successes[0].text.strip() == expected
# Re-flag `package` as `user`.
now = int(datetime.utcnow().timestamp())
now = time.utcnow()
with db.begin():
package.PackageBase.Flagger = user
package.PackageBase.OutOfDateTS = now
@ -1453,7 +1452,7 @@ def test_account_comments(client: TestClient, user: User, package: Package):
""" This test may seem out of place, but it requires packages,
so its being included in the packages routes test suite to
leverage existing fixtures. """
now = (datetime.utcnow().timestamp())
now = time.utcnow()
with db.begin():
# This comment's CommentTS is `now + 1`, so it is found in rendered
# HTML before the rendered_comment, which has a CommentTS of `now`.

View file

@ -1,10 +1,8 @@
from datetime import datetime
import pytest
from fastapi.testclient import TestClient
from aurweb import asgi, config, db
from aurweb import asgi, config, db, time
from aurweb.models.account_type import USER_ID
from aurweb.models.official_provider import OFFICIAL_BASE, OfficialProvider
from aurweb.models.package import Package
@ -77,7 +75,7 @@ def test_updated_packages(maintainer: User, package: Package):
def test_query_voted(maintainer: User, package: Package):
now = int(datetime.utcnow().timestamp())
now = time.utcnow()
with db.begin():
db.create(PackageVote, User=maintainer, VoteTS=now,
PackageBase=package.PackageBase)

View file

@ -1,6 +1,5 @@
import re
from datetime import datetime
from http import HTTPStatus
from typing import List
from unittest import mock
@ -10,7 +9,7 @@ import pytest
from fastapi.testclient import TestClient
from sqlalchemy import and_
from aurweb import asgi, db
from aurweb import asgi, db, time
from aurweb.models.account_type import USER_ID, AccountType
from aurweb.models.dependency_type import DependencyType
from aurweb.models.package import Package
@ -115,7 +114,7 @@ def tu_user():
@pytest.fixture
def package(maintainer: User) -> Package:
""" Yield a Package created by user. """
now = int(datetime.utcnow().timestamp())
now = time.utcnow()
with db.begin():
pkgbase = db.create(PackageBase,
Name="test-package",
@ -137,7 +136,7 @@ def pkgbase(package: Package) -> PackageBase:
@pytest.fixture
def target(maintainer: User) -> PackageBase:
""" Merge target. """
now = int(datetime.utcnow().timestamp())
now = time.utcnow()
with db.begin():
pkgbase = db.create(PackageBase, Name="target-package",
Maintainer=maintainer,
@ -165,7 +164,7 @@ def pkgreq(user: User, pkgbase: PackageBase) -> PackageRequest:
@pytest.fixture
def comment(user: User, package: Package) -> PackageComment:
pkgbase = package.PackageBase
now = int(datetime.utcnow().timestamp())
now = time.utcnow()
with db.begin():
comment = db.create(PackageComment,
User=user,
@ -180,7 +179,7 @@ def comment(user: User, package: Package) -> PackageComment:
def packages(maintainer: User) -> List[Package]:
""" Yield 55 packages named pkg_0 .. pkg_54. """
packages_ = []
now = int(datetime.utcnow().timestamp())
now = time.utcnow()
with db.begin():
for i in range(55):
pkgbase = db.create(PackageBase,
@ -258,7 +257,7 @@ def test_pkgbase_voters(client: TestClient, tu_user: User, package: Package):
pkgbase = package.PackageBase
endpoint = f"/pkgbase/{pkgbase.Name}/voters"
now = int(datetime.utcnow().timestamp())
now = time.utcnow()
with db.begin():
db.create(PackageVote, User=tu_user, PackageBase=pkgbase, VoteTS=now)
@ -279,7 +278,7 @@ def test_pkgbase_voters_unauthorized(client: TestClient, user: User,
pkgbase = package.PackageBase
endpoint = f"/pkgbase/{pkgbase.Name}/voters"
now = int(datetime.utcnow().timestamp())
now = time.utcnow()
with db.begin():
db.create(PackageVote, User=user, PackageBase=pkgbase, VoteTS=now)
@ -303,7 +302,7 @@ def test_pkgbase_comment_not_found(client: TestClient, maintainer: User,
def test_pkgbase_comment_form_unauthorized(client: TestClient, user: User,
maintainer: User, package: Package):
now = int(datetime.utcnow().timestamp())
now = time.utcnow()
with db.begin():
comment = db.create(PackageComment, PackageBase=package.PackageBase,
User=maintainer, Comments="Test",

View file

@ -1,9 +1,8 @@
from datetime import datetime
from typing import List
import pytest
from aurweb import db
from aurweb import db, time
from aurweb.models import Package, PackageBase, User
from aurweb.models.account_type import USER_ID
from aurweb.scripts import pkgmaint
@ -26,7 +25,7 @@ def user() -> User:
def packages(user: User) -> List[Package]:
output = []
now = int(datetime.utcnow().timestamp())
now = time.utcnow()
with db.begin():
for i in range(5):
pkgbase = db.create(PackageBase, Name=f"pkg_{i}",

View file

@ -1,9 +1,8 @@
from datetime import datetime
from unittest import mock
import pytest
from aurweb import config, db, logging
from aurweb import config, db, logging, time
from aurweb.models import Package, PackageBase, PackageComment, User
from aurweb.models.account_type import USER_ID
from aurweb.scripts import rendercomment
@ -39,7 +38,7 @@ def user() -> User:
@pytest.fixture
def pkgbase(user: User) -> PackageBase:
now = int(datetime.utcnow().timestamp())
now = time.utcnow()
with db.begin():
pkgbase = db.create(PackageBase, Packager=user, Name="pkgbase_0",
SubmittedTS=now, ModifiedTS=now)

View file

@ -1,6 +1,5 @@
import re
from datetime import datetime
from http import HTTPStatus
from logging import DEBUG
from typing import List
@ -10,7 +9,7 @@ import pytest
from fastapi import HTTPException
from fastapi.testclient import TestClient
from aurweb import asgi, config, db, defaults
from aurweb import asgi, config, db, defaults, time
from aurweb.models import Package, PackageBase, PackageRequest, User
from aurweb.models.account_type import TRUSTED_USER_ID, USER_ID
from aurweb.models.package_notification import PackageNotification
@ -94,7 +93,7 @@ def maintainer() -> User:
def packages(maintainer: User) -> List[Package]:
""" Yield 55 packages named pkg_0 .. pkg_54. """
packages_ = []
now = int(datetime.utcnow().timestamp())
now = time.utcnow()
with db.begin():
for i in range(55):
pkgbase = db.create(PackageBase,
@ -148,7 +147,7 @@ def create_pkgbase(user: User, name: str) -> PackageBase:
:param name: PackageBase.Name
:return: PackageBase instance
"""
now = int(datetime.utcnow().timestamp())
now = time.utcnow()
with db.begin():
pkgbase = db.create(PackageBase, Name=name,
Maintainer=user, Packager=user,
@ -185,7 +184,7 @@ def create_request(reqtype_id: int, user: User, pkgbase: PackageBase,
:param comments: PackageRequest.Comments
:return: PackageRequest instance
"""
now = int(datetime.utcnow().timestamp())
now = time.utcnow()
with db.begin():
pkgreq = db.create(PackageRequest, ReqTypeID=reqtype_id,
User=user, PackageBase=pkgbase,
@ -274,7 +273,7 @@ def test_request_post_deletion_autoaccept(client: TestClient, auser: User,
""" Test the request route for deletion as maintainer. """
caplog.set_level(DEBUG)
now = int(datetime.utcnow().timestamp())
now = time.utcnow()
auto_delete_age = config.getint("options", "auto_delete_age")
with db.begin():
pkgbase.ModifiedTS = now - auto_delete_age + 100
@ -503,7 +502,7 @@ def test_orphan_request(client: TestClient, user: User, tu_user: User,
pkgbase: PackageBase, pkgreq: PackageRequest):
""" Test the standard orphan request route. """
idle_time = config.getint("options", "request_idle_time")
now = int(datetime.utcnow().timestamp())
now = time.utcnow()
with db.begin():
pkgreq.ReqTypeID = ORPHAN_ID
# Set the request time so it's seen as due (idle_time has passed).
@ -532,7 +531,7 @@ def test_request_post_orphan_autogenerated_closure(client: TestClient,
pkgbase: PackageBase,
pkgreq: PackageRequest):
idle_time = config.getint("options", "request_idle_time")
now = int(datetime.utcnow().timestamp())
now = time.utcnow()
with db.begin():
pkgreq.ReqTypeID = ORPHAN_ID
# Set the request time so it's seen as due (idle_time has passed).
@ -559,7 +558,7 @@ def test_request_post_orphan_autoaccept(client: TestClient, auser: User,
caplog: pytest.LogCaptureFixture):
""" Test the standard pkgbase request route GET method. """
caplog.set_level(DEBUG)
now = int(datetime.utcnow().timestamp())
now = time.utcnow()
auto_orphan_age = config.getint("options", "auto_orphan_age")
with db.begin():
pkgbase.OutOfDateTS = now - auto_orphan_age - 100

View file

@ -1,6 +1,5 @@
import re
from datetime import datetime
from http import HTTPStatus
from typing import List
from unittest import mock
@ -14,7 +13,7 @@ from redis.client import Pipeline
import aurweb.models.dependency_type as dt
import aurweb.models.relation_type as rt
from aurweb import asgi, config, db, rpc, scripts
from aurweb import asgi, config, db, rpc, scripts, time
from aurweb.models.account_type import USER_ID
from aurweb.models.license import License
from aurweb.models.package import Package
@ -112,7 +111,7 @@ def packages(user: User, user2: User, user3: User) -> List[Package]:
PackageBase=output[0].PackageBase,
Keyword=keyword)
now = int(datetime.utcnow().timestamp())
now = time.utcnow()
for user_ in [user, user2, user3]:
db.create(PackageVote, User=user_,
PackageBase=output[0].PackageBase, VoteTS=now)

View file

@ -1,4 +1,3 @@
from datetime import datetime
from http import HTTPStatus
import lxml.etree
@ -6,7 +5,7 @@ import pytest
from fastapi.testclient import TestClient
from aurweb import db, logging
from aurweb import db, logging, time
from aurweb.asgi import app
from aurweb.models.account_type import AccountType
from aurweb.models.package import Package
@ -40,7 +39,7 @@ def user():
@pytest.fixture
def packages(user):
pkgs = []
now = int(datetime.utcnow().timestamp())
now = time.utcnow()
# Create 101 packages; we limit 100 on RSS feeds.
with db.begin():

View file

@ -1,12 +1,11 @@
""" Test our Session model. """
from datetime import datetime
from unittest import mock
import pytest
from sqlalchemy.exc import IntegrityError
from aurweb import db
from aurweb import db, time
from aurweb.models.account_type import USER_ID
from aurweb.models.session import Session, generate_unique_sid
from aurweb.models.user import User
@ -30,7 +29,7 @@ def user() -> User:
def session(user: User) -> Session:
with db.begin():
session = db.create(Session, User=user, SessionID="testSession",
LastUpdateTS=datetime.utcnow().timestamp())
LastUpdateTS=time.utcnow())
yield session
@ -48,7 +47,7 @@ def test_session_cs():
with db.begin():
session_cs = db.create(Session, User=user2, SessionID="TESTSESSION",
LastUpdateTS=datetime.utcnow().timestamp())
LastUpdateTS=time.utcnow())
assert session_cs.SessionID == "TESTSESSION"
assert session_cs.SessionID != "testSession"

View file

@ -1,13 +1,12 @@
import re
from datetime import datetime
from typing import Any, Dict
import pytest
import aurweb.filters # noqa: F401
from aurweb import config, db, templates
from aurweb import config, db, templates, time
from aurweb.filters import as_timezone, number_format
from aurweb.filters import timestamp_to_datetime as to_dt
from aurweb.models import Package, PackageBase, User
@ -59,7 +58,7 @@ def user(db_test) -> User:
@pytest.fixture
def pkgbase(user: User) -> PackageBase:
now = int(datetime.utcnow().timestamp())
now = time.utcnow()
with db.begin():
pkgbase = db.create(PackageBase, Name="test-pkg", Maintainer=user,
SubmittedTS=now, ModifiedTS=now)

View file

@ -1,6 +1,5 @@
import re
from datetime import datetime
from http import HTTPStatus
from io import StringIO
from typing import Tuple
@ -10,7 +9,7 @@ import pytest
from fastapi.testclient import TestClient
from aurweb import config, db, filters
from aurweb import config, db, filters, time
from aurweb.models.account_type import DEVELOPER_ID, AccountType
from aurweb.models.tu_vote import TUVote
from aurweb.models.tu_voteinfo import TUVoteInfo
@ -111,7 +110,7 @@ def user():
@pytest.fixture
def proposal(user, tu_user):
ts = int(datetime.utcnow().timestamp())
ts = time.utcnow()
agenda = "Test proposal."
start = ts - 5
end = ts + 1000
@ -165,7 +164,7 @@ def test_tu_empty_index(client, tu_user):
def test_tu_index(client, tu_user):
ts = int(datetime.utcnow().timestamp())
ts = time.utcnow()
# Create some test votes: (Agenda, Start, End).
votes = [
@ -258,7 +257,7 @@ def test_tu_index(client, tu_user):
def test_tu_index_table_paging(client, tu_user):
ts = int(datetime.utcnow().timestamp())
ts = time.utcnow()
with db.begin():
for i in range(25):
@ -366,7 +365,7 @@ def test_tu_index_table_paging(client, tu_user):
def test_tu_index_sorting(client, tu_user):
ts = int(datetime.utcnow().timestamp())
ts = time.utcnow()
with db.begin():
for i in range(2):
@ -436,7 +435,7 @@ def test_tu_index_sorting(client, tu_user):
def test_tu_index_last_votes(client, tu_user, user):
ts = int(datetime.utcnow().timestamp())
ts = time.utcnow()
with db.begin():
# Create a proposal which has ended.
@ -584,7 +583,7 @@ def test_tu_running_proposal(client: TestClient,
def test_tu_ended_proposal(client, proposal):
tu_user, user, voteinfo = proposal
ts = int(datetime.utcnow().timestamp())
ts = time.utcnow()
with db.begin():
voteinfo.End = ts - 5 # 5 seconds ago.

View file

@ -1,10 +1,8 @@
from datetime import datetime
import pytest
from sqlalchemy.exc import IntegrityError
from aurweb import db
from aurweb import db, time
from aurweb.models.account_type import TRUSTED_USER_ID
from aurweb.models.tu_vote import TUVote
from aurweb.models.tu_voteinfo import TUVoteInfo
@ -27,7 +25,7 @@ def user() -> User:
@pytest.fixture
def tu_voteinfo(user: User) -> TUVoteInfo:
ts = int(datetime.utcnow().timestamp())
ts = time.utcnow()
with db.begin():
tu_voteinfo = db.create(TUVoteInfo, Agenda="Blah blah.",
User=user.Username,

View file

@ -1,10 +1,8 @@
from datetime import datetime
import pytest
from sqlalchemy.exc import IntegrityError
from aurweb import db
from aurweb import db, time
from aurweb.db import create, rollback
from aurweb.models.account_type import TRUSTED_USER_ID
from aurweb.models.tu_voteinfo import TUVoteInfo
@ -26,7 +24,7 @@ def user() -> User:
def test_tu_voteinfo_creation(user: User):
ts = int(datetime.utcnow().timestamp())
ts = time.utcnow()
with db.begin():
tu_voteinfo = create(TUVoteInfo,
Agenda="Blah blah.",
@ -50,7 +48,7 @@ def test_tu_voteinfo_creation(user: User):
def test_tu_voteinfo_is_running(user: User):
ts = int(datetime.utcnow().timestamp())
ts = time.utcnow()
with db.begin():
tu_voteinfo = create(TUVoteInfo,
Agenda="Blah blah.",
@ -66,7 +64,7 @@ def test_tu_voteinfo_is_running(user: User):
def test_tu_voteinfo_total_votes(user: User):
ts = int(datetime.utcnow().timestamp())
ts = time.utcnow()
with db.begin():
tu_voteinfo = create(TUVoteInfo,
Agenda="Blah blah.",

View file

@ -1,9 +1,8 @@
from datetime import datetime
from typing import Tuple
import pytest
from aurweb import config, db
from aurweb import config, db, time
from aurweb.models import TUVote, TUVoteInfo, User
from aurweb.models.account_type import TRUSTED_USER_ID
from aurweb.scripts import tuvotereminder as reminder
@ -56,7 +55,7 @@ def user3() -> User:
@pytest.fixture
def voteinfo(user: User) -> TUVoteInfo:
now = int(datetime.utcnow().timestamp())
now = time.utcnow()
start = config.getint("tuvotereminder", "range_start")
with db.begin():
voteinfo = db.create(TUVoteInfo, Agenda="Lorem ipsum.",

View file

@ -1,8 +1,6 @@
from datetime import datetime
import pytest
from aurweb import db
from aurweb import db, time
from aurweb.models import User
from aurweb.models.account_type import USER_ID
from aurweb.scripts import usermaint
@ -24,7 +22,7 @@ def user() -> User:
def test_usermaint_noop(user: User):
""" Last[SSH]Login isn't expired in this test: usermaint is noop. """
now = int(datetime.utcnow().timestamp())
now = time.utcnow()
with db.begin():
user.LastLoginIPAddress = "127.0.0.1"
user.LastLogin = now - 10
@ -45,7 +43,7 @@ def test_usermaint(user: User):
its code path.
"""
now = int(datetime.utcnow().timestamp())
now = time.utcnow()
limit_to = now - 86400 * 7
with db.begin():
user.LastLoginIPAddress = "127.0.0.1"