Example #1
0
    def test_edit_event(self):
        """Edit event with inactive categories."""
        start_form = {
            'start_form_0_month': 1,
            'start_form_0_day': 25,
            'start_form_0_year': 2014,
            'start_form_1_hour': 4,
            'start_form_1_minute': 1}
        end_form = {
            'end_form_0_month': 1,
            'end_form_0_day': 25,
            'end_form_0_year': 2015,
            'end_form_1_hour': 4,
            'end_form_1_minute': 1}

        owner = UserFactory.create(groups=['Mentor'])
        active_areas = FunctionalAreaFactory.create_batch(2)
        inactive_areas = FunctionalAreaFactory.create_batch(2, active=False)
        event = EventFactory.create(owner=owner, categories=inactive_areas)

        data = model_to_dict(event)
        data['categories'] = [x.id for x in active_areas + inactive_areas]
        data.update(start_form)
        data.update(end_form)

        form = EventForm(data=data, editable_owner=False, instance=event)
        ok_(form.is_valid())
        result = form.save()
        for area in active_areas + inactive_areas:
            ok_(area in result.categories.all())
Example #2
0
    def test_invalid_formset(self):
        """Test unique metrics validation."""
        metrics = EventMetricFactory.create_batch(2)
        FunctionalAreaFactory.create_batch(3)

        data = {
            'eventmetricoutcome_set-0-id': '',
            'eventmetricoutcome_set-0-metric': metrics[0].id,
            'eventmetricoutcome_set-0-expected_outcome': 100,
            'eventmetricoutcome_set-1-id': '',
            'eventmetricoutcome_set-1-metric': metrics[0].id,
            'eventmetricoutcome_set-1-expected_outcome': 10,
            'eventmetricoutcome_set-2-id': '',
            'eventmetricoutcome_set-2-metric': metrics[1].id,
            'eventmetricoutcome_set-2-expected_outcome': 10,
            'eventmetricoutcome_set-TOTAL_FORMS': 2,
            'eventmetricoutcome_set-INITIAL_FORMS': 0}

        formset = inlineformset_factory(
            Event, Event.metrics.through,
            form=EventMetricsForm,
            formset=BaseEventMetricsFormset,
            extra=2)

        forms = formset(instance=Event(), data=data)
        error_msg = 'This metric has already been selected.'
        ok_(not forms.is_valid())
        eq_(forms.errors[1]['metric'], error_msg)
Example #3
0
    def test_edit_event(self):
        """Edit event with inactive categories."""
        start_form = {
            'start_form_0_month': 1,
            'start_form_0_day': 25,
            'start_form_0_year': 2014,
            'start_form_1_hour': 4,
            'start_form_1_minute': 1}
        end_form = {
            'end_form_0_month': 1,
            'end_form_0_day': 25,
            'end_form_0_year': 2015,
            'end_form_1_hour': 4,
            'end_form_1_minute': 1}

        owner = UserFactory.create(groups=['Mentor'])
        active_areas = FunctionalAreaFactory.create_batch(2)
        inactive_areas = FunctionalAreaFactory.create_batch(2, active=False)
        event = EventFactory.create(owner=owner, categories=inactive_areas)

        data = model_to_dict(event)
        data['categories'] = [x.id for x in active_areas + inactive_areas]
        data.update(start_form)
        data.update(end_form)

        form = EventForm(data=data, editable_owner=False, instance=event)
        ok_(form.is_valid())
        result = form.save()
        for area in active_areas + inactive_areas:
            ok_(area in result.categories.all())
Example #4
0
    def test_passive_report_save(self):
        """Test that a passive report is created on form save()"""
        start_form = {
            'start_form_0_month': 1,
            'start_form_0_day': 25,
            'start_form_0_year': 2013,
            'start_form_1_hour': 4,
            'start_form_1_minute': 1}
        end_form = {
            'end_form_0_month': 1,
            'end_form_0_day': 26,
            'end_form_0_year': 2013,
            'end_form_1_hour': 4,
            'end_form_1_minute': 1}

        owner = UserFactory.create(groups=['Rep', 'Mentor'])
        areas = FunctionalAreaFactory.create_batch(2)
        event = EventFactory.create(owner=owner, categories=areas)

        data = model_to_dict(event)
        data['categories'] = [x.id for x in areas]
        data.update(start_form)
        data.update(end_form)

        form = PostEventForm(data=data, editable_owner=False, instance=event)

        activity = Activity.objects.get(name=ACTIVITY_POST_EVENT_METRICS)
        reports = NGReport.objects.filter(user=owner, activity=activity)
        ok_(not reports.exists())
        ok_(form.is_valid())
        form.save()

        reports = NGReport.objects.filter(user=owner, activity=activity)
        ok_(reports.count(), 1)
Example #5
0
 def test_get_remo_url(self):
     mentor = UserFactory.create()
     functional_areas = FunctionalAreaFactory.create_batch(2)
     user = UserFactory.create(userprofile__mentor=mentor, groups=['Rep'],
                               userprofile__functional_areas=functional_areas)
     url = '/api/beta/users/%s' % user.id
     request = RequestFactory().get(url)
     data = UserProfileDetailedSerializer(user.userprofile, context={'request': request}).data
     ok_(user.userprofile.get_absolute_url() in data['remo_url'])
Example #6
0
    def setUp(self):

        categories = FunctionalAreaFactory.create_batch(3)
        goals = EventGoalFactory.create_batch(3)
        metrics = EventMetricFactory.create_batch(3)

        self.data = {
            'name': u'Test edit event',
            'description': u'This is a description',
            'external_link': '',
            'categories': [x.id for x in categories],
            'goals': [x.id for x in goals],
            'venue': u'Hackerspace.GR',
            'lat': 38.01697,
            'lon': 23.7314,
            'city': u'Athens',
            'region': u'Attica',
            'country': u'Greece',
            'start_form_0_month': 01,
            'start_form_0_day': 25,
            'start_form_0_year': 2014,
            'start_form_1_hour': 04,
            'start_form_1_minute': 01,
            'end_form_0_month': 01,
            'end_form_0_day': 03,
            'end_form_0_year': 2018,
            'end_form_1_hour': 03,
            'end_form_1_minute': 00,
            'timezone': u'Europe/Athens',
            'mozilla_event': u'on',
            'estimated_attendance': u'10',
            'actual_attendance': u'10',
            'extra_content': u'This is extra content',
            'planning_pad_url': u'',
            'hashtag': u'#testevent',
            'swag_bug_form': u'',
            'budget_bug_form': u'',
            'eventmetricoutcome_set-0-id': '',
            'eventmetricoutcome_set-0-metric': metrics[0].id,
            'eventmetricoutcome_set-0-expected_outcome': 100,
            'eventmetricoutcome_set-1-id': '',
            'eventmetricoutcome_set-1-metric': metrics[1].id,
            'eventmetricoutcome_set-1-expected_outcome': 10,
            'eventmetricoutcome_set-TOTAL_FORMS': 2,
            'eventmetricoutcome_set-INITIAL_FORMS': 0}

        self.event_edit_url = reverse('events_edit_event',
                                      kwargs={'slug': 'test-event'})
        self.event_url = reverse('events_view_event',
                                 kwargs={'slug': 'test-event'})
Example #7
0
 def test_get_remo_url(self):
     mentor = UserFactory.create()
     functional_areas = FunctionalAreaFactory.create_batch(2)
     user = UserFactory.create(
         userprofile__mentor=mentor,
         groups=['Rep'],
         userprofile__functional_areas=functional_areas)
     url = '/api/remo/v1/users/%s' % user.id
     request = RequestFactory().get(url)
     data = UserProfileDetailedSerializer(user.userprofile,
                                          context={
                                              'request': request
                                          }).data
     ok_(user.userprofile.get_absolute_url() in data['remo_url'])
Example #8
0
 def test_edit_event(self):
     """Edit NGReport with inactive categories."""
     activity = ActivityFactory.create()
     active_area = FunctionalAreaFactory.create()
     inactive_areas = FunctionalAreaFactory.create_batch(2, active=False)
     report = NGReportFactory.create(activity=activity,
                                     functional_areas=inactive_areas)
     data = model_to_dict(report)
     areas = [active_area.id] + [x.id for x in inactive_areas]
     data['functional_areas'] = areas
     form = NGReportForm(data, instance=report)
     ok_(form.is_valid())
     result = form.save()
     for area in inactive_areas + [active_area]:
         ok_(area in result.functional_areas.all())
Example #9
0
    def test_edit_event(self):
        """Edit NGReport with inactive categories."""
        activity = ActivityFactory.create()
        campaign = CampaignFactory.create()
        active_area = FunctionalAreaFactory.create()
        inactive_areas = FunctionalAreaFactory.create_batch(2, active=False)
        report = NGReportFactory.create(activity=activity, campaign=campaign, functional_areas=inactive_areas)

        data = model_to_dict(report)
        data["functional_areas"] = active_area.id
        form = NGReportForm(data, instance=report)
        ok_(form.is_valid())
        result = form.save()
        ok_(active_area in result.functional_areas.all())
        eq_(result.functional_areas.all().count(), 1)
Example #10
0
 def test_edit_event(self):
     """Edit NGReport with inactive categories."""
     activity = ActivityFactory.create()
     active_area = FunctionalAreaFactory.create()
     inactive_areas = FunctionalAreaFactory.create_batch(2, active=False)
     report = NGReportFactory.create(activity=activity,
                                     functional_areas=inactive_areas)
     data = model_to_dict(report)
     areas = [active_area.id] + [x.id for x in inactive_areas]
     data['functional_areas'] = areas
     form = NGReportForm(data, instance=report)
     ok_(form.is_valid())
     result = form.save()
     for area in inactive_areas + [active_area]:
         ok_(area in result.functional_areas.all())
Example #11
0
    def test_edit_event(self):
        """Edit NGReport with inactive categories."""
        activity = ActivityFactory.create()
        campaign = CampaignFactory.create()
        active_area = FunctionalAreaFactory.create()
        inactive_areas = FunctionalAreaFactory.create_batch(2, active=False)
        report = NGReportFactory.create(activity=activity, campaign=campaign,
                                        functional_areas=inactive_areas)

        data = model_to_dict(report)
        data['functional_areas'] = active_area.id
        form = NGReportForm(data, instance=report)
        ok_(form.is_valid())
        result = form.save()
        ok_(active_area in result.functional_areas.all())
        eq_(result.functional_areas.all().count(), 1)
Example #12
0
    def test_base(self):
        mentor = UserFactory.create()
        functional_areas = FunctionalAreaFactory.create_batch(2)
        user = UserFactory.create(
            userprofile__mentor=mentor,
            groups=['Rep'],
            userprofile__functional_areas=functional_areas)

        url = '/api/remo/v1/users/%s' % user.id
        request = RequestFactory().get(url)
        profile = user.userprofile
        data = UserProfileDetailedSerializer(user.userprofile,
                                             context={
                                                 'request': request
                                             }).data

        eq_(data['first_name'], user.first_name)
        eq_(data['last_name'], user.last_name)
        eq_(data['display_name'], profile.display_name)
        eq_(data['date_joined_program'],
            profile.date_joined_program.strftime('%Y-%m-%d'))
        eq_(data['date_left_program'], profile.date_left_program)
        eq_(data['city'], profile.city)
        eq_(data['region'], profile.region)
        eq_(data['country'], profile.country)
        eq_(data['twitter_account'], profile.twitter_account)
        eq_(data['jabber_id'], profile.jabber_id)
        eq_(data['irc_name'], profile.irc_name)
        eq_(data['wiki_profile_url'], profile.wiki_profile_url)
        eq_(data['irc_channels'], profile.irc_channels)
        eq_(data['linkedin_url'], profile.linkedin_url)
        eq_(data['facebook_url'], profile.facebook_url)
        eq_(data['diaspora_url'], profile.diaspora_url)
        eq_(data['bio'], profile.bio)
        eq_(data['mozillians_profile_url'], profile.mozillians_profile_url)
        eq_(data['timezone'], profile.timezone)
        eq_(data['groups'][0]['name'], 'Rep')
        eq_(data['mentor']['first_name'], mentor.first_name)
        eq_(data['mentor']['last_name'], mentor.last_name)
        eq_(data['mentor']['display_name'], mentor.userprofile.display_name)
        ok_(data['mentor']['_url'])
        eq_(data['functional_areas'][0]['name'], functional_areas[0].name)
        eq_(data['functional_areas'][1]['name'], functional_areas[1].name)
Example #13
0
 def test_base(self):
     mentor = UserFactory.create()
     functional_areas = FunctionalAreaFactory.create_batch(2)
     user = UserFactory.create(
         userprofile__mentor=mentor, groups=['Rep'],
         userprofile__functional_areas=functional_areas)
     url = '/api/beta/users/%s' % user.id
     request = RequestFactory().get(url)
     profile = user.userprofile
     data = UserProfileDetailedSerializer(user.userprofile,
                                          context={'request': request}).data
     eq_(data['first_name'], user.first_name)
     eq_(data['last_name'], user.last_name)
     eq_(data['display_name'], profile.display_name)
     eq_(data['date_joined_program'],
         profile.date_joined_program.strftime('%Y-%m-%d'))
     eq_(data['date_left_program'], profile.date_left_program)
     eq_(data['city'], profile.city)
     eq_(data['region'], profile.region)
     eq_(data['country'], profile.country)
     eq_(data['twitter_account'], profile.twitter_account)
     eq_(data['jabber_id'], profile.jabber_id)
     eq_(data['irc_name'], profile.irc_name)
     eq_(data['wiki_profile_url'], profile.wiki_profile_url)
     eq_(data['irc_channels'], profile.irc_channels)
     eq_(data['linkedin_url'], profile.linkedin_url)
     eq_(data['facebook_url'], profile.facebook_url)
     eq_(data['diaspora_url'], profile.diaspora_url)
     eq_(data['bio'], profile.bio)
     eq_(data['mozillians_profile_url'], profile.mozillians_profile_url)
     eq_(data['timezone'], profile.timezone)
     eq_(data['groups'][0]['name'], 'Rep')
     eq_(data['mentor']['first_name'], mentor.first_name)
     eq_(data['mentor']['last_name'], mentor.last_name)
     eq_(data['mentor']['display_name'], mentor.userprofile.display_name)
     ok_(data['mentor']['_url'])
     eq_(data['functional_areas'][0]['name'], functional_areas[0].name)
     eq_(data['functional_areas'][1]['name'], functional_areas[1].name)