add TUVoteInfo.is_running() method

Signed-off-by: Kevin Morris <kevr@0cost.org>
This commit is contained in:
Kevin Morris 2021-06-18 04:40:54 -07:00
parent 07c4be0afb
commit 4927a61378
2 changed files with 21 additions and 1 deletions

View file

@ -1,5 +1,7 @@
import typing
from datetime import datetime
from sqlalchemy import Column, ForeignKey, Integer
from sqlalchemy.exc import IntegrityError
from sqlalchemy.orm import backref, relationship
@ -85,3 +87,6 @@ class TUVoteInfo(Base):
""" Customize getattr to floatify any fetched Quorum values. """
attr = super().__getattribute__(key)
return float(attr) if key == "Quorum" else attr
def is_running(self):
return self.End > int(datetime.utcnow().timestamp())

View file

@ -4,7 +4,7 @@ import pytest
from sqlalchemy.exc import IntegrityError
from aurweb.db import create, query, rollback
from aurweb.db import commit, create, query, rollback
from aurweb.models.account_type import AccountType
from aurweb.models.tu_voteinfo import TUVoteInfo
from aurweb.models.user import User
@ -49,6 +49,21 @@ def test_tu_voteinfo_creation():
assert tu_voteinfo in user.tu_voteinfo_set
def test_tu_voteinfo_is_running():
ts = int(datetime.utcnow().timestamp())
tu_voteinfo = create(TUVoteInfo,
Agenda="Blah blah.",
User=user.Username,
Submitted=ts, End=ts + 1000,
Quorum=0.5,
Submitter=user)
assert tu_voteinfo.is_running() is True
tu_voteinfo.End = ts - 5
commit()
assert tu_voteinfo.is_running() is False
def test_tu_voteinfo_null_submitter_raises_exception():
with pytest.raises(IntegrityError):
create(TUVoteInfo,