housekeep: TU rename - Table/Column names, scripts

TU_VoteInfo -> VoteInfo
TU_Votes -> Votes
TU_VoteInfo.ActiveTUs -> VoteInfo.ActiveUsers

script: tuvotereminder -> votereminder
Signed-off-by: moson <moson@archlinux.org>
This commit is contained in:
moson 2023-09-10 11:19:56 +02:00
parent 87f6791ea8
commit d2d47254b4
No known key found for this signature in database
GPG key ID: 4A4760AB4EE15296
23 changed files with 234 additions and 192 deletions

View file

@ -11,7 +11,7 @@ GIT_AUTH="$TOPLEVEL/aurweb/git/auth.py"
GIT_SERVE="$TOPLEVEL/aurweb/git/serve.py"
GIT_UPDATE="$TOPLEVEL/aurweb/git/update.py"
MKPKGLISTS="$TOPLEVEL/aurweb/scripts/mkpkglists.py"
TUVOTEREMINDER="$TOPLEVEL/aurweb/scripts/tuvotereminder.py"
VOTEREMINDER="$TOPLEVEL/aurweb/scripts/votereminder.py"
PKGMAINT="$TOPLEVEL/aurweb/scripts/pkgmaint.py"
USERMAINT="$TOPLEVEL/aurweb/scripts/usermaint.py"
AURBLUP="$TOPLEVEL/aurweb/scripts/aurblup.py"

View file

@ -544,11 +544,11 @@ This is a test closure comment.
assert email.body == expected
def test_pm_vote_reminders(user: User):
def test_vote_reminders(user: User):
set_tu([user])
vote_id = 1
notif = notify.TUVoteReminderNotification(vote_id)
notif = notify.VoteReminderNotification(vote_id)
notif.send()
assert Email.count() == 1
@ -571,7 +571,7 @@ def test_notify_main(user: User):
set_tu([user])
vote_id = 1
args = ["aurweb-notify", "tu-vote-reminder", str(vote_id)]
args = ["aurweb-notify", "vote-reminder", str(vote_id)]
with mock.patch("sys.argv", args):
notify.main()

View file

@ -9,9 +9,9 @@ from fastapi.testclient import TestClient
from aurweb import config, db, filters, time
from aurweb.models.account_type import DEVELOPER_ID, PACKAGE_MAINTAINER_ID, AccountType
from aurweb.models.tu_vote import TUVote
from aurweb.models.tu_voteinfo import TUVoteInfo
from aurweb.models.user import User
from aurweb.models.vote import Vote
from aurweb.models.voteinfo import VoteInfo
from aurweb.testing.requests import Request
DATETIME_REGEX = r"^[0-9]{4}-[0-9]{2}-[0-9]{2} \(.+\)$"
@ -143,7 +143,7 @@ def proposal(user, pm_user):
with db.begin():
voteinfo = db.create(
TUVoteInfo,
VoteInfo,
Agenda=agenda,
Quorum=0.0,
User=user.Username,
@ -210,7 +210,7 @@ def test_pm_index(client, pm_user):
agenda, start, end = vote
vote_records.append(
db.create(
TUVoteInfo,
VoteInfo,
Agenda=agenda,
User=pm_user.Username,
Submitted=start,
@ -224,8 +224,8 @@ def test_pm_index(client, pm_user):
# Vote on an ended proposal.
vote_record = vote_records[1]
vote_record.Yes += 1
vote_record.ActiveTUs += 1
db.create(TUVote, VoteInfo=vote_record, User=pm_user)
vote_record.ActiveUsers += 1
db.create(Vote, VoteInfo=vote_record, User=pm_user)
cookies = {"AURSID": pm_user.login(Request(), "testPassword")}
with client as request:
@ -347,7 +347,7 @@ def test_pm_index_table_paging(client, pm_user):
for i in range(25):
# Create 25 current votes.
db.create(
TUVoteInfo,
VoteInfo,
Agenda=f"Agenda #{i}",
User=pm_user.Username,
Submitted=(ts - 5),
@ -359,7 +359,7 @@ def test_pm_index_table_paging(client, pm_user):
for i in range(25):
# Create 25 past votes.
db.create(
TUVoteInfo,
VoteInfo,
Agenda=f"Agenda #{25 + i}",
User=pm_user.Username,
Submitted=(ts - 1000),
@ -462,7 +462,7 @@ def test_pm_index_sorting(client, pm_user):
for i in range(2):
# Create 'Agenda #1' and 'Agenda #2'.
db.create(
TUVoteInfo,
VoteInfo,
Agenda=f"Agenda #{i + 1}",
User=pm_user.Username,
Submitted=(ts + 5),
@ -540,21 +540,21 @@ def test_pm_index_last_votes(
with db.begin():
# Create a proposal which has ended.
voteinfo = db.create(
TUVoteInfo,
VoteInfo,
Agenda="Test agenda",
User=user.Username,
Submitted=(ts - 1000),
End=(ts - 5),
Yes=1,
No=1,
ActiveTUs=1,
ActiveUsers=1,
Quorum=0.0,
Submitter=pm_user,
)
# Create a vote on it from pm_user.
db.create(TUVote, VoteInfo=voteinfo, User=pm_user)
db.create(TUVote, VoteInfo=voteinfo, User=pm_user2)
db.create(Vote, VoteInfo=voteinfo, User=pm_user)
db.create(Vote, VoteInfo=voteinfo, User=pm_user2)
# Now, check that pm_user got populated in the .last-votes table.
cookies = {"AURSID": pm_user.login(Request(), "testPassword")}
@ -590,7 +590,7 @@ def test_pm_proposal_not_found(client, pm_user):
def test_pm_proposal_unauthorized(
client: TestClient, user: User, proposal: Tuple[User, User, TUVoteInfo]
client: TestClient, user: User, proposal: Tuple[User, User, VoteInfo]
):
cookies = {"AURSID": user.login(Request(), "testPassword")}
endpoint = f"/package-maintainer/{proposal[2].ID}"
@ -607,12 +607,10 @@ def test_pm_proposal_unauthorized(
assert response.headers.get("location") == "/package-maintainer"
def test_pm_running_proposal(
client: TestClient, proposal: Tuple[User, User, TUVoteInfo]
):
def test_pm_running_proposal(client: TestClient, proposal: Tuple[User, User, VoteInfo]):
pm_user, user, voteinfo = proposal
with db.begin():
voteinfo.ActiveTUs = 1
voteinfo.ActiveUsers = 1
# Initiate an authenticated GET request to /package-maintainer/{proposal_id}.
proposal_id = voteinfo.ID
@ -683,8 +681,8 @@ def test_pm_running_proposal(
# Create a vote.
with db.begin():
db.create(TUVote, VoteInfo=voteinfo, User=pm_user)
voteinfo.ActiveTUs += 1
db.create(Vote, VoteInfo=voteinfo, User=pm_user)
voteinfo.ActiveUsers += 1
voteinfo.Yes += 1
# Make another request now that we've voted.
@ -772,8 +770,8 @@ def test_pm_proposal_vote(client, proposal):
# Check that the proposal record got updated.
assert voteinfo.Yes == yes + 1
# Check that the new TUVote exists.
vote = db.query(TUVote, TUVote.VoteInfo == voteinfo, TUVote.User == pm_user).first()
# Check that the new PMVote exists.
vote = db.query(Vote, Vote.VoteInfo == voteinfo, Vote.User == pm_user).first()
assert vote is not None
root = parse_root(response.text)
@ -784,7 +782,7 @@ def test_pm_proposal_vote(client, proposal):
def test_pm_proposal_vote_unauthorized(
client: TestClient, proposal: Tuple[User, User, TUVoteInfo]
client: TestClient, proposal: Tuple[User, User, VoteInfo]
):
pm_user, user, voteinfo = proposal
@ -846,9 +844,9 @@ def test_pm_proposal_vote_already_voted(client, proposal):
pm_user, user, voteinfo = proposal
with db.begin():
db.create(TUVote, VoteInfo=voteinfo, User=pm_user)
db.create(Vote, VoteInfo=voteinfo, User=pm_user)
voteinfo.Yes += 1
voteinfo.ActiveTUs += 1
voteinfo.ActiveUsers += 1
cookies = {"AURSID": pm_user.login(Request(), "testPassword")}
with client as request:
@ -893,7 +891,7 @@ def test_pm_addvote(client: TestClient, pm_user: User):
def test_pm_addvote_unauthorized(
client: TestClient, user: User, proposal: Tuple[User, User, TUVoteInfo]
client: TestClient, user: User, proposal: Tuple[User, User, VoteInfo]
):
cookies = {"AURSID": user.login(Request(), "testPassword")}
with client as request:
@ -931,7 +929,7 @@ def test_pm_addvote_post(client: TestClient, pm_user: User, user: User):
response = request.post("/addvote", data=data)
assert response.status_code == int(HTTPStatus.SEE_OTHER)
voteinfo = db.query(TUVoteInfo, TUVoteInfo.Agenda == "Blah").first()
voteinfo = db.query(VoteInfo, VoteInfo.Agenda == "Blah").first()
assert voteinfo is not None
@ -947,7 +945,7 @@ def test_pm_addvote_post_cant_duplicate_username(
response = request.post("/addvote", data=data)
assert response.status_code == int(HTTPStatus.SEE_OTHER)
voteinfo = db.query(TUVoteInfo, TUVoteInfo.Agenda == "Blah").first()
voteinfo = db.query(VoteInfo, VoteInfo.Agenda == "Blah").first()
assert voteinfo is not None
with client as request:

View file

@ -3,9 +3,9 @@ from sqlalchemy.exc import IntegrityError
from aurweb import db, time
from aurweb.models.account_type import PACKAGE_MAINTAINER_ID
from aurweb.models.tu_vote import TUVote
from aurweb.models.tu_voteinfo import TUVoteInfo
from aurweb.models.user import User
from aurweb.models.vote import Vote
from aurweb.models.voteinfo import VoteInfo
@pytest.fixture(autouse=True)
@ -28,11 +28,11 @@ def user() -> User:
@pytest.fixture
def pm_voteinfo(user: User) -> TUVoteInfo:
def voteinfo(user: User) -> VoteInfo:
ts = time.utcnow()
with db.begin():
pm_voteinfo = db.create(
TUVoteInfo,
voteinfo = db.create(
VoteInfo,
Agenda="Blah blah.",
User=user.Username,
Submitted=ts,
@ -40,24 +40,24 @@ def pm_voteinfo(user: User) -> TUVoteInfo:
Quorum=0.5,
Submitter=user,
)
yield pm_voteinfo
yield voteinfo
def test_pm_vote_creation(user: User, pm_voteinfo: TUVoteInfo):
def test_vote_creation(user: User, voteinfo: VoteInfo):
with db.begin():
pm_vote = db.create(TUVote, User=user, VoteInfo=pm_voteinfo)
vote = db.create(Vote, User=user, VoteInfo=voteinfo)
assert pm_vote.VoteInfo == pm_voteinfo
assert pm_vote.User == user
assert pm_vote in user.tu_votes
assert pm_vote in pm_voteinfo.tu_votes
assert vote.VoteInfo == voteinfo
assert vote.User == user
assert vote in user.votes
assert vote in voteinfo.votes
def test_pm_vote_null_user_raises_exception(pm_voteinfo: TUVoteInfo):
def test_vote_null_user_raises_exception(voteinfo: VoteInfo):
with pytest.raises(IntegrityError):
TUVote(VoteInfo=pm_voteinfo)
Vote(VoteInfo=voteinfo)
def test_pm_vote_null_voteinfo_raises_exception(user: User):
def test_vote_null_voteinfo_raises_exception(user: User):
with pytest.raises(IntegrityError):
TUVote(User=user)
Vote(User=user)

View file

@ -4,8 +4,8 @@ from sqlalchemy.exc import IntegrityError
from aurweb import db, time
from aurweb.db import create, rollback
from aurweb.models.account_type import PACKAGE_MAINTAINER_ID
from aurweb.models.tu_voteinfo import TUVoteInfo
from aurweb.models.user import User
from aurweb.models.voteinfo import VoteInfo
@pytest.fixture(autouse=True)
@ -27,11 +27,11 @@ def user() -> User:
yield user
def test_pm_voteinfo_creation(user: User):
def test_voteinfo_creation(user: User):
ts = time.utcnow()
with db.begin():
pm_voteinfo = create(
TUVoteInfo,
voteinfo = create(
VoteInfo,
Agenda="Blah blah.",
User=user.Username,
Submitted=ts,
@ -39,26 +39,26 @@ def test_pm_voteinfo_creation(user: User):
Quorum=0.5,
Submitter=user,
)
assert bool(pm_voteinfo.ID)
assert pm_voteinfo.Agenda == "Blah blah."
assert pm_voteinfo.User == user.Username
assert pm_voteinfo.Submitted == ts
assert pm_voteinfo.End == ts + 5
assert pm_voteinfo.Quorum == 0.5
assert pm_voteinfo.Submitter == user
assert pm_voteinfo.Yes == 0
assert pm_voteinfo.No == 0
assert pm_voteinfo.Abstain == 0
assert pm_voteinfo.ActiveTUs == 0
assert bool(voteinfo.ID)
assert voteinfo.Agenda == "Blah blah."
assert voteinfo.User == user.Username
assert voteinfo.Submitted == ts
assert voteinfo.End == ts + 5
assert voteinfo.Quorum == 0.5
assert voteinfo.Submitter == user
assert voteinfo.Yes == 0
assert voteinfo.No == 0
assert voteinfo.Abstain == 0
assert voteinfo.ActiveUsers == 0
assert pm_voteinfo in user.tu_voteinfo_set
assert voteinfo in user.voteinfo_set
def test_pm_voteinfo_is_running(user: User):
def test_voteinfo_is_running(user: User):
ts = time.utcnow()
with db.begin():
pm_voteinfo = create(
TUVoteInfo,
voteinfo = create(
VoteInfo,
Agenda="Blah blah.",
User=user.Username,
Submitted=ts,
@ -66,18 +66,18 @@ def test_pm_voteinfo_is_running(user: User):
Quorum=0.5,
Submitter=user,
)
assert pm_voteinfo.is_running() is True
assert voteinfo.is_running() is True
with db.begin():
pm_voteinfo.End = ts - 5
assert pm_voteinfo.is_running() is False
voteinfo.End = ts - 5
assert voteinfo.is_running() is False
def test_pm_voteinfo_total_votes(user: User):
def test_voteinfo_total_votes(user: User):
ts = time.utcnow()
with db.begin():
pm_voteinfo = create(
TUVoteInfo,
voteinfo = create(
VoteInfo,
Agenda="Blah blah.",
User=user.Username,
Submitted=ts,
@ -86,19 +86,19 @@ def test_pm_voteinfo_total_votes(user: User):
Submitter=user,
)
pm_voteinfo.Yes = 1
pm_voteinfo.No = 3
pm_voteinfo.Abstain = 5
voteinfo.Yes = 1
voteinfo.No = 3
voteinfo.Abstain = 5
# total_votes() should be the sum of Yes, No and Abstain: 1 + 3 + 5 = 9.
assert pm_voteinfo.total_votes() == 9
assert voteinfo.total_votes() == 9
def test_pm_voteinfo_null_submitter_raises(user: User):
def test_voteinfo_null_submitter_raises(user: User):
with pytest.raises(IntegrityError):
with db.begin():
create(
TUVoteInfo,
VoteInfo,
Agenda="Blah blah.",
User=user.Username,
Submitted=0,
@ -108,11 +108,11 @@ def test_pm_voteinfo_null_submitter_raises(user: User):
rollback()
def test_pm_voteinfo_null_agenda_raises(user: User):
def test_voteinfo_null_agenda_raises(user: User):
with pytest.raises(IntegrityError):
with db.begin():
create(
TUVoteInfo,
VoteInfo,
User=user.Username,
Submitted=0,
End=0,
@ -122,11 +122,11 @@ def test_pm_voteinfo_null_agenda_raises(user: User):
rollback()
def test_pm_voteinfo_null_user_raises(user: User):
def test_voteinfo_null_user_raises(user: User):
with pytest.raises(IntegrityError):
with db.begin():
create(
TUVoteInfo,
VoteInfo,
Agenda="Blah blah.",
Submitted=0,
End=0,
@ -136,11 +136,11 @@ def test_pm_voteinfo_null_user_raises(user: User):
rollback()
def test_pm_voteinfo_null_submitted_raises(user: User):
def test_voteinfo_null_submitted_raises(user: User):
with pytest.raises(IntegrityError):
with db.begin():
create(
TUVoteInfo,
VoteInfo,
Agenda="Blah blah.",
User=user.Username,
End=0,
@ -150,11 +150,11 @@ def test_pm_voteinfo_null_submitted_raises(user: User):
rollback()
def test_pm_voteinfo_null_end_raises(user: User):
def test_voteinfo_null_end_raises(user: User):
with pytest.raises(IntegrityError):
with db.begin():
create(
TUVoteInfo,
VoteInfo,
Agenda="Blah blah.",
User=user.Username,
Submitted=0,
@ -164,10 +164,10 @@ def test_pm_voteinfo_null_end_raises(user: User):
rollback()
def test_pm_voteinfo_null_quorum_default(user: User):
def test_voteinfo_null_quorum_default(user: User):
with db.begin():
vi = create(
TUVoteInfo,
VoteInfo,
Agenda="Blah blah.",
User=user.Username,
Submitted=0,

View file

@ -3,17 +3,17 @@ from typing import Tuple
import pytest
from aurweb import config, db, time
from aurweb.models import TUVote, TUVoteInfo, User
from aurweb.models import User, Vote, VoteInfo
from aurweb.models.account_type import PACKAGE_MAINTAINER_ID
from aurweb.scripts import tuvotereminder as reminder
from aurweb.scripts import votereminder as reminder
from aurweb.testing.email import Email
aur_location = config.get("options", "aur_location")
def create_vote(user: User, voteinfo: TUVoteInfo) -> TUVote:
def create_vote(user: User, voteinfo: VoteInfo) -> Vote:
with db.begin():
vote = db.create(TUVote, User=user, VoteID=voteinfo.ID)
vote = db.create(Vote, User=user, VoteID=voteinfo.ID)
return vote
@ -29,11 +29,11 @@ def create_user(username: str, type_id: int):
return user
def email_pieces(voteinfo: TUVoteInfo) -> Tuple[str, str]:
def email_pieces(voteinfo: VoteInfo) -> Tuple[str, str]:
"""
Return a (subject, content) tuple based on voteinfo.ID
:param voteinfo: TUVoteInfo instance
:param voteinfo: VoteInfo instance
:return: tuple(subject, content)
"""
subject = f"Package Maintainer Vote Reminder: Proposal {voteinfo.ID}"
@ -61,12 +61,12 @@ def user3() -> User:
@pytest.fixture
def voteinfo(user: User) -> TUVoteInfo:
def voteinfo(user: User) -> VoteInfo:
now = time.utcnow()
start = config.getint("tuvotereminder", "range_start")
start = config.getint("votereminder", "range_start")
with db.begin():
voteinfo = db.create(
TUVoteInfo,
VoteInfo,
Agenda="Lorem ipsum.",
User=user.Username,
End=(now + start + 1),
@ -77,7 +77,7 @@ def voteinfo(user: User) -> TUVoteInfo:
yield voteinfo
def test_pm_vote_reminders(user: User, user2: User, user3: User, voteinfo: TUVoteInfo):
def test_vote_reminders(user: User, user2: User, user3: User, voteinfo: VoteInfo):
reminder.main()
assert Email.count() == 3
@ -96,8 +96,8 @@ def test_pm_vote_reminders(user: User, user2: User, user3: User, voteinfo: TUVot
assert emails[i].body == content
def test_pm_vote_reminders_only_unvoted(
user: User, user2: User, user3: User, voteinfo: TUVoteInfo
def test_vote_reminders_only_unvoted(
user: User, user2: User, user3: User, voteinfo: VoteInfo
):
# Vote with user2 and user3; leaving only user to be notified.
create_vote(user2, voteinfo)