mirror of
https://gitlab.archlinux.org/archlinux/aurweb.git
synced 2025-02-03 10:43:03 +01:00
housekeep: centralize datetime generation
Signed-off-by: Kevin Morris <kevr@0cost.org>
This commit is contained in:
parent
7bcc8d7ce7
commit
7f6c23d4cb
41 changed files with 146 additions and 179 deletions
|
@ -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:
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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"))
|
||||
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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():
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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`.
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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}",
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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():
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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.
|
||||
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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.",
|
||||
|
|
|
@ -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.",
|
||||
|
|
|
@ -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"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue