def test_(self): def new_vote(worker, sample, label): return WorkerQualityVote(worker=worker, sample=sample, label=label) mv = MajorityVoting( job_id=self.job.id, votes_storage=DBVotesStorage(storage_id=self.job.id), ) mv.add_votes([]) self.assertEqual([], mv.extract_decisions()) WorkerQualityVote.objects.create( worker=self.workers[2], sample=self.sample, label=LABEL_YES, ) self.assertEqual(LABEL_YES, mv.extract_decisions()[0][1]) WorkerQualityVote.objects.bulk_create([ new_vote(self.workers[0], self.sample, LABEL_NO), new_vote(self.workers[1], self.sample, LABEL_NO) ]) self.assertEqual(LABEL_NO, mv.extract_decisions()[0][1]) mv.reset() self.assertEqual([], mv.extract_decisions()) WorkerQualityVote.objects.bulk_create([ new_vote(self.workers[0], self.sample, LABEL_YES), new_vote(self.workers[1], self.sample, LABEL_YES), new_vote(self.workers[2], self.sample, LABEL_NO), new_vote(self.workers[3], self.sample, LABEL_NO), new_vote(self.workers[4], self.sample, LABEL_BROKEN), new_vote(self.workers[5], self.sample, LABEL_BROKEN), new_vote(self.workers[6], self.sample, LABEL_NO), new_vote(self.workers[7], self.sample, LABEL_NO), new_vote(self.workers[8], self.sample, LABEL_NO), ]) self.assertEqual(LABEL_NO, mv.extract_decisions()[0][1])