예제 #1
0
 def test_edit_as_member(self):
     '''edit_troupe view, edit flow success
     '''
     persona = PersonaFactory()
     troupe = TroupeFactory()
     troupe.membership.add(persona)
     troupe.save()
     url = reverse(self.view_name, args=[troupe.pk], urlconf='gbe.urls')
     login_as(persona.performer_profile.profile, self)
     response = self.client.get(url)
     self.assertRedirects(
         response,
         reverse('troupe_view', urlconf='gbe.urls', args=[str(troupe.pk)]))
 def test_edit_troupe_bad_data(self):
     '''edit_troupe view, edit flow success
     '''
     persona = PersonaFactory()
     contact = persona.performer_profile
     troupe = TroupeFactory(contact=contact)
     url = reverse(self.view_name,
                   args=[troupe.pk],
                   urlconf='gbe.urls')
     login_as(contact.profile, self)
     data = {'contact': persona.performer_profile.pk,
             'name':  "New Troupe",
             'homepage': persona.homepage,
             'bio': "bio",
             'experience': 'bad',
             'awards': "many",
             'membership': [persona.pk]}
     response = self.client.post(
         url,
         data=data,
         follow=True
     )
     self.assertEqual(response.status_code, 200)
     self.assertContains(response, 'Tell Us About Your Troupe')
     expected_string = "Enter a whole number."
     self.assertContains(response, expected_string)
예제 #3
0
 def test_not_users_personae(self):
     troupe = TroupeFactory()
     user = ProfileFactory()
     login_as(user, self)
     response = self.client.get(self.url)
     self.assertNotContains(response, troupe.name)
     self.assertNotContains(response, troupe.pk)
 def test_act_tech_troupe_member_view(self):
     troupe = TroupeFactory()
     member = PersonaFactory()
     troupe.membership.add(member)
     act = ActFactory(performer=troupe,
                      submitted=True,
                      b_conference=self.current_conf,
                      accepted=3)
     current_act_context = ActTechInfoContext(
         performer=troupe,
         act=act,
         conference=self.current_conf,
         schedule_rehearsal=True)
     act.tech = TechInfoFactory(
         track_artist="",
         track=SimpleUploadedFile("file.mp3", b"file_content"),
         prop_setup="text",
         starting_position="Onstage",
         primary_color="text",
         feel_of_act="text",
         pronouns="text",
         introduction_text="text")
     act.tech.save()
     event_id = make_act_app_ticket(self.current_conf)
     login_as(member.performer_profile, self)
     url = reverse("home", urlconf="gbe.urls")
     response = self.client.get(url)
     self.assertContains(
         response,
         reverse("act_techinfo_detail",
                 urlconf="gbe.reporting.urls",
                 args=[act.pk]))
예제 #5
0
 def test_cannot_edit_troupe_if_not_contact(self):
     troupe = TroupeFactory()
     member = PersonaFactory()
     troupe.membership.add(member)
     url = reverse("home", urlconf="gbe.urls")
     login_as(member.performer_profile, self)
     response = self.client.get(url)
     assert response.content.count("(Click to edit)") == 1
예제 #6
0
 def test_update_troupe(self):
     troupe = TroupeFactory()
     login_as(troupe.contact, self)
     url = reverse(self.view_name, urlconf='gbe.urls', args=[troupe.pk])
     response = self.client.get(url, follow=True)
     self.assertRedirects(
         response,
         reverse('troupe-update', urlconf="gbe.urls", args=[troupe.pk]))
예제 #7
0
 def test_list_personae_w_search_by_persona_name(self):
     persona1 = PersonaFactory()
     troupe1 = TroupeFactory(contact=persona1.contact)
     login_as(troupe1.contact.user_object, self)
     response = self.client.get("%s?q=%s" % (self.url, troupe1.name))
     self.assertContains(response, troupe1.name)
     self.assertContains(response, troupe1.pk)
     self.assertNotContains(response, persona1.name)
예제 #8
0
 def setUp(self):
     self.client = Client()
     self.privileged_user = ProfileFactory.create().user_object
     grant_privilege(self.privileged_user, 'Act Coordinator',
                     'view_performer')
     login_as(self.privileged_user, self)
     self.persona = PersonaFactory()
     self.troupe = TroupeFactory()
예제 #9
0
 def test_edit_wrong_user(self):
     '''edit_troupe view, edit flow success
     '''
     persona = PersonaFactory()
     troupe = TroupeFactory()
     url = reverse(self.view_name, args=[troupe.pk], urlconf='gbe.urls')
     login_as(persona.performer_profile.profile, self)
     response = self.client.get(url, follow=True)
     self.assertEqual(response.status_code, 404)
예제 #10
0
 def test_no_profile(self):
     troupe = TroupeFactory()
     user = UserFactory()
     url = reverse("troupe_view",
                   args=[troupe.resourceitem_id],
                   urlconf='gbe.urls')
     login_as(user, self)
     response = self.client.get(url)
     nt.assert_equal(302, response.status_code)
예제 #11
0
 def test_edit_as_member(self):
     '''edit_troupe view, edit flow success
     '''
     persona = PersonaFactory()
     troupe = TroupeFactory()
     troupe.membership.add(persona)
     troupe.save()
     url = reverse(self.view_name,
                   args=[troupe.pk],
                   urlconf='gbe.urls')
     login_as(persona.performer_profile.profile, self)
     response = self.client.get(url)
     self.assertRedirects(
         response,
         reverse(
             'troupe_view',
             urlconf='gbe.urls',
             args=[str(troupe.pk)]))
예제 #12
0
    def test_view_troupe_as_member(self):
        '''view_troupe view, success
        '''
        persona = PersonaFactory()
        member = PersonaFactory()
        contact = persona.performer_profile
        troupe = TroupeFactory(contact=contact)
        troupe.membership.add(member)
        troupe.save()
        url = reverse('troupe_view',
                      args=[troupe.resourceitem_id],
                      urlconf='gbe.urls')
        login_as(member.performer_profile.user_object, self)

        response = self.client.get(url)
        self.assertEqual(response.status_code, 200)
        self.assertContains(response, troupe.name)
        self.assertContains(response, troupe.contact.user_object.email)
        self.assertContains(response, member.name)
예제 #13
0
    def test_view_troupe_as_member(self):
        '''view_troupe view, success
        '''
        persona = PersonaFactory()
        member = PersonaFactory()
        contact = persona.performer_profile
        troupe = TroupeFactory(contact=contact)
        troupe.membership.add(member)
        troupe.save()
        url = reverse('troupe_view',
                      args=[troupe.resourceitem_id],
                      urlconf='gbe.urls')
        login_as(member.performer_profile.user_object, self)

        response = self.client.get(url)
        self.assertEqual(response.status_code, 200)
        self.assertContains(response, troupe.name)
        self.assertContains(response, troupe.contact.user_object.email)
        self.assertContains(response, member.name)
예제 #14
0
 def test_no_persona(self):
     profile = ProfileFactory()
     troupe = TroupeFactory()
     url = reverse(self.view_name, args=[troupe.pk], urlconf='gbe.urls')
     request = self.factory.get('/troupe/edit/%d' % troupe.pk)
     login_as(profile, self)
     response = self.client.get(url)
     expected_loc = 'http://testserver/performer/create?next=/troupe/create'
     self.assertEqual(expected_loc, location(response))
     self.assertEqual(response.status_code, 302)
예제 #15
0
 def setUp(self):
     self.client = Client()
     self.profile = ProfilePreferencesFactory(
         profile__purchase_email='*****@*****.**').profile
     self.troupe = TroupeFactory(contact=self.profile)
     self.member = PersonaFactory()
     self.troupe.membership.add(self.member)
     self.privileged_user = ProfileFactory().user_object
     grant_privilege(self.privileged_user, 'Registrar')
     self.url = reverse(self.view_name, urlconf='gbe.urls')
예제 #16
0
 def test_get_edit_troupe(self):
     '''edit_troupe view, edit flow success
     '''
     persona = PersonaFactory()
     contact = persona.performer_profile
     troupe = TroupeFactory(contact=contact)
     url = reverse(self.view_name, args=[troupe.pk], urlconf='gbe.urls')
     login_as(contact.profile, self)
     response = self.client.get(url)
     self.assertEqual(response.status_code, 200)
     self.assertContains(response, 'Tell Us About Your Troupe')
예제 #17
0
    def test_review_class_no_state_in_profile(self):
        troupe = TroupeFactory()
        troupe.contact.state = ''
        troupe.contact.save()
        url = reverse('troupe_view',
                      args=[troupe.resourceitem_id],
                      urlconf='gbe.urls')

        login_as(troupe.contact.profile.user_object, self)
        response = self.client.get(url)
        self.assertContains(response, 'No State Chosen')
 def test_review_act_w_troupe(self):
     # causes a check on act complete state that is different from soloist
     troupe = TroupeFactory()
     member = PersonaFactory()
     troupe.membership.add(member)
     act = ActFactory(performer=troupe,
                      submitted=True,
                      b_conference=self.current_conf)
     login_as(member.performer_profile, self)
     url = reverse("home", urlconf="gbe.urls")
     response = self.client.get(url)
     self.assertContains(response, act.b_title)
 def test_no_profile(self):
     troupe = TroupeFactory()
     url = reverse(self.view_name,
                   args=[troupe.pk],
                   urlconf='gbe.urls')
     login_as(UserFactory(), self)
     response = self.client.get(url, follow=True)
     expected_loc = '%s?next=%s' % (
         reverse('profile_update', urlconf="gbe.urls"),
         url)
     self.assertRedirects(response, expected_loc)
     self.assertContains(response, no_profile_msg)
예제 #20
0
    def test_view_troupe_as_random_person(self):
        '''view_troupe view, success
        '''
        persona = PersonaFactory()
        random = ProfileFactory()
        contact = persona.performer_profile
        troupe = TroupeFactory(contact=contact)
        url = reverse('troupe_view',
                      args=[troupe.resourceitem_id],
                      urlconf='gbe.urls')
        login_as(random.user_object, self)

        response = self.client.get(url, follow=True)
        self.assertEqual(response.status_code, 404)
예제 #21
0
 def test_delete_troupe(self):
     self.troupe = TroupeFactory()
     self.url = reverse(self.view_name,
                        urlconf="gbe.urls",
                        args=[self.troupe.pk])
     login_as(self.troupe.contact, self)
     response = self.client.post(self.url,
                                 data={'submit': 'Confirm'},
                                 follow=True)
     self.assertRedirects(response, reverse('home', urlconf="gbe.urls"))
     assert_alert_exists(
         response,
         'success',
         'Success',
         "Successfully deleted persona %s" % str(self.troupe))
    def test_act_changestate_troupe(self):
        # No decision -> accept
        # new show, new role
        act = ActFactory(b_conference=self.context.conference,
                         performer=TroupeFactory())
        act.performer.membership.add(PersonaFactory())
        act.performer.membership.add(PersonaFactory())

        url = reverse(self.view_name, args=[act.pk], urlconf='gbe.urls')
        self.data['accepted'] = '3'
        login_as(self.privileged_user, self)
        response = self.client.post(url, data=self.data, follow=True)
        self.assertContains(
            response, "%s<br>Performer/Act: %s " %
            (act_status_change_msg, str(act.performer)))
 def test_review_act_techinfo_troupe_member(self):
     '''review_act_techinfo view should load for Tech Crew
        and fail for others
     '''
     troupe = TroupeFactory()
     member = PersonaFactory()
     troupe.membership.add(member)
     self.context.act.performer = troupe
     self.context.act.save()
     self.set_the_basics()
     login_as(member.performer_profile, self)
     response = self.client.get(self.url)
     self.assertContains(response, self.context.act.b_title)
     self.assertContains(response, str(self.context.act.performer))
     self.assertContains(response, str(self.context.show))
     self.assertContains(response, self.context.act.tech.introduction_text)
예제 #24
0
 def test_delete_troupe_with_bid(self):
     self.troupe = TroupeFactory()
     self.url = reverse(self.view_name,
                        urlconf="gbe.urls",
                        args=[self.troupe.pk])
     ActFactory(performer=self.troupe)
     login_as(self.troupe.contact, self)
     response = self.client.post(self.url,
                                 data={'submit': 'Confirm'},
                                 follow=True)
     self.assertRedirects(response, reverse('home', urlconf="gbe.urls"))
     assert_alert_exists(
         response,
         'danger',
         'Error',
         delete_in_use)
예제 #25
0
 def submit_troupe(self):
     persona = PersonaFactory()
     contact = persona.performer_profile
     troupe = TroupeFactory(contact=contact)
     url = reverse(self.view_name, args=[troupe.pk], urlconf='gbe.urls')
     login_as(contact.profile, self)
     data = {
         'contact': persona.performer_profile.pk,
         'name': "New Troupe",
         'homepage': persona.homepage,
         'bio': "bio",
         'experience': 1,
         'awards': "many",
         'membership': [persona.pk]
     }
     response = self.client.post(url, data=data, follow=True)
     return response, data
 def test_get_edit_troupe(self):
     '''edit_troupe view, edit flow success
     '''
     persona = PersonaFactory()
     contact = persona.performer_profile
     troupe = TroupeFactory(contact=contact)
     url = reverse(self.view_name,
                   args=[troupe.pk],
                   urlconf='gbe.urls')
     login_as(contact.profile, self)
     response = self.client.get(url)
     self.assertEqual(response.status_code, 200)
     self.assertContains(response, 'Tell Us About Your Troupe')
     self.assertContains(
         response,
         '<a href="#" data-toggle="modal" data-target="#DeleteModal" ' +
         'data-backdrop="true" class="btn gbe-btn-secondary">Delete</a>',
         html=True)
예제 #27
0
    def test_view_troupe_as_privileged_user(self):
        '''view_troupe view, success
        '''
        persona = PersonaFactory()
        contact = persona.performer_profile
        troupe = TroupeFactory(contact=contact)
        priv_profile = ProfileFactory()
        grant_privilege(priv_profile.user_object, 'Registrar')

        url = reverse('troupe_view',
                      args=[troupe.resourceitem_id],
                      urlconf='gbe.urls')
        login_as(priv_profile.user_object, self)

        response = self.client.get(url)
        self.assertEqual(response.status_code, 200)
        self.assertContains(response, troupe.name)
        self.assertContains(response, troupe.contact.user_object.email)
예제 #28
0
 def test_bad_performer(self):
     troupe = TroupeFactory()
     login_as(troupe.contact, self)
     url = reverse(self.view_name, urlconf='gbe.urls', args=[troupe.pk + 1])
     response = self.client.get(url)
     self.assertEqual(response.status_code, 404)
예제 #29
0
 def test_with_troupe(self):
     troupe = TroupeFactory(contact=self.profile)
     login_as(self.privileged_user, self)
     response = self.client.get(self.url)
     self.assertContains(response, troupe.name)
예제 #30
0
 def test_list_performer(self):
     troupe = TroupeFactory()
     login_as(troupe.contact.user_object, self)
     response = self.client.get(self.url)
     self.assertContains(response, troupe.name)
     self.assertContains(response, troupe.pk)