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)
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]))
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
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]))
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)
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()
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)
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)
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_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)
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)
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')
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')
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)
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)
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)
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)
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)
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)
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)
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)
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)