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