def test_needs_votes(): proposals = [] users = {} standards = [l.add_standard("About Pythong"), l.add_standard("Awesome")] sample_vote = {k: 2 for k in standards} for n in range(1, 10): prop = data.copy() prop['id'] = n * 2 prop['abstract'] = 'Proposal {}'.format(n) email = '{}@example.com'.format(n) uid = l.add_user(email, email, email) l.approve_user(uid) users[email] = uid prop['authors'] = [{'email': email, 'name': 'foo'}] l.add_proposal(prop) proposals.append(n * 2) non_author_email = '*****@*****.**' non_author_id = l.add_user(non_author_email, non_author_email, non_author_email) l.approve_user(non_author_id) random.seed(0) seen_ids = set() for n in range(100): seen_ids.add(l.needs_votes(non_author_email, non_author_id)) assert seen_ids == set(proposals) seen_ids = set() for n in range(100): seen_ids.add(l.needs_votes('*****@*****.**', users['*****@*****.**'])) not_2_proposals = set(proposals) not_2_proposals.remove(4) assert seen_ids == not_2_proposals for n in range(1, 9): l.vote(users['*****@*****.**'], n * 2, sample_vote) seen_ids = set() for n in range(100): seen_ids.add(l.needs_votes(non_author_email, non_author_id)) assert seen_ids == set([18]) l.vote(users['*****@*****.**'], 18, sample_vote) seen_ids = set() for n in range(100): seen_ids.add(l.needs_votes(non_author_email, non_author_id)) assert seen_ids == set(proposals)
def test_needs_votes(): proposals = [] users = {} standards = [l.add_standard("About Pythong"), l.add_standard("Awesome")] sample_vote = {k:2 for k in standards} for n in range(1,10): prop = data.copy() prop['id'] = n*2 prop['abstract'] = 'Proposal {}'.format(n) email = '{}@example.com'.format(n) uid = l.add_user(email, email, email) l.approve_user(uid) users[email] = uid prop['authors'] = [{'email':email, 'name':'foo'}] l.add_proposal(prop) proposals.append(n*2) non_author_email = '*****@*****.**' non_author_id = l.add_user(non_author_email, non_author_email, non_author_email) l.approve_user(non_author_id) random.seed(0) seen_ids = set() for n in range(100): seen_ids.add(l.needs_votes(non_author_email, non_author_id)) assert seen_ids == set(proposals) seen_ids = set() for n in range(100): seen_ids.add(l.needs_votes('*****@*****.**', users['*****@*****.**'])) not_2_proposals = set(proposals) not_2_proposals.remove(4) assert seen_ids == not_2_proposals for n in range(1, 9): l.vote(users['*****@*****.**'], n*2, sample_vote) seen_ids = set() for n in range(100): seen_ids.add(l.needs_votes(non_author_email, non_author_id)) assert seen_ids == set([18]) l.vote(users['*****@*****.**'], 18, sample_vote) seen_ids = set() for n in range(100): seen_ids.add(l.needs_votes(non_author_email, non_author_id)) assert seen_ids == set(proposals)
def test_needs_votes(): proposals = [] users = {} standards = [l.add_standard("About Pythong"), l.add_standard("Awesome")] sample_vote = {k: 2 for k in standards} for n in range(1, 10): prop = data.copy() prop["id"] = n * 2 prop["abstract"] = "Proposal {}".format(n) email = "{}@example.com".format(n) uid = l.add_user(email, email, email) l.approve_user(uid) users[email] = uid prop["authors"] = [{"email": email, "name": "foo"}] l.add_proposal(prop) proposals.append(n * 2) non_author_email = "*****@*****.**" non_author_id = l.add_user(non_author_email, non_author_email, non_author_email) l.approve_user(non_author_id) random.seed(0) seen_ids = set() for n in range(100): seen_ids.add(l.needs_votes(non_author_email, non_author_id)) assert seen_ids == set(proposals) seen_ids = set() for n in range(100): seen_ids.add(l.needs_votes("*****@*****.**", users["*****@*****.**"])) not_2_proposals = set(proposals) not_2_proposals.remove(4) assert seen_ids == not_2_proposals for n in range(1, 9): l.vote(users["*****@*****.**"], n * 2, sample_vote) seen_ids = set() for n in range(100): seen_ids.add(l.needs_votes(non_author_email, non_author_id)) assert seen_ids == set([18]) l.vote(users["*****@*****.**"], 18, sample_vote) seen_ids = set() for n in range(100): seen_ids.add(l.needs_votes(non_author_email, non_author_id)) assert seen_ids == set(proposals)
def pick(): if THIS_IS_BATCH: return redirect(url_for('batch_splash_page')) reconsider = l.get_reconsider(request.user.id) if reconsider: msg = """You voted on this proposal before the change to standard #4. Please reconsider and save your vote!""" flash(msg) return redirect(url_for('screening', id=reconsider[0].id)) if request.user.revisit: data = [x for x in l.get_my_votes(request.user.id) if x.updated] if data: msg = """This proposal has been updated since your last vote. Please reconsider and save your vote!""" flash(msg) return redirect(url_for('screening', id=data[0].proposal)) id = l.needs_votes(request.user.email, request.user.id) if not id: flash("You have voted on every proposal!") return redirect(url_for('screening_stats')) return redirect(url_for('screening', id=id))
def pick(): if THIS_IS_BATCH: return redirect(url_for("batch_splash_page")) id = l.needs_votes(request.user.email, request.user.id) if not id: flash("You have voted on every proposal!") return redirect(url_for("show_votes")) return redirect(url_for("screening", id=id))