Ejemplo n.º 1
0
    def test_can_close_conference(self):
        c = conference.Conference()
        c.name = "TestConf"
        c.put()

        # No submissions so no outstanding decisions
        self.assertTrue(confstate.can_close_conference(c.key, 1))

        t1 = talk.Talk()
        t1.title = "Talk T1"
        t1.put()
        sub_key1 = submissionrecord.make_submission(t1.key, c.key, "track",
                                                    "format")

        # can't close while submission is undecided
        self.assertFalse(confstate.can_close_conference(c.key, 1))

        sub = sub_key1.get()
        sub.set_review_decision(1, "Accept")
        sub.put()

        self.assertTrue(confstate.can_close_conference(c.key, 1))

        t2 = talk.Talk()
        t2.title = "Talk T2"
        t2.put()
        sub_key2 = submissionrecord.make_submission(t2.key, c.key, "track",
                                                    "format")
        self.assertFalse(confstate.can_close_conference(c.key, 1))
Ejemplo n.º 2
0
    def test_post_many(self, mock_deferred_func):
        c, sub_key1 = self.common_setup()

        t2 = talk.Talk()
        t2.title = "Talk T2"
        t2.put()
        sub_key2 = submissionrecord.make_submission_plus(
            t2.key, c.key, "track", "format", "time", "exp")

        t3 = talk.Talk()
        t3.title = "Talk T3"
        t3.put()
        sub_key3 = submissionrecord.make_submission_plus(
            t3.key, c.key, "track", "format", "time", "exp")

        accept = msgtemplate.retrieveTemplate(msgtemplate.AcceptMsg, c.key)
        try:
            postmail.Postman().post_many(
                c,
                accept, [sub_key1.get(),
                         sub_key2.get(),
                         sub_key3.get()],
                send_gap_seconds=10)
        except:
            self.assertTrue(False, "Exception rasied unexpectedly")
        else:
            self.assertTrue(True, "Exception not rasied as expected")
Ejemplo n.º 3
0
    def setup_test_data(self):
        s = speaker.make_new_speaker("rimmer@email")
        s.name = "Arnold Rimmer"
        s.put()

        t1 = talk.Talk(parent=s.key)
        t1.title = "A testing talk"
        t1.put()

        sub_key1 = submissionrecord.make_submission(t1.key,
                                                    self.conference.key,
                                                    "track", "format")
        t2 = talk.Talk(parent=s.key)
        t2.title = "Another testing talk"
        t2.put()

        sub_key2 = submissionrecord.make_submission(t2.key,
                                                    self.conference.key,
                                                    "track", "format")
        s2 = speaker.make_new_speaker("cat@email")
        s2.name = "Cat"
        s2.put()

        t3 = talk.Talk(parent=s2.key)
        t3.title = "Cool for cats"
        t3.put()
        sub_key3 = submissionrecord.make_submission(t3.key,
                                                    self.conference.key,
                                                    "track", "format")

        return sub_key1, sub_key2, sub_key3
Ejemplo n.º 4
0
    def common_data_setup(self):
        self.c = conference.Conference()
        self.c.name = "TestConf"
        self.c.put()

        # Set up the scenario
        t1 = talk.Talk()
        t1.title = "Talk1 - No duplicate votes"
        t1.put()

        subs_key1 = submissionrecord.make_submission(t1.key, self.c.key,
                                                     "track", "format")
        self.assertEquals(
            len(submissionrecord.retrieve_conference_submissions(self.c.key)),
            1)

        t2 = talk.Talk()
        t2.title = "Talk2 - Allan duplicate votes"
        t2.put()

        subs_key2 = submissionrecord.make_submission(t2.key, self.c.key,
                                                     "track", "format")
        self.assertEquals(
            len(submissionrecord.retrieve_conference_submissions(self.c.key)),
            2)

        return [subs_key1, subs_key2]
Ejemplo n.º 5
0
    def test_retrieve_conference_submission_keys_by_track_and_round(self):
        self.create_conference()

        sub_key1 = submissionrecord.make_submission(self.t.key, self.c.key, "Track1", "format")
        sub = sub_key1.get()
        sub.last_review_round = 2
        sub.put()

        t2 = talk.Talk()
        t2.title = "Talk 2"
        t2.put()
        sub_key2 = submissionrecord.make_submission(t2.key, self.c.key, "Track1", "format")

        t3 = talk.Talk()
        t3.title = "Talk 3"
        t3.put()
        sub_key2 = submissionrecord.make_submission(t2.key, self.c.key, "Track3", "format")

        subs_round2track1 = submissions_aux.retrieve_conference_submission_keys_by_track_and_round(
                self.c.key, "Track1", 2)
        self.assertEquals(len(subs_round2track1), 1)
        self.assertItemsEqual([sub_key1], subs_round2track1)

        self.assertEquals(len(
            submissions_aux.retrieve_conference_submission_keys_by_track(self.c.key, "Track2")), 0)

        self.assertEquals(len(
            submissions_aux.retrieve_conference_submissions_by_track(self.c.key, "Track1")), 2)
        self.assertEquals(len(
            submissions_aux.retrieve_conference_submissions_by_track(self.c.key, "Track2")), 0)
Ejemplo n.º 6
0
    def test_get_submission_by_talk_and_conf(self):
        self.create_conference()

        t1 = talk.Talk()
        t1.title = "Talk T1"
        t1.put()
        sub_key1 = submissionrecord.make_submission(t1.key, self.c.key,
                                                    "track", "format")

        t2 = talk.Talk()
        t2.title = "Unsubmitted"
        t2.put()

        self.assertEquals(
            sub_key1,
            submissionrecord.get_submission_by_talk_and_conf(
                t1.key, "TestConf"))
        self.assertEquals(
            None,
            submissionrecord.get_submission_by_talk_and_conf(
                t2.key, "TestConf"))

        # does not get listed for other conferences
        c2 = conference.Conference()
        c2.name = "OtherConf"
        c2.put()

        self.assertEquals(
            None,
            submissionrecord.get_submission_by_talk_and_conf(
                t1.key, "OtherConf"))
        self.assertEquals(
            None,
            submissionrecord.get_submission_by_talk_and_conf(
                t2.key, "OtherConf"))
Ejemplo n.º 7
0
    def test_export_submissions_list(self):
        c = conference.Conference()
        c.name = "TestConf"
        c.put()
        track1 = confoptions.make_conference_track(c.key, "track")
        track2 = confoptions.make_conference_track(c.key, "another track")
        format1 = confoptions.make_conference_option(confoptions.TalkFormatOption, c.key, "lecture")
        duration1 = confoptions.make_conference_option(confoptions.DurationOption, c.key, "10mins")
        expenses1 = confoptions.make_conference_option(confoptions.ExpenseOptions, c.key, "Money")

        s = speaker.make_new_speaker("*****@*****.**")
        s.put()
        t = talk.Talk(parent=s.key)
        t.title = "A testing talk"
        t.put()
        sub_key = submissionrecord.make_submission_plus(t.key, c.key, track1.shortname(),
                                                        format1.shortname(), duration1.shortname(),
                                                        expenses1.shortname())

        s2 = speaker.make_new_speaker("*****@*****.**")
        s2.put()
        t2 = talk.Talk(parent=s2.key)
        t2.title = "Knowing Rimmer"
        t2.put()
        sub_key2 = submissionrecord.make_submission_plus(t2.key, c.key, track2.shortname(),
                                                         format1.shortname(), duration1.shortname(),
                                                         expenses1.shortname())

        output = MockOutStream()
        exportcsv.write_sub_list(output, [sub_key, sub_key2])
        self.assertEquals(output.number_of_writes(), 38)
Ejemplo n.º 8
0
    def test_filter_for_cospeakers(self):
        t = talk.Talk(parent=self.spk1.key)
        t.title = "Talk talk"
        t.put()
        sub_key1 = submissionrecord.make_submission(t.key, self.c.key, "TrackB", "format")

        t2 = talk.Talk(parent=self.spk1.key)
        t2.title = "More talk"
        t2.put()
        sub_key2 = submissionrecord.make_submission(t2.key, self.c.key, "TrackB", "format")

        cospeak = cospeaker.make_cospeaker(sub_key2, "Harry", "*****@*****.**")

        submissions = [ sub_key1, sub_key2 ]

        sub_speakers_map = cospeaker.filter_for_cospeakers(submissions)

        self.assertFalse(sub_speakers_map.has_key(sub_key1))
        self.assertTrue(sub_speakers_map.has_key(sub_key2))
        self.assertEqual(sub_speakers_map[sub_key2][0].name, "Harry")

        cospeak = cospeaker.make_cospeaker(sub_key2, "Ron", "*****@*****.**")
        sub_speakers_map = cospeaker.filter_for_cospeakers(submissions)

        self.assertFalse(sub_speakers_map.has_key(sub_key1))
        self.assertTrue(sub_speakers_map.has_key(sub_key2))
        cospeakers = sub_speakers_map[sub_key2]
        cospeakers.sort(key=lambda speaker: speaker.name)
        self.assertEqual(sub_speakers_map[sub_key2][0].name, "Harry")
        self.assertEqual(sub_speakers_map[sub_key2][1].name, "Ron")
Ejemplo n.º 9
0
    def test_count_all_speakers(self):
        self.assertEqual(cospeaker.count_all_speakers([]).total_number_of_speakers(), 0)

        t = talk.Talk(parent=self.spk1.key)
        t.title = "Talk talk"
        t.put()
        sub_key1 = submissionrecord.make_submission(t.key, self.c.key, "TrackB", "format")

        submissions = [sub_key1]
        self.assertEqual(cospeaker.count_all_speakers(submissions).total_number_of_speakers(), 1)

        t2 = talk.Talk(parent=self.spk1.key)
        t2.title = "More talk"
        t2.put()
        sub_key2 = submissionrecord.make_submission(t2.key, self.c.key, "TrackB", "format")

        submissions = [sub_key1, sub_key2]
        self.assertEqual(cospeaker.count_all_speakers(submissions).total_number_of_speakers(), 1)

        cospeak = cospeaker.make_cospeaker(sub_key2, "Harry", "*****@*****.**")
        self.assertEqual(cospeaker.count_all_speakers(submissions).total_number_of_speakers(), 2)

        cospeak = cospeaker.make_cospeaker(sub_key2, "Ron", "*****@*****.**")
        self.assertEqual(cospeaker.count_all_speakers(submissions).total_number_of_speakers(), 3)

        cospeak = cospeaker.make_cospeaker(sub_key1, "Ron", "*****@*****.**")
        self.assertEqual(cospeaker.count_all_speakers(submissions).total_number_of_speakers(), 3)
Ejemplo n.º 10
0
    def test_store_retrieve_by_key(self):
        spk1 = speaker.make_new_speaker("who@email")
        spk1.put()
        t1 = talk.Talk(parent=spk1.key)
        t1.title = "Wonderful"
        t1.put()

        t2 = talk.Talk(parent=spk1.key)
        t2.title = "Great"
        t2.put()

        user1_talks = talk.speaker_talks_by_key(spk1.key)
        self.assertEquals(len(user1_talks), 2)

        spk2 = speaker.make_new_speaker("nobody@email")
        spk2.put()
        t3 = talk.Talk(parent=spk2.key)
        t3.title = "Smashing"
        t3.put()

        user2_talks = talk.speaker_talks_by_key(spk2.key)
        self.assertEquals(len(user2_talks), 1)

        t2.key.delete()
        user1_talks = talk.all_user_talks_by_email(spk1.email)
        self.assertEquals(len(user1_talks), 1)
Ejemplo n.º 11
0
    def test_decision_summary(self):
        self.create_conference()

        t = talk.Talk()
        t.title = "A testing talk"
        t.put()

        submission = submissionrecord.make_submission(t.key, self.c.key,
                                                      "track", "format").get()
        decision_summary = submissionrecord.get_decision_summary(
            self.c.key, "track", 1)

        self.assertEquals(len(decision_summary), 1)
        self.assertEquals(decision_summary["No decision"], 1)

        submission.set_review_decision(1, "Accept")
        submission.put()

        decision_summary = submissionrecord.get_decision_summary(
            self.c.key, "track", 1)
        self.assertEquals(len(decision_summary), 2)

        self.assertEquals(decision_summary["Accept"], 1)
        self.assertEquals(decision_summary["No decision"], 0)

        t2 = talk.Talk()
        t2.title = "A bad test"
        t2.put()

        sub2 = submissionrecord.make_submission(t2.key, self.c.key, "track",
                                                "format").get()
        sub2.set_review_decision(1, "Reject")
        sub2.put()

        decision_summary = submissionrecord.get_decision_summary(
            self.c.key, "track", 1)
        self.assertEquals(len(decision_summary), 3)
        self.assertEquals(decision_summary["Reject"], 1)
        self.assertEquals(decision_summary["No decision"], 0)

        t3 = talk.Talk()
        t3.title = "A good test"
        t3.put()

        sub3 = submissionrecord.make_submission(t3.key, self.c.key, "track",
                                                "format").get()
        sub3.set_review_decision(1, "Accept")
        sub3.put()

        decision_summary = submissionrecord.get_decision_summary(
            self.c.key, "track", 1)
        self.assertEquals(len(decision_summary), 3)
        self.assertEquals(decision_summary["Accept"], 2)
        self.assertEquals(decision_summary["Reject"], 1)
        self.assertEquals(decision_summary["No decision"], 0)

        decision_summary = submissionrecord.get_decision_summary(
            self.c.key, "another track", 1)
        self.assertEquals(len(decision_summary), 1)
Ejemplo n.º 12
0
    def show_single_submit_page(self):
        if self.submissions_exceeded():
            sorrypage.redirect_sorry(self, "SubsLimitReached")
            return

        conf_questions = confquestion.retrieve_questions(self.crrt_conf.key)
        conf_answers = submission_ans.retrieve_answer_map(
            None, map(lambda q: q.key, conf_questions))

        template_values = {
            "crrt_conf": self.crrt_conf,
            # Speaker fields
            'new_speaker': True,
            'speaker': self.submitter,
            "emaillocked": "readonly",
            'speakerKey': "",
            'readonly': "",
            # Talk fields
            "talk_details": talk.Talk(parent=None),
            "is_new": True,
            "talk_key": None,
            # Conference submission fields
            "selected_track": self.crrt_conf.track_options().keys()[0],
            "selected_duration": self.crrt_conf.duration_options().keys()[0],
            "selected_format":
            self.crrt_conf.delivery_format_options().keys()[0],
            "selected_expenses": self.crrt_conf.expenses_options().keys()[0],
            "conf_questions": conf_questions,
            "conf_answers": conf_answers,
        }

        self.write_page('submission_lib/singlesubmitpage.html',
                        template_values)
Ejemplo n.º 13
0
    def test_retrieve_conference_submissions_keys(self):
        self.create_conference()
        self.assertEquals(
            len(
                submissionrecord.retrieve_conference_submissions_keys(
                    self.c.key)), 0)

        t1 = talk.Talk()
        t1.title = "Talk T1"
        t1.put()
        sub_key = submissionrecord.make_submission(t1.key, self.c.key, "track",
                                                   "format")
        self.assertEquals(
            len(
                submissionrecord.retrieve_conference_submissions_keys(
                    self.c.key)), 1)

        subs_list = submissionrecord.retrieve_conference_submissions_keys(
            self.c.key)
        self.assertEquals(sub_key, subs_list[0])

        sub_key2 = submissionrecord.make_submission(t1.key, self.c.key,
                                                    "track2", "format")
        self.assertEquals(
            len(
                submissionrecord.retrieve_conference_submissions_keys(
                    self.c.key)), 2)

        subs_list = submissionrecord.retrieve_conference_submissions_keys(
            self.c.key)
        self.assertListEqual([sub_key, sub_key2], subs_list)
Ejemplo n.º 14
0
    def test_speaker_comms_state(self):
        self.create_conference()

        t1 = talk.Talk()
        t1.title = "Talk T1"
        t1.put()
        sub_key = submissionrecord.make_submission(t1.key, self.c.key, "track",
                                                   "format")
        sub = sub_key.get()

        self.assertEquals(sub.communication, "None")
        sub.acknowledge_receipt()
        self.assertEquals(sub.communication, "Receipt acknowledged")
        sub.mark_decline_pending()
        self.assertEquals(sub.communication, "Decline pending")
        sub.mark_declined()
        self.assertEquals(sub.communication, "Decline sent")
        sub.mark_acccept_pending()
        self.assertEquals(sub.communication, "Accept pending")
        sub.mark_acccept()
        self.assertEquals(sub.communication, "Accept sent")
        sub.mark_accept_acknowledged()
        self.assertEquals(sub.communication, "Acceptance acknowledged")
        sub.mark_accept_declined()
        self.assertEquals(sub.communication, "Acceptance declined")
        sub.mark_accept_problem()
        self.assertEquals(sub.communication, "Acceptance problem")

        sub.mark_comms(submissionnotifynames.SUBMISSION_ACCEPTED)
        self.assertEquals(sub.communication, "Accept sent")

        sub.mark_comms(
            submissionnotifynames.SUBMISSION_FAILED_ACCEPT_NOTIFICATON)
        self.assertEquals(sub.communication, "Accept notification failed")
Ejemplo n.º 15
0
    def test_get_scores(self):
        self.create_conference()

        t1 = talk.Talk()
        t1.title = "Talk T1"
        t1.put()
        sub_key1 = submissionrecord.make_submission(t1.key, self.c.key,
                                                    "track", "format")
        voterecord.cast_new_vote(sub_key1, "Fred", -2, "I hate this talk", 1)
        voterecord.cast_new_vote(sub_key1, "Jill", -2, "I hate this talk too",
                                 1)

        scores1 = sub_key1.get().get_scores(1)
        self.assertEquals(scores1.mean_score, -2)
        self.assertEquals(scores1.median_score, -2)
        self.assertEquals(scores1.total_score, -4)
        self.assertEquals(scores1.votes, 2)

        scores2 = sub_key1.get().get_scores(2)
        self.assertEquals(scores2.mean_score, 0)
        self.assertEquals(scores2.median_score, 0)
        self.assertEquals(scores2.total_score, 0)
        self.assertEquals(scores2.votes, 0)

        voterecord.cast_new_vote(sub_key1, "Fred", 1, "One", 2)
        voterecord.cast_new_vote(sub_key1, "Jim", 2, "Two", 2)
        voterecord.cast_new_vote(sub_key1, "Shiela", 2, "Two two", 2)

        scores2 = sub_key1.get().get_scores(2)
        self.assertEquals(scores2.total_score, 5)
        self.assertEquals(scores2.mean_score, 1.67)
        self.assertEquals(scores2.median_score, 2)
        self.assertEquals(scores2.votes, 3)
Ejemplo n.º 16
0
    def test_submission_scores(self):
        self.create_conference()

        sub_key = submissionrecord.make_submission(self.t.key, self.c.key,
                                                   "track", "format")

        voterecord.cast_new_vote(sub_key, "Fred", -2, "I hate this talk", 1)
        voterecord.cast_new_vote(sub_key, "Jim", 1, "I sort of like this talk",
                                 1)
        voterecord.cast_new_vote(sub_key, "Sheila", 1, "I like this talk", 1)
        submissions = submissionrecord.retrieve_submissions_records(self.c.key)
        self.assertEquals(len(submissions), 1)
        scores = submissions[0].get_scores(1)
        self.assertEquals(scores.total_score, 0)
        self.assertEquals(scores.mean_score, 0)
        self.assertEquals(scores.median_score, 1.0)
        self.assertEquals(scores.votes, 3)

        t2 = talk.Talk()
        t2.title = "Unreviewed"
        t2.put()
        sub_key = submissionrecord.make_submission(t2.key, self.c.key, "track",
                                                   "format")
        scores2 = sub_key.get().get_scores(1)
        self.assertEquals(scores2.total_score, 0)
        self.assertEquals(scores2.mean_score, 0)
        self.assertEquals(scores2.median_score, 0)
        self.assertEquals(scores2.votes, 0)
Ejemplo n.º 17
0
    def test_retrieve_all_reviews(self):
        c = conference.Conference()
        c.name = "TestConf"
        c.put()

        t = talk.Talk()
        t.title = "A testing talk"
        t.put()

        sub_key = submissionrecord.make_submission(t.key, c.key, "track",
                                                   "format")
        self.assertEquals(
            len(submissionrecord.retrieve_conference_submissions(c.key)), 1)

        self.assertEquals(
            len(roundreviews.retrieve_all_reviews(sub_key.get())), 0)

        voterecord.cast_new_vote(sub_key, "Fred", -2, "I hate this talk", 1)
        reviews = roundreviews.retrieve_all_reviews(sub_key.get())
        self.assertEquals(
            len(roundreviews.retrieve_all_reviews(sub_key.get())), 1)
        voterecord.cast_new_vote(sub_key, "Jim", 1, "I sort of like this talk",
                                 1)

        t2 = talk.Talk()
        t2.title = "Another talk"
        t2.put()
        sub_key2 = submissionrecord.make_submission(t2.key, c.key, "track",
                                                    "format")
        voterecord.cast_new_vote(sub_key2, "Barney", 1, "Yo ho ho", 1)

        reviews = roundreviews.retrieve_all_reviews(sub_key.get())
        self.assertEquals(len(reviews), 2)
        self.assertEquals(reviews[0].reviewer, "Fred")
        self.assertEquals(reviews[1].reviewer, "Jim")

        sub_key.get().set_review_decision(1, "Round2")
        sub_key2.get().set_review_decision(1, "Decline")
        confstate.close_round1_and_open_round2(c)

        voterecord.cast_new_vote(sub_key, "Sheila", 1, "Yes please", 2)

        reviews = roundreviews.retrieve_all_reviews(sub_key.get())
        self.assertEquals(len(reviews), 3)
        self.assertEquals(reviews[0].reviewer, "Fred")
        self.assertEquals(reviews[1].reviewer, "Jim")
        self.assertEquals(reviews[2].reviewer, "Sheila")
Ejemplo n.º 18
0
    def test_submission_by_conf_and_talk(self):
        self.create_conference()

        t1 = talk.Talk()
        t1.title = "Talk T1"
        t1.put()
        sub_key1 = submissionrecord.make_submission(t1.key, self.c.key,
                                                    "track", "format")

        t2 = talk.Talk()
        t2.title = "Talk T2"
        t2.put()

        self.assertEquals(
            submissionrecord.get_submission_key(self.c.key, t1.key), sub_key1)
        self.assertEquals(
            submissionrecord.get_submission_key(self.c.key, t2.key), None)
Ejemplo n.º 19
0
    def test_mass_track_change(self):
        c = conference.Conference()
        c.name = "TestConf"
        c.put()

        ReviewRound = 1

        t1 = talk.Talk()
        t1.title = "Talk T1 - No decsion"
        t1.put()
        sub_key1 = submissionrecord.make_submission(t1.key, c.key, "track 1",
                                                    "format")
        self.assertEqual(sub_key1.get().review_decision(ReviewRound),
                         "No decision")

        t2 = talk.Talk()
        t2.title = "Talk T2 - Accept"
        t2.put()
        sub_key2 = submissionrecord.make_submission(t2.key, c.key, "track 1",
                                                    "format")
        sub_key2.get().set_review_decision(ReviewRound, "Accept")

        t3 = talk.Talk()
        t3.title = "Talk T3 - No decsion"
        t3.put()
        sub_key3 = submissionrecord.make_submission(t1.key, c.key, "track 1",
                                                    "format")
        self.assertEqual(sub_key3.get().review_decision(ReviewRound),
                         "No decision")

        t4 = talk.Talk()
        t4.title = "Talk T4 - Shortlist"
        t4.put()
        sub_key4 = submissionrecord.make_submission(t4.key, c.key, "track 1",
                                                    "format")
        sub_key4.get().set_review_decision(ReviewRound, "Shortlist")

        roundreviews.mass_track_change(c.key, "track 1", ReviewRound,
                                       "No decision", "Decline")
        self.assertEqual(sub_key1.get().review_decision(ReviewRound),
                         "Decline")
        self.assertEqual(sub_key2.get().review_decision(ReviewRound), "Accept")
        self.assertEqual(sub_key3.get().review_decision(ReviewRound),
                         "Decline")
        self.assertEqual(sub_key4.get().review_decision(ReviewRound),
                         "Shortlist")
Ejemplo n.º 20
0
    def test_current_review_assisgments(self):
        sub_key1, sub_key2, sub_key3 = self.setup_test_data()

        reviewer1 = reviewer.make_new_reviewer(self.conference.key,
                                               "rimmer@email")
        self.assertItemsEqual([],
                              reviewer1.retrieve_review_assignments(
                                  "track", review_round=1))
        self.assertItemsEqual(
            [],
            reviewer1.retrieve_review_assignments_for_round(review_round=1))

        reviewer2 = reviewer.make_new_reviewer(self.conference.key,
                                               "cat@email")
        self.assertItemsEqual([],
                              reviewer1.retrieve_review_assignments(
                                  "track", review_round=1))

        reviewer1.assign_submission("track", [sub_key3], review_round=1)
        self.assertItemsEqual([sub_key3],
                              reviewer1.retrieve_review_assignments(
                                  "track", review_round=1))
        self.assertItemsEqual(
            [sub_key3],
            reviewer1.retrieve_review_assignments_for_round(review_round=1))

        reviewer1.assign_submission("track", [sub_key2], review_round=1)
        self.assertItemsEqual([sub_key2, sub_key3],
                              reviewer1.retrieve_review_assignments(
                                  "track", review_round=1))
        self.assertItemsEqual(
            [sub_key2, sub_key3],
            reviewer1.retrieve_review_assignments_for_round(review_round=1))

        reviewer2.assign_submission("track", [sub_key1, sub_key2],
                                    review_round=1)
        self.assertItemsEqual([sub_key2, sub_key1],
                              reviewer2.retrieve_review_assignments(
                                  "track", review_round=1))

        t4 = talk.Talk(parent=None)
        t4.title = "Nobody on another track"
        t4.put()
        sub_key4 = submissionrecord.make_submission(t4.key,
                                                    self.conference.key,
                                                    "another_track", "format")
        reviewer1.assign_submission("another_track", [sub_key4],
                                    review_round=1)
        self.assertItemsEqual([sub_key2, sub_key3],
                              reviewer1.retrieve_review_assignments(
                                  "track", review_round=1))
        self.assertItemsEqual([sub_key4],
                              reviewer1.retrieve_review_assignments(
                                  "another_track", review_round=1))
        self.assertItemsEqual(
            [sub_key2, sub_key3, sub_key4],
            reviewer1.retrieve_review_assignments_for_round(review_round=1))
Ejemplo n.º 21
0
    def data_setup(self):
        c = conference.Conference()
        c.name = "TestConf"
        c.put()

        t = talk.Talk()
        t.title = "A testing talk"
        t.put()

        return c, t
Ejemplo n.º 22
0
    def test_export_submission(self):
        c = conference.Conference()
        c.name = "TestConf"
        c.put()
        track1 = confoptions.make_conference_track(c.key, "track")
        format1 = confoptions.make_conference_option(confoptions.TalkFormatOption, c.key, "lecture")
        duration1 = confoptions.make_conference_option(confoptions.DurationOption, c.key, "10mins")
        expenses1 = confoptions.make_conference_option(confoptions.ExpenseOptions, c.key, "Long haul")

        s = speaker.make_new_speaker("*****@*****.**")
        s.name = 'Arnold "J" Rimmer'
        s.telephone = "051 652 0538"
        s.address = "Cabin 42, Deck 3, Red Dwarf"
        s.set_field("affiliation", "Mining Corp")
        s.set_field("twitter", "@arnold")
        s.bio = "Arnold 'J' Rimmer joined Mining Corp (Space Division) at, what now seems, a very young age."
        s.put()

        t = talk.Talk(parent=s.key)
        t.title = "A testing talk"
        t.set_field(talk.SHORT_SYNOPSIS, "A few words about the tests you need")
        t.set_field(talk.LONG_SYNOPSIS, "Many more words about testing.... 1, 2, 3")
        t.put()

        sub_key = submissionrecord.make_submission_plus(t.key, c.key,
                                                        track1.shortname(), format1.shortname(),
                                                        duration1.shortname(), expenses1.shortname())

        cospeak = cospeaker.make_cospeaker(sub_key, "Harry Potter", "*****@*****.**")

        output = MockOutStream()
        exportcsv.write_sub(output, sub_key.get())

        self.assertEquals(output.sequence[0], 'No decision, ')
        self.assertEquals(output.sequence[1], "Arnold 'J' Rimmer, ")
        self.assertEquals(output.sequence[2], '[email protected], ')
        self.assertEquals(output.sequence[3], '051 652 0538, ')
        self.assertEquals(output.sequence[4], '"Cabin 42, Deck 3, Red Dwarf", ')
        self.assertEquals(output.sequence[5], 'Harry Potter, ')
        self.assertEquals(output.sequence[6], ', ')
        self.assertEquals(output.sequence[7], 'Mining Corp, ')
        self.assertEquals(output.sequence[8], '@arnold, ')
        self.assertEquals(output.sequence[9], """"Arnold 'J' Rimmer joined Mining Corp (Space Division) at, what now seems, a very young age.", """)
        self.assertEquals(output.sequence[10], 'None, ')

        self.assertEquals(output.sequence[11], 'A testing talk, ')
        self.assertEquals(output.sequence[12], "A few words about the tests you need, ")
        self.assertEquals(output.sequence[13], '"Many more words about testing.... 1, 2, 3", ')

        self.assertEquals(output.sequence[14], 'track, ')
        self.assertEquals(output.sequence[15], 'lecture, ')
        self.assertEquals(output.sequence[16], '10mins, ')
        self.assertEquals(output.sequence[17], 'Long haul, ')

        self.assertEquals(output.number_of_writes(), 18)
Ejemplo n.º 23
0
    def test_submit_decision(self):
        c = conference.Conference()
        c.name = "TestConf"
        c.put()

        t1 = talk.Talk()
        t1.title = "Talk T1 - Accept"
        t1.put()
        sub_key1 = submissionrecord.make_submission(t1.key, c.key, "track 1",
                                                    "format")

        t2 = talk.Talk()
        t2.title = "Talk T2 - Reject"
        t2.put()
        sub_key2 = submissionrecord.make_submission(t2.key, c.key, "track 1",
                                                    "format")

        decisions_map = {
            sub_key1.urlsafe(): "Accept",
            sub_key2.urlsafe(): "Decline"
        }

        t3 = talk.Talk()
        t3.title = "Talk T3 - No decision, different track"
        t3.put()
        sub_key3 = submissionrecord.make_submission(t3.key, c.key, "track 2",
                                                    "format")

        c.start_round1_reviews()

        roundreviews.submit_decisions(c.key, "track 1", 1, decisions_map)

        self.assertEquals(sub_key1.get().review_decision(1), "Accept")
        self.assertEquals(sub_key2.get().review_decision(1), "Decline")
        self.assertEquals(sub_key3.get().review_decision(1), "No decision")

        decisions_map = {sub_key3.urlsafe(): "Accept"}
        roundreviews.submit_decisions(c.key, "track 2", 1, decisions_map)

        self.assertEquals(sub_key1.get().review_decision(1), "Accept")
        self.assertEquals(sub_key2.get().review_decision(1), "Decline")
        self.assertEquals(sub_key3.get().review_decision(1), "Accept")
Ejemplo n.º 24
0
    def test_sort_submissions_low__to_high(self):
        self.create_conference()

        t3 = talk.Talk()
        t3.title = "A round talk"
        t3.put()
        sub_key3 = submissionrecord.make_submission(t3.key, self.c.key,
                                                    "track", "format")
        voterecord.cast_new_vote(sub_key3, "Fred", 1, "I like this talk", 1)

        t1 = talk.Talk()
        t1.title = "A testing talk"
        t1.put()
        sub_key1 = submissionrecord.make_submission(t1.key, self.c.key,
                                                    "track", "format")
        voterecord.cast_new_vote(sub_key1, "Fred", -2, "I hate this talk", 1)

        t4 = talk.Talk()
        t4.title = "Another round talk"
        t4.put()
        sub_key4 = submissionrecord.make_submission(t4.key, self.c.key,
                                                    "track", "format")
        voterecord.cast_new_vote(sub_key4, "Fred", 2,
                                 "I really like this talk", 1)

        t2 = talk.Talk()
        t2.title = "Another testing talk"
        t2.put()
        sub_key2 = submissionrecord.make_submission(t2.key, self.c.key,
                                                    "track", "format")
        voterecord.cast_new_vote(sub_key2, "Fred", -1, "I dislike this talk",
                                 1)

        submissions = submissionrecord.retrieve_submissions_records(self.c.key)
        sorted_submissions = submissionrecord.sort_low_to_high(
            submissions, "Fred", 1)

        self.assertEquals(len(sorted_submissions), 4)
        self.assertEquals(sorted_submissions[0].title(), t1.title)
        self.assertEquals(sorted_submissions[1].title(), t2.title)
        self.assertEquals(sorted_submissions[2].title(), t3.title)
        self.assertEquals(sorted_submissions[3].title(), t4.title)
Ejemplo n.º 25
0
    def test_retrieve_conference_submissions_by_track(self):
        self.create_conference()

        submissionrecord.make_submission(self.t.key, self.c.key, "Track1", "format")
        self.assertEquals(len(
            submissions_aux.retrieve_conference_submissions_by_track(self.c.key, "Track1")), 1)
        self.assertEquals(len(
            submissions_aux.retrieve_conference_submissions_by_track(self.c.key, "Track2")), 0)
        self.assertEquals(len(
            submissions_aux.retrieve_conference_submission_keys_by_track(self.c.key, "Track1")), 1)
        self.assertEquals(len(
            submissions_aux.retrieve_conference_submission_keys_by_track(self.c.key, "Track2")), 0)

        t2 = talk.Talk()
        t2.title = "Talk 2"
        t2.put()

        submissionrecord.make_submission(t2.key, self.c.key, "Track1", "format")
        self.assertEquals(len(
            submissions_aux.retrieve_conference_submissions_by_track(self.c.key, "Track1")), 2)
        self.assertEquals(len(
            submissions_aux.retrieve_conference_submissions_by_track(self.c.key, "Track2")), 0)

        t3 = talk.Talk()
        t3.title = "Talk 3 Track 2"
        t3.put()

        sub_key3 = submissionrecord.make_submission(t3.key, self.c.key, "Track2", "format")
        self.assertEquals(len(
            submissions_aux.retrieve_conference_submissions_by_track(self.c.key, "Track1")), 2)
        self.assertEquals(len(
            submissions_aux.retrieve_conference_submissions_by_track(self.c.key, "Track2")), 1)
        self.assertEquals(len(
            submissions_aux.retrieve_conference_submission_keys_by_track(self.c.key, "Track1")), 2)
        self.assertEquals(len(
            submissions_aux.retrieve_conference_submission_keys_by_track(self.c.key, "Track2")), 1)

        sub_key3.get().withdraw()
        self.assertEquals(len(
            submissions_aux.retrieve_conference_submissions_by_track(self.c.key, "Track1")), 2)
        self.assertEquals(len(
            submissions_aux.retrieve_conference_submissions_by_track(self.c.key, "Track2")), 0)
Ejemplo n.º 26
0
    def test_delete_cospeakers(self):
        t = talk.Talk(parent=self.spk1.key)
        t.title = "Talk talk"
        t.put()
        sub_key1 = submissionrecord.make_submission(t.key, self.c.key, "TrackB", "format")
        cospeak = cospeaker.make_cospeaker(sub_key1, "Harry", "*****@*****.**")
        cospeak2 = cospeaker.make_cospeaker(sub_key1, "Ron", "*****@*****.**")
        self.assertEquals(len(cospeaker.get_cospeakers(sub_key1)), 2)

        cospeaker.delete_cospeakers(sub_key1)
        self.assertEquals(len(cospeaker.get_cospeakers(sub_key1)), 0)
Ejemplo n.º 27
0
    def test_track_and_format(self):
        self.create_conference()

        t = talk.Talk()
        t.title = "A testing talk"
        t.put()

        subs_key = submissionrecord.make_submission(t.key, self.c.key,
                                                    "Track1", "WithComputers")
        self.assertEquals(subs_key.get().track, "Track1")
        self.assertEquals(subs_key.get().delivery_format, "WithComputers")
Ejemplo n.º 28
0
    def create_talks(self):
        self.s = speaker.make_new_speaker("mail@email")
        self.s.name = "Arnold Rimmer"
        self.s.put()

        self.t1 = talk.Talk(parent=self.s.key)
        self.t1.title = "Talk 1"
        self.t1.put()

        self.t2 = talk.Talk(parent=self.s.key)
        self.t2.title = "Talk 2"
        self.t2.put()

        self.t3 = talk.Talk(parent=self.s.key)
        self.t3.title = "Talk 3"
        self.t3.put()

        self.t4 = talk.Talk(parent=self.s.key)
        self.t4.title = "Talk 4"
        self.t4.put()
Ejemplo n.º 29
0
    def test_listed_cospeaker(self):
        self.assertFalse(cospeaker.is_listed_cospeaker("*****@*****.**"))

        t = talk.Talk(parent=self.spk1.key)
        t.title = "Talk talk"
        t.put()
        sub_key1 = submissionrecord.make_submission(t.key, self.c.key, "TrackB", "format")

        cospeak = cospeaker.make_cospeaker(sub_key1, "Harry", "*****@*****.**")
        self.assertFalse(speaker.speaker_exists("*****@*****.**"))

        self.assertFalse(cospeaker.is_listed_cospeaker("*****@*****.**"))
Ejemplo n.º 30
0
    def create_conference(self):
        self.c = conference.Conference()
        self.c.name = "TestConf"
        self.c.put()

        self.s = speaker.make_new_speaker("mail@email")
        self.s.name = "Arnold Rimmer"
        self.s.put()

        self.t = talk.Talk(parent=self.s.key)
        self.t.title = "A testing talk"
        self.t.put()