From 4927a61378a15cdd8ab0fe277c4acdc8cfd973d9 Mon Sep 17 00:00:00 2001 From: Kevin Morris Date: Fri, 18 Jun 2021 04:40:54 -0700 Subject: [PATCH] add TUVoteInfo.is_running() method Signed-off-by: Kevin Morris --- aurweb/models/tu_voteinfo.py | 5 +++++ test/test_tu_voteinfo.py | 17 ++++++++++++++++- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/aurweb/models/tu_voteinfo.py b/aurweb/models/tu_voteinfo.py index a246f132..fd0031a7 100644 --- a/aurweb/models/tu_voteinfo.py +++ b/aurweb/models/tu_voteinfo.py @@ -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()) diff --git a/test/test_tu_voteinfo.py b/test/test_tu_voteinfo.py index 37609efd..bd5709fb 100644 --- a/test/test_tu_voteinfo.py +++ b/test/test_tu_voteinfo.py @@ -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,