Example #1
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
Example #2
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)
    def test_speakers_who_have_submitted(self):
        c = conference.Conference()
        c.name = "TestConf"
        c.put()

        blank_speaker = speaker.make_new_speaker("rimmer@email")
        blank_speaker.name = "Arnold Rimmer"
        blank_speaker.put()

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

        bioed = speaker.make_new_speaker("cat@email")
        bioed.name = "Arnold Rimmer"
        bioed.bio = "The Cat"
        bioed.put()

        t2 = talk.mk_talk(bioed.key, "Cat Talks")
        sub_key2 = submissionrecord.make_submission(t2, c.key, "track",
                                                    "format")

        spk_list = speaker_checks.find_blank_bio_submissions(c.key)
        self.assertEquals(1, len(spk_list))
        self.assertEquals("rimmer@email", spk_list[0].email)
Example #4
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)
Example #5
0
    def test_speaker_key(self):
        usr = mimasuser.mk_MimasUser("allan", "*****@*****.**", "unique")

        s = speaker.make_new_speaker("mail@email")
        usr.set_speaker_key(s.key)

        self.assertEquals(s.key, usr.speaker_key())
Example #6
0
    def test_zero_out_speaker(self):
        s = speaker.make_new_speaker("mail@email")
        s.telephone = "+44 123"
        s.address = "Yellow Brick Road"
        s.bio = "Once upon a time"
        s.set_field("Twitter", "@Tweetypy")
        s.set_field(s.FIELD_JOBTITLE, "Superman")
        s.put()
        speakerdir.SpeakerDir().add_speaker(s.key)
        image.store_only_image(s.key, "Just some binary data")
        tags.TagList(s.key).add_tag("Test", "Speaker")

        self.assertTrue(image.image_exists(s.key))
        self.assertFalse(s.is_zero_deleted())

        s.zero_out_speaker()

        self.assertTrue(s.is_zero_deleted())

        self.assertFalse(speaker.speaker_exists("mail@email"))
        self.assertEquals("*****@*****.**", s.email)
        self.assertEquals("", s.telephone)
        self.assertEquals("", s.address)
        self.assertEquals("", s.bio)
        self.assertEquals("", s.field("Twitter"))
        self.assertFalse(speakerdir.SpeakerDir().is_speaker_listed(s.key))
        self.assertEquals([], tags.TagList(s.key).get_all_tags([]))
        self.assertFalse(image.image_exists(s.key))
Example #7
0
 def test_make_new_speaker(self):
     self.assertFalse(speaker.speaker_exists("mail@email"))
     s = speaker.make_new_speaker("mail@email")
     self.assertFalse(s.is_zero_deleted())
     self.assertEquals(s.name, "")
     self.assertEquals(s.telephone, "")
     self.assertEquals(s.email, "mail@email")
     self.assertFalse(speaker.speaker_exists("mail@email"))
Example #8
0
    def test_speaker_image_url(self):
        s = speaker.make_new_speaker("mail@email")
        s.put()

        self.assertFalse(s.has_full_size_image())
        img_key = image.store_only_image(s.key, "Some value")
        self.assertTrue(s.has_full_size_image())
        expected = "/speakerfullimg?spk_id=" + s.key.urlsafe()
        self.assertEquals(s.full_image_url(), expected)
Example #9
0
    def test_double_entry(self):
        s = speaker.make_new_speaker("mail@email")
        s.put()
        speakerdir.SpeakerDir().add_speaker(s.key)
        self.assertTrue(speakerdir.SpeakerDir().is_speaker_listed(s.key))

        self.assertEquals(1, len(speakerdir.SpeakerDir().get_speaker_list()))

        speakerdir.SpeakerDir().add_speaker(s.key)
        self.assertEquals(1, len(speakerdir.SpeakerDir().get_speaker_list()))
Example #10
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)
Example #11
0
    def test_directory_listing(self):
        spk1 = speaker.make_new_speaker("who@email")
        spk1.put()
        t1_key = talk.mk_talk(spk1.key, "Wonderful")
        t1 = t1_key.get()

        self.assertTrue(t1.is_listed())
        t1.hide_listing()
        self.assertFalse(t1.is_listed())
        t1.show_listing()
        self.assertTrue(t1.is_listed())
Example #12
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()
Example #13
0
    def test_speakers_retrievable(self):
        email = "allan@allan"
        self.assertFalse(speaker.speaker_exists(email))

        s = speaker.make_new_speaker("mail@email")
        s.email = email

        s.put()
        self.assertTrue(speaker.speaker_exists(email))

        retrieved = speaker.retreive_speaker(email)
        self.assertTrue(retrieved.email, email)
Example #14
0
    def setUp(self):
        self.testbed = testbed.Testbed()
        self.testbed.activate()
        self.testbed.init_datastore_v3_stub()
        self.testbed.init_memcache_stub()

        self.c = conference.Conference()
        self.c.name = "TestConf"
        self.c.put()

        self.spk1 = speaker.make_new_speaker("who@email")
        self.spk1.name = "Dr Who"
        self.spk1.put()
Example #15
0
    def test_retrieve_full_directory(self):
        d = speakerdir.SpeakerDir()
        self.assertEquals(0, len(d.get_speaker_list()))

        s = speaker.make_new_speaker("mail@email")
        s.put()
        self.assertFalse(d.is_speaker_listed(s.key))
        d.add_speaker(s.key)
        self.assertTrue(d.is_speaker_listed(s.key))

        speaker_list = d.get_speaker_list()
        self.assertEquals(1, len(speaker_list))
        self.assertEquals("mail@email", speaker_list[0].get().email)

        s2 = speaker.make_new_speaker("harry@email")
        s2.put()
        d.add_speaker(s2.key)

        s3 = speaker.make_new_speaker("ron@email")
        s3.put()
        d.add_speaker(s3.key)
        self.assertEquals(3, len(d.get_speaker_list()))
Example #16
0
    def test_remove_speaker(self):
        d = speakerdir.SpeakerDir()
        self.assertEquals(0, len(d.get_speaker_list()))

        s = speaker.make_new_speaker("mail@email")
        s.put()
        d.add_speaker(s.key)

        s2 = speaker.make_new_speaker("harry@email")
        s2.put()
        d.add_speaker(s2.key)

        self.assertEquals(2, len(d.get_speaker_list()))

        self.assertTrue(d.is_speaker_listed(s.key))
        self.assertTrue(d.is_speaker_listed(s2.key))

        d.remove_speaker(s.key)
        self.assertEquals(1, len(d.get_speaker_list()))
        self.assertEquals("harry@email", d.get_speaker_list()[0].get().email)
        self.assertFalse(d.is_speaker_listed(s.key))
        self.assertTrue(d.is_speaker_listed(s2.key))
Example #17
0
    def create_conference(self):
        self.c = conference.Conference()
        self.c.name = "Wizard Con 2018"
        self.c.put()

        self.s = speaker.make_new_speaker("*****@*****.**")
        self.s.name = "Harry Potter"
        self.s.bio = "Harry is an amazing wizard"
        self.s.put()

        self.t = talk.Talk(parent=self.s.key)
        self.t.title = "Fighting Voldermort"
        self.t.put()

        self.sub_key = submissionrecord.make_submission(self.t.key, self.c.key, "track", "format")
Example #18
0
    def test_find_duplicate_speakers(self):
        self.assertEquals([], speaker.find_duplicate_speakers())

        s1 = speaker.make_new_speaker("*****@*****.**")
        s1.put()
        self.assertEquals([], speaker.find_duplicate_speakers())

        s2 = speaker.make_new_speaker("*****@*****.**")
        s2.put()
        self.assertEquals([], speaker.find_duplicate_speakers())

        s3 = speaker.make_new_speaker("*****@*****.**")
        s3.put()
        self.assertEquals([], speaker.find_duplicate_speakers())

        s4 = speaker.make_new_speaker("*****@*****.**")
        s4.put()
        duplicates = speaker.find_duplicate_speakers()
        self.assertEquals(1, len(duplicates))
        self.assertEquals("*****@*****.**", duplicates[0].speaker_email)

        s5 = speaker.make_new_speaker("*****@*****.**")
        s5.put()
        duplicates = speaker.find_duplicate_speakers()
        self.assertEquals(1, len(duplicates))
        self.assertEquals("*****@*****.**", duplicates[0].speaker_email)

        speaker.make_new_speaker("*****@*****.**").put()
        duplicates = speaker.find_duplicate_speakers()
        self.assertEquals(1, len(duplicates))
        self.assertEquals("*****@*****.**", duplicates[0].speaker_email)

        speaker.make_new_speaker("*****@*****.**").put()
        duplicates = speaker.find_duplicate_speakers()
        self.assertEquals(2, len(duplicates))
        self.assertEquals("*****@*****.**", duplicates[0].speaker_email)
        self.assertEquals("*****@*****.**", duplicates[1].speaker_email)
Example #19
0
    def test_profile_exists(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")

        self.assertEquals(len(cospeaker.get_cospeakers(sub_key1)), 0)

        cospeak = cospeaker.make_cospeaker(sub_key1, "Harry", "*****@*****.**")
        r = cospeaker.get_cospeakers(sub_key1)
        self.assertEquals(len(r), 1)
        self.assertEquals(r[0], cospeak)

        self.assertFalse(r[0].profile_exists())
        self.assertFalse(speaker.speaker_exists("*****@*****.**"))
        harry = speaker.make_new_speaker("*****@*****.**")
        harry.put()
        self.assertTrue(speaker.speaker_exists("*****@*****.**"))
        self.assertTrue(r[0].profile_exists())
Example #20
0
    def test_getset(self):
        s = speaker.make_new_speaker("mail@email")
        self.assertEquals(s.telephone, "")
        s.telephone = "+44 123"
        self.assertEquals(s.telephone, "+44 123")

        s.address = "Yellow Brick Road"
        self.assertEquals(s.address, "Yellow Brick Road")

        self.assertEquals(s.bio, "")
        s.bio = "Once upon a time"
        self.assertEquals(s.bio, "Once upon a time")

        self.assertEquals(s.field("Twitter"), "")
        s.set_field("Twitter", "@Tweetypy")
        self.assertEquals(s.field("Twitter"), "@Tweetypy")

        self.assertEquals("", s.field(s.FIELD_JOBTITLE))
        s.set_field(s.FIELD_JOBTITLE, "Superman")
        self.assertEquals("Superman", s.field(s.FIELD_JOBTITLE))
Example #21
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()
Example #22
0
    def common_setup(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, "Money")

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

        t1 = talk.Talk(parent=s.key)
        t1.title = "Talk T1"
        t1.put()
        sub_key1 = submissionrecord.make_submission_plus(
            t1.key, c.key, track1.shortname(), format1.shortname(),
            duration1.shortname(), expenses1.shortname())
        return c, sub_key1
Example #23
0
    def test_new_name_parts(self):
        s = speaker.Speaker()
        s.set_empty_profile("*****@*****.**")
        self.assertEquals(s.first_name(), "")
        self.assertEquals(s.later_names(), "")

        s.set_first_name("Harry")
        self.assertEquals(s.first_name(), "Harry")
        self.assertEquals(s.later_names(), "")
        self.assertEquals(s.name, "Harry")

        s.set_later_names("Potter")
        self.assertEquals(s.first_name(), "Harry")
        self.assertEquals(s.later_names(), "Potter")
        self.assertEquals(s.name, "Harry Potter")

        s.set_later_names("S. Potter")
        self.assertEquals(s.first_name(), "Harry")
        self.assertEquals(s.later_names(), "S. Potter")
        self.assertEquals(s.name, "Harry S. Potter")

        s2 = speaker.Speaker()
        s2.set_empty_profile("*****@*****.**")
        self.assertEquals(s2.first_name(), "")
        self.assertEquals(s2.later_names(), "")

        s2.set_later_names("Weasley")
        self.assertEquals(s2.first_name(), "")
        self.assertEquals(s2.later_names(), "Weasley")
        self.assertEquals(s2.name, "Weasley")

        s3 = speaker.make_new_speaker("*****@*****.**")
        s3.set_names("Hermione", "Granger")
        self.assertEquals(s3.first_name(), "Hermione")
        self.assertEquals(s3.later_names(), "Granger")
        self.assertEquals(s3.name, "Hermione Granger")
Example #24
0
    def test_ctor(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", "*****@*****.**")
        self.assertFalse(speaker.speaker_exists("*****@*****.**"))
        self.assertEquals(cospeak.name, "Harry")
        self.assertFalse(speaker.speaker_exists("*****@*****.**"))
        self.assertEquals(cospeak.email, "*****@*****.**")
        self.assertFalse(speaker.speaker_exists("*****@*****.**"))
        self.assertEquals(cospeak.profile().bio, "No bio supplied")
        self.assertFalse(speaker.speaker_exists("*****@*****.**"))
        self.assertFalse(cospeak.profile_exists())

        spk2 = speaker.make_new_speaker("*****@*****.**")
        spk2.name="Harry"
        spk2.bio="The child who lived"
        spk2.put()

        # add a speaker profile on that email address
        self.assertTrue(cospeak.profile_exists())
        self.assertEquals(cospeak.profile().bio, "The child who lived")
Example #25
0
    def test_delete_conference(self):
        c = conference.Conference()
        c.name = "TestConf"
        c.put()

        ur = userrights.UserRights(c.key)
        ur.add_track_reviewer("harry", "technology track")
        self.assertEquals(
            1, self.count_db_entries(userrights.RightsRecord, c.key))

        track1 = confoptions.make_conference_track(c.key, "New Track")
        track2 = confoptions.make_conference_track(c.key, "Another track")
        self.assertEquals(
            2, self.count_db_entries(confoptions.TrackOption, c.key))
        duration1 = confoptions.make_conference_option(
            confoptions.DurationOption, c.key, "30 minutes")
        self.assertEquals(
            1, self.count_db_entries(confoptions.DurationOption, c.key))
        confoptions.make_conference_option(confoptions.TalkFormatOption, c.key,
                                           "Lecture")
        self.assertEquals(
            1, self.count_db_entries(confoptions.TalkFormatOption, c.key))
        confoptions.make_conference_option(confoptions.ExpenseOptions, c.key,
                                           "Local")
        self.assertEquals(
            1, self.count_db_entries(confoptions.ExpenseOptions, c.key))

        review_config = confreviewconfig.get_conference_review_factory(c.key)
        self.assertIsNotNone(review_config)
        self.assertEquals(
            1,
            self.count_db_entries(confreviewconfig.ConferenceReviewFactory,
                                  c.key))
        self.assertEquals(
            0, self.count_db_entries(confreviewconfig.ClassicReview, c.key))
        self.assertEquals(
            1, self.count_db_entries(confreviewconfig.NewScoringReview, c.key))
        self.assertEquals(
            1, self.count_db_entries(confreviewconfig.RankReview, c.key))

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

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

        sub_key = submissionrecord.make_submission(t.key, c.key, "track",
                                                   "format")
        self.assertEquals(
            1, self.count_db_entries(submissionrecord.SubmissionRecord, c.key))
        vote = voterecord.cast_new_vote(sub_key, "Reviewer1", 2, "No comment",
                                        1)
        self.assertEquals(1, self.count_db_entries(voterecord.VoteRecord,
                                                   c.key))

        rev = reviewer.make_new_reviewer(c.key, "rimmer@email")
        self.assertEquals(1, self.count_db_entries(reviewer.Reviewer, c.key))
        rev.assign_submission("track", [sub_key], review_round=1)
        self.assertEquals(
            1, self.count_db_entries(reviewer.ReviewAssignment, c.key))

        confdelete.cascade_delete_conference(c.key)

        self.assertEquals(
            0, self.count_db_entries(userrights.RightsRecord, c.key))
        self.assertEquals(
            0, self.count_db_entries(submissionrecord.SubmissionRecord, c.key))
        self.assertEquals(0, self.count_db_entries(voterecord.VoteRecord,
                                                   c.key))
        self.assertEquals(
            0, self.count_db_entries(confoptions.TrackOption, c.key))
        self.assertEquals(
            0, self.count_db_entries(confoptions.DurationOption, c.key))
        self.assertEquals(
            0, self.count_db_entries(confoptions.TalkFormatOption, c.key))
        self.assertEquals(
            0, self.count_db_entries(confoptions.ExpenseOptions, c.key))
        self.assertEquals(
            0,
            self.count_db_entries(confoptions.AcknowledgementEmailCCAddresses,
                                  c.key))
        self.assertEquals(
            0,
            self.count_db_entries(confoptions.AcknowledgementEmailBCCAddresses,
                                  c.key))
        self.assertEquals(
            0, self.count_db_entries(confoptions.AcceptEmailCCAddress, c.key))

        self.assertEquals(
            0,
            self.count_db_entries(confreviewconfig.ConferenceReviewFactory,
                                  c.key))
        self.assertEquals(
            0, self.count_db_entries(confreviewconfig.ClassicReview, c.key))
        self.assertEquals(
            0, self.count_db_entries(confreviewconfig.NewScoringReview, c.key))
        self.assertEquals(
            0, self.count_db_entries(confreviewconfig.RankReview, c.key))

        self.assertEquals(
            0, self.count_db_entries(dedupvotes.DuplicateVoteReport, c.key))
        self.assertEquals(
            0, self.count_db_entries(reviewer.ReviewAssignment, c.key))
        self.assertEquals(0, self.count_db_entries(reviewer.Reviewer, c.key))
Example #26
0
 def add_test_speaker(self, name, email):
     s = speaker.make_new_speaker(email)
     s.name = name
     return s.put()
Example #27
0
 def make_empty_profile(self):
     profile = make_new_speaker(self.cospeaker_email)
     profile.name = self.cospeaker_name
     profile.bio = "No bio supplied"
     return profile
Example #28
0
    def standard_test_data(self):
        conf_key = self.get_crrt_conference_key()
        conference = conf_key.get()
        track1 = confoptions.make_conference_track(conf_key,
                                                   "Software delivery")
        track2 = confoptions.make_conference_track(conf_key,
                                                   "Product Management")
        track3 = confoptions.make_conference_track(conf_key, "Team working")
        duration1 = confoptions.make_conference_option(
            confoptions.DurationOption, conf_key,
            "Single session (45 minutes)")
        confoptions.make_conference_option(confoptions.DurationOption,
                                           conf_key,
                                           "Double session (90 minutes+)")

        format1 = confoptions.make_conference_option(
            confoptions.TalkFormatOption, conf_key, "Lecture style")
        confoptions.make_conference_option(
            confoptions.TalkFormatOption, conf_key,
            "Interactive with exercises (no computers)")

        expenses1 = confoptions.make_conference_option(
            confoptions.ExpenseOptions, conf_key, "Local")
        confoptions.make_conference_option(confoptions.ExpenseOptions,
                                           conf_key, "UK")

        s = speaker.make_new_speaker("*****@*****.**")
        s.name = "Speaker Test"
        speaker_key = s.put()

        t = talk.Talk(parent=s.key)
        t.title = "All talk"
        t_key = t.put()

        sub_key = submissionrecord.make_submission_plus(
            t_key, conf_key, track1.shortname(), format1.shortname(),
            duration1.shortname(), expenses1.shortname())

        t2 = talk.Talk(parent=s.key)
        t2.title = "Talk2"
        t2_key = t.put()

        sub_key2 = submissionrecord.make_submission_plus(
            t2_key, conf_key, track1.shortname(), format1.shortname(),
            duration1.shortname(), expenses1.shortname())

        conference.user_rights().add_permission("*****@*****.**",
                                                userrightsnames.CONF_CREATOR)
        conference.user_rights().add_permission(
            "*****@*****.**", userrightsnames.CHANGE_CONF_STATE)
        conference.user_rights().add_permission(
            "*****@*****.**", userrightsnames.APPOINT_REVIEWERS)
        conference.user_rights().add_permission(
            "*****@*****.**", userrightsnames.ROUND1_REVIEWER)
        conference.user_rights().add_permission(
            "*****@*****.**", userrightsnames.ROUND1_DECISION)
        conference.user_rights().add_permission(
            "*****@*****.**", userrightsnames.ROUND2_REVIEWER)
        conference.user_rights().add_permission(
            "*****@*****.**", userrightsnames.ROUND2_DECISION)
        conference.user_rights().add_permission(
            "*****@*****.**", userrightsnames.ROUND2_DECISION)
        conference.user_rights().add_permission(
            "*****@*****.**", userrightsnames.SPEAK_COMMS_COMMS)
        conference.user_rights().add_permission(
            "*****@*****.**", userrightsnames.CONF_DATA_DUMPS)

        conference.user_rights().add_track_reviewer("*****@*****.**",
                                                    track1.shortname())
        conference.user_rights().add_track_reviewer("*****@*****.**",
                                                    track2.shortname())
        conference.user_rights().add_track_reviewer("*****@*****.**",
                                                    track3.shortname())

        reportrecord.mk_report_record(conf_key, "Export", "none.such")

        return '/confoptionspage?conf=' + conf_key.urlsafe()
Example #29
0
    def test_count_submissions(self):
        self.create_conference()

        spk1 = speaker.make_new_speaker("who@email")
        spk1.put()

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

        self.assertEquals(
            submission_queries.count_submissions(self.c.key, spk1.key), 1)

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

        self.assertEquals(
            submission_queries.count_submissions(self.c.key, spk1.key), 2)

        spk2 = speaker.make_new_speaker("you@email")
        spk2.put()

        t3 = talk.Talk(parent=spk2.key)
        t3.title = "Talk T3 speaker 2"
        t3.put()
        sub_key3 = submissionrecord.make_submission(t3.key, self.c.key,
                                                    "track", "format")

        self.assertEquals(
            submission_queries.count_submissions(self.c.key, spk1.key), 2)
        self.assertEquals(
            submission_queries.count_submissions(self.c.key, spk2.key), 1)

        c2 = conference.Conference()
        c2.name = "TestConf2"
        c2.put()

        self.assertEquals(
            submission_queries.count_submissions(c2.key, spk1.key), 0)
        self.assertEquals(
            submission_queries.count_submissions(c2.key, spk2.key), 0)

        t4 = talk.Talk(parent=spk1.key)
        t4.title = "Talk T4"
        t4.put()
        sub_key4 = submissionrecord.make_submission(t4.key, c2.key, "track",
                                                    "format")

        self.assertEquals(
            submission_queries.count_submissions(c2.key, spk1.key), 1)
        self.assertEquals(
            submission_queries.count_submissions(c2.key, spk2.key), 0)
        self.assertEquals(
            submission_queries.count_submissions(self.c.key, spk1.key), 2)
        self.assertEquals(
            submission_queries.count_submissions(self.c.key, spk2.key), 1)

        sub_key2.get().withdraw()
        self.assertEquals(
            submission_queries.count_submissions(c2.key, spk1.key), 1)
        self.assertEquals(
            submission_queries.count_submissions(c2.key, spk2.key), 0)
        self.assertEquals(
            submission_queries.count_submissions(self.c.key, spk1.key), 1)
        self.assertEquals(
            submission_queries.count_submissions(self.c.key, spk2.key), 1)
Example #30
0
    def test_assign_more_reviews(self):
        # basic test
        sub_key1, sub_key2, sub_key3 = self.setup_test_data()

        reviewer1 = reviewer.make_new_reviewer(self.conference.key,
                                               "lister@email")
        reviewer1.assign_more_reviews("track", 2, 1)
        self.assertEqual(
            2,
            len(reviewer1.retrieve_review_assignments("track",
                                                      review_round=1)))

        reviewer2 = reviewer.make_new_reviewer(self.conference.key,
                                               "cat@email")
        self.assertEqual(
            2,
            len(reviewer1.retrieve_review_assignments("track",
                                                      review_round=1)))
        reviewer2.assign_more_reviews("track", 2, 1)
        self.assertEqual(
            2,
            len(reviewer2.retrieve_review_assignments("track",
                                                      review_round=1)))

        # three possible success scenarios - don't care which was chosen
        # on suubmission should be assigned to both reviewers
        # other submissions should both be assigned to one reviewer
        # less assigned submissions shoul be assigned first
        # then semi-random assignment up to totoal
        if (reviewer.count_submission_assignments(self.conference.key,
                                                  sub_key1, 1) == 2):
            print "*** First assignment case"
            self.assertEqual(
                1,
                reviewer.count_submission_assignments(self.conference.key,
                                                      sub_key3, 1))
            self.assertEqual(
                1,
                reviewer.count_submission_assignments(self.conference.key,
                                                      sub_key2, 1))
        elif (reviewer.count_submission_assignments(self.conference.key,
                                                    sub_key2, 1) == 2):
            print "*** Second assignment case"
            self.assertEqual(
                1,
                reviewer.count_submission_assignments(self.conference.key,
                                                      sub_key1, 1))
            self.assertEqual(
                1,
                reviewer.count_submission_assignments(self.conference.key,
                                                      sub_key3, 1))
        elif (reviewer.count_submission_assignments(self.conference.key,
                                                    sub_key3, 1) == 2):
            print "*** Third assignment case"
            self.assertEqual(
                1,
                reviewer.count_submission_assignments(self.conference.key,
                                                      sub_key1, 1))
            self.assertEqual(
                1,
                reviewer.count_submission_assignments(self.conference.key,
                                                      sub_key2, 1))
        else:
            self.assertFalse(True, "Unexpected assignment pattern")

        reviewer3 = reviewer.make_new_reviewer(self.conference.key,
                                               "kyton@email")
        reviewer3.assign_more_reviews("track", 2, 1)
        self.assertEqual(
            2,
            reviewer.count_submission_assignments(self.conference.key,
                                                  sub_key1, 1))
        self.assertEqual(
            2,
            reviewer.count_submission_assignments(self.conference.key,
                                                  sub_key2, 1))
        self.assertEqual(
            2,
            reviewer.count_submission_assignments(self.conference.key,
                                                  sub_key3, 1))

        # check no repeated assignment
        reviewer1.assign_more_reviews("track", 2, 1)
        self.assertEqual(
            3,
            len(reviewer1.retrieve_review_assignments("track",
                                                      review_round=1)))

        reviewer1.assign_more_reviews("track", 2, 1)
        self.assertEqual(
            3,
            len(reviewer1.retrieve_review_assignments("track",
                                                      review_round=1)))

        # check no self-assignment
        rogue = "holy@email"
        s = speaker.make_new_speaker(rogue)
        s.name = "Holy"
        s.put()
        t4 = talk.Talk(parent=s.key)
        t4.title = "Lets see if the new speaker can review themselves"
        t4.put()
        sub_key4 = submissionrecord.make_submission(t4.key,
                                                    self.conference.key,
                                                    "track", "format")

        reviewer4 = reviewer.make_new_reviewer(self.conference.key, rogue)
        reviewer4.assign_more_reviews("track", 99, 1)
        self.assertItemsEqual([sub_key1, sub_key2, sub_key3],
                              reviewer4.retrieve_review_assignments(
                                  "track", review_round=1))
        self.assertEqual(
            0,
            reviewer.count_submission_assignments(self.conference.key,
                                                  sub_key4, 1))