예제 #1
0
    def init_projects(self):
        """
        Set up some basic models needed for project creation.
        """
        phase_data = [{'id': 1, 'name': 'Plan - New', 'viewable': False},
                      {'id': 2, 'name': 'Plan - Submitted', 'viewable': False},
                      {'id': 3, 'name': 'Plan - Needs Work', 'viewable': False},
                      {'id': 4, 'name': 'Plan - Rejected', 'viewable': False},
                      {'id': 6, 'name': 'Plan - Accepted', 'viewable': True},
                      {'id': 5, 'name': 'Campaign', 'viewable': True},
                      {'id': 7, 'name': 'Stopped', 'viewable': False},
                      {'id': 8, 'name': 'Done - Complete', 'viewable': True},
                      {'id': 9, 'name': 'Done - Incomplete', 'viewable': True}]

        theme_data = [{'id': 1, 'name': 'Education'},
                      {'id': 2, 'name': 'Environment'}]

        language_data = [{'id': 1, 'code': 'en', 'language_name': 'English', 'native_name': 'English'},
                         {'id': 2, 'code': 'nl', 'language_name': 'Dutch', 'native_name': 'Nederlands'}]

        partner_data = [{'id': 1, 'slug': 'cheetah', 'name': 'The Cheetah Campaign'},
                        {'id': 2, 'slug': 'macro_micro', 'name': 'Macro Micro'}]

        for partner in partner_data:
            PartnerFactory.create(**partner)

        for phase in phase_data:
            ProjectPhaseFactory.create(**phase)

        for theme in theme_data:
            ProjectThemeFactory.create(**theme)

        for language in language_data:
            LanguageFactory.create(**language)
예제 #2
0
    def test_sort_matching_theme(self):
        theme = ProjectThemeFactory.create()
        self.owner.favourite_themes.add(theme)
        self.owner.save()

        initiative = InitiativeFactory.create(theme=theme)

        first = EventFactory.create(status='open', capacity=1)
        ParticipantFactory.create(activity=first)
        second = EventFactory.create(status='open',
                                     initiative=initiative,
                                     capacity=1)
        ParticipantFactory.create(activity=second)
        third = EventFactory.create(status='open')
        ParticipantFactory.create(activity=third)
        fourth = EventFactory.create(status='open', initiative=initiative)
        ParticipantFactory.create(activity=fourth)

        response = self.client.get(self.url + '?sort=popularity',
                                   user=self.owner)

        data = json.loads(response.content)

        self.assertEqual(data['meta']['pagination']['count'], 4)

        self.assertEqual(data['data'][0]['id'], str(fourth.pk))
        self.assertEqual(data['data'][1]['id'], str(third.pk))
        self.assertEqual(data['data'][2]['id'], str(second.pk))
        self.assertEqual(data['data'][3]['id'], str(first.pk))
예제 #3
0
    def test_theme_translated(self, queue_mock):
        theme = ProjectThemeFactory.create(name='Cleaning the beach',
                                           slug='cleaning-the-beach')
        project = ProjectFactory.create(theme=theme)
        task = TaskFactory.create(project=project)
        task_member = TaskMemberFactory.create(task=task)

        args, kwargs = queue_mock.call_args
        self.assertEqual(kwargs['tags']['theme'], 'Cleaning the park')
예제 #4
0
    def test_theme_translated(self, queue_mock):
        theme = ProjectThemeFactory.create(name='Cleaning the beach',
                                           slug='cleaning-the-beach')
        project = ProjectFactory.create(theme=theme)
        task = TaskFactory.create(project=project)
        TaskMemberFactory.create(task=task)

        args, kwargs = queue_mock.call_args
        self.assertEqual(kwargs['tags']['theme'], 'Cleaning the park')
예제 #5
0
    def test_theme_translated(self, queue_mock):
        theme = ProjectThemeFactory.create(name='Cleaning the beach',
                                           slug='cleaning-the-beach')
        project = ProjectFactory.create(theme=theme)
        user = BlueBottleUserFactory.create()
        TaskFactory.create(author=user, project=project)

        args, kwargs = queue_mock.call_args
        self.assertEqual(kwargs['tags']['theme'], 'Cleaning the park')
예제 #6
0
    def test_theme_translated(self, queue_mock):
        theme = ProjectThemeFactory.create(name='Cleaning the beach',
                                           slug='cleaning-the-beach')
        project = ProjectFactory.create(theme=theme)
        user = BlueBottleUserFactory.create()
        task = TaskFactory.create(author=user, project=project)

        args, kwargs = queue_mock.call_args
        self.assertEqual(kwargs['tags']['theme'], 'Cleaning the park')
예제 #7
0
    def setUp(self):
        super(TestProjectStatusUpdate, self).setUp()

        self.init_projects()

        self.theme = ProjectThemeFactory(slug='test-theme')
        self.project = ProjectFactory(theme=self.theme)
        self.task = TaskFactory(project=self.project)

        self.survey = SurveyFactory(link='https://example.com/survey/1/', active=True)
예제 #8
0
    def setUp(self):
        super(ThemeAPITestCase, self).setUp()

        self.client = JSONAPITestClient()
        ProjectTheme.objects.all().delete()

        self.list_url = reverse('initiative-theme-list')
        self.user = BlueBottleUserFactory()
        themes = ProjectThemeFactory.create_batch(5, disabled=False)
        self.theme = themes[0]
        self.detail_url = reverse('initiative-theme', args=(self.theme.id, ))
예제 #9
0
    def setUp(self):
        super(TestSurveyGizmoAdapter, self).setUp()

        self.init_projects()

        self.theme = ProjectThemeFactory(slug='test-theme')
        self.project = ProjectFactory()

        self.task = TaskFactory(project=self.project)

        self.survey = SurveyFactory(remote_id='test-id',
                                    last_synced=timezone.now())
예제 #10
0
    def setUp(self):
        self.user_a = self.create_user(email='*****@*****.**', first_name='aname ', last_name='alast')
        self.user_b = self.create_user(email='*****@*****.**', first_name='bname ', last_name='blast')
        self.user_c = self.create_user(email='*****@*****.**', first_name='cname ', last_name='clast')

        #self.project = self.create_project(owner=self.user_a)

        self.theme_1 = ProjectThemeFactory.create()
        self.phase_1 = ProjectPhaseFactory.create()

        self.project_1 = ProjectFactory.create(
            owner=self.user_a, status=self.phase_1, theme=self.theme_1)

        self.task_1 = TaskFactory(author=self.user_a, project=self.project_1)
예제 #11
0
    def setUp(self):
        super(TestProjectStatusUpdateStatGeneration, self).setUp()

        self.tenant = self.client.tenant

        self.init_projects()
        with patch('bluebottle.analytics.utils.queue_analytics_record'):
            self.theme = ProjectThemeFactory.create(name='Cleaning the beach',
                                                    slug='cleaning-the-beach')
            self.country = CountryFactory.create()
            self.status = ProjectPhaseFactory.create(slug='realised')
            self.project = ProjectFactory.create(theme=self.theme,
                                                 status=self.status,
                                                 country=self.country)
            self.count = ProjectPhase.objects.all().count()
예제 #12
0
    def setUp(self):
        super(TestProjectAnalytics, self).setUp()
        self.init_projects()

        self.theme = ProjectThemeFactory.create(name='Cleaning the beach',
                                                slug='cleaning-the-beach')
        self.country = CountryFactory.create()
        self.status = ProjectPhase.objects.get(slug='campaign')
        self.expected_tags = {
            'status': self.status.name,
            'theme_slug': u'cleaning-the-beach',
            'status_slug': self.status.slug,
            'country': self.country.name,
            'theme': u'Cleaning the beach',
            'location': '',
            'location_group': '',
            'type': 'project',
            'sub_type': 'funding',
            'tenant': u'test',
        }
예제 #13
0
    def setUp(self):
        super(TestProjectAnalytics, self).setUp()
        self.init_projects()

        self.theme = ProjectThemeFactory.create(name='Cleaning the beach',
                                                slug='cleaning-the-beach')
        self.country = CountryFactory.create(name='Beachville')
        self.status = ProjectPhase.objects.get(slug='campaign')
        self.expected_tags = {
            'status': self.status.name,
            'theme_slug': u'cleaning-the-beach',
            'status_slug': self.status.slug,
            'country': u'Beachville',
            'theme': u'Cleaning the beach',
            'location': '',
            'location_group': '',
            'type': 'project',
            'sub_type': u'funding',
            'tenant': u'test',
        }
예제 #14
0
    def test_sort_matching_combined(self):
        theme = ProjectThemeFactory.create()
        self.owner.favourite_themes.add(theme)

        skill = SkillFactory.create()
        self.owner.skills.add(skill)

        self.owner.location = LocationFactory.create(position='10.0, 20.0')
        self.owner.save()

        initiative = InitiativeFactory.create(theme=theme)

        first = EventFactory.create(status='open',
                                    initiative=initiative,
                                    is_online=False)
        second = AssignmentFactory.create(
            status='open',
            location=GeolocationFactory.create(position=Point(21.0, 9.0)),
            initiative=initiative,
            is_online=False)
        third = AssignmentFactory.create(
            status='open',
            location=GeolocationFactory.create(position=Point(21.0, 9.0)),
            initiative=initiative,
            expertise=skill,
            is_online=False)

        response = self.client.get(self.url + '?sort=popularity',
                                   user=self.owner)

        data = json.loads(response.content)

        self.assertEqual(data['meta']['pagination']['count'], 3)

        self.assertEqual(data['data'][0]['id'], str(third.pk))
        self.assertEqual(data['data'][1]['id'], str(second.pk))
        self.assertEqual(data['data'][2]['id'], str(first.pk))
예제 #15
0
    def setUp(self):
        super(TestProjectTheme, self).setUp()

        self.init_projects()
        self.theme = ProjectThemeFactory.create()
        self.project = ProjectFactory.create(theme=self.theme)
예제 #16
0
 def setUp(self):
     super(InitiativeListAPITestCase, self).setUp()
     self.theme = ProjectThemeFactory.create()
     self.url = reverse('initiative-list')
예제 #17
0
 def test_detail_disabled(self):
     theme = ProjectThemeFactory.create(disabled=True)
     url = reverse('initiative-theme', args=(theme.id, ))
     response = self.client.get(url)
     self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND)
예제 #18
0
 def test_list_disabled(self):
     ProjectThemeFactory.create(disabled=True)
     response = self.client.get(self.list_url)
     self.assertEqual(response.status_code, status.HTTP_200_OK)
     self.assertEqual(len(response.json()['data']), 5)