コード例 #1
0
ファイル: uitests.py プロジェクト: azavea/nyc-trees
class EventTestCase(NycTreesSeleniumTestCase):
    def setUp(self):
        super(EventTestCase, self).setUp()

        # Group admin
        self.user = User(username='******',
                         email='*****@*****.**',
                         first_name='Turanga',
                         last_name='Leela')
        self.user.set_password('password')
        self.user.clean_and_save()

        # Non-Group admin
        self.nonadmin_user = User(username='******',
                                  email='*****@*****.**',
                                  first_name='Zapp',
                                  last_name='Brannigan')
        self.nonadmin_user.set_password('password')
        self.nonadmin_user.clean_and_save()

        self.group = Group.objects.create(
            name='Planet Express',
            slug='planet-express',
            description='A simple delivery company',
            contact_name='Professor Farnseworth',
            contact_email='*****@*****.**',
            contact_url='https://planetexpress.nyc',
            admin=self.user
        )
コード例 #2
0
ファイル: tests.py プロジェクト: azavea/nyc-trees
    def test_email_uniqueness(self):
        guy = User(username='******', email='*****@*****.**')
        guy.set_password('password')
        guy.save()

        gal = User(username='******', email='*****@*****.**')
        gal.set_password('password')

        with self.assertRaises(ValidationError) as ec:
            gal.clean_and_save()

        self.assertIn('email', ec.exception.error_dict)
コード例 #3
0
ファイル: uitests.py プロジェクト: azavea/nyc-trees
class RsvpForEventUITest(EventTestCase):
    def setUp(self):
        super(RsvpForEventUITest, self).setUp()

        self.user2 = User(username='******',
                          email='*****@*****.**',
                          first_name='Bender',
                          last_name='Rodríguez')
        self.user2.set_password('password')
        self.user2.clean_and_save()

        self.event = Event.objects.create(group=self.group,
                                          title="The event",
                                          slug="the-event",
                                          contact_email="*****@*****.**",
                                          address="123 Main St",
                                          location=CENTRAL_PARK,
                                          max_attendees=100,
                                          begins_at=now(),
                                          ends_at=now())

    @property
    def event_detail_url(self):
        return self.event.get_absolute_url()

    def get_event_page(self):
        self.get(self.event_detail_url)

    def test_rsvp(self):
        self.assertEqual(EventRegistration.objects.all().count(), 0)
        self.login(self.user2.username)
        self.get_event_page()

        self.wait_for_text("RSVP")
        self.click('#rsvp')
        self.wait_for_text("RSVPed")
        self.assertEqual(EventRegistration.objects.all().count(), 1)
        self.assertEqual(EventRegistration.objects.all()[0].user,
                         self.user2)
        self.assertEqual(EventRegistration.objects.all()[0].event,
                         self.event)

    def test_cancel_rsvp(self):
        EventRegistration.objects.create(user=self.user2, event=self.event)

        self.login(self.user2.username)
        self.get_event_page()

        self.wait_for_text("1 / 100")
        self.click('#rsvp')
        self.wait_for_text("0 / 100")
        self.assertEqual(EventRegistration.objects.all().count(), 0)

    def test_group_admin_sees_admin_button(self):
        self.login(self.user.username)
        self.get_event_page()
        self.wait_for_text("Admin")

    def test_user_not_logged_in_can_rsvp(self):
        self.get_event_page()
        self.wait_for_text("0 / 100")
        self.click('#rsvp')
        expected_url = (self.live_server_url + reverse('login') + '?next=' +
                        self.event_detail_url)
        self.assertEqual(expected_url, self.sel.current_url)

        self.wait_for_textbox_then_type('[name="username"]',
                                        self.user2.username)
        self.wait_for_textbox_then_type('[name="password"]', 'password')
        self.click('form input[type="submit"]')

        expected_url = self.live_server_url + self.event_detail_url
        self.assertEqual(expected_url, self.sel.current_url)
        self.wait_for_text("0 / 100")
        self.click('#rsvp')
        self.wait_for_text("1 / 100")

    def test_at_capacity(self):
        self.event.max_attendees = 1
        self.event.save()
        EventRegistration.objects.create(user=self.user, event=self.event)
        self.login(self.user2.username)
        self.get_event_page()
        self.wait_for_text("At Capacity")
        self.click('#rsvp')  # clicking should do nothing
        self.wait_for_text("At Capacity")

    def test_user_not_logged_in_at_capacity(self):
        self.event.max_attendees = 1
        self.event.save()
        EventRegistration.objects.create(user=self.user, event=self.event)
        self.get_event_page()
        self.wait_for_text("At Capacity")
        self.click('#rsvp')  # clicking should do nothing
        self.wait_for_text("At Capacity")