From 83c038a42ac50a087bff82490b21acc7e55d65b9 Mon Sep 17 00:00:00 2001 From: Kevin Morris Date: Sat, 19 Jun 2021 01:18:40 -0700 Subject: [PATCH] add TUVoteInfo.total_votes() Returns the sum of TUVoteInfo.Yes, TUVoteInfo.No and TUVoteInfo.Abstain. Signed-off-by: Kevin Morris --- aurweb/models/tu_voteinfo.py | 3 +++ test/test_tu_voteinfo.py | 18 ++++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/aurweb/models/tu_voteinfo.py b/aurweb/models/tu_voteinfo.py index fd0031a7..b80073f4 100644 --- a/aurweb/models/tu_voteinfo.py +++ b/aurweb/models/tu_voteinfo.py @@ -90,3 +90,6 @@ class TUVoteInfo(Base): def is_running(self): return self.End > int(datetime.utcnow().timestamp()) + + def total_votes(self): + return self.Yes + self.No + self.Abstain diff --git a/test/test_tu_voteinfo.py b/test/test_tu_voteinfo.py index bd5709fb..494300c5 100644 --- a/test/test_tu_voteinfo.py +++ b/test/test_tu_voteinfo.py @@ -64,6 +64,24 @@ def test_tu_voteinfo_is_running(): assert tu_voteinfo.is_running() is False +def test_tu_voteinfo_total_votes(): + 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) + + tu_voteinfo.Yes = 1 + tu_voteinfo.No = 3 + tu_voteinfo.Abstain = 5 + commit() + + # total_votes() should be the sum of Yes, No and Abstain: 1 + 3 + 5 = 9. + assert tu_voteinfo.total_votes() == 9 + + def test_tu_voteinfo_null_submitter_raises_exception(): with pytest.raises(IntegrityError): create(TUVoteInfo,