Example #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)
Example #2
0
    def test_create_phase_log(self):
        phase1 = ProjectPhaseFactory.create()
        phase2 = ProjectPhaseFactory.create()

        project = ProjectFactory.create(status=phase1)

        phase_logs = PROJECT_PHASE_LOG_MODEL.objects.all()
        self.assertEquals(len(phase_logs), 1)
        self.assertEquals(phase_logs[0].status, project.status)

        project.status = phase2
        project.save()

        phase_logs = PROJECT_PHASE_LOG_MODEL.objects.all().order_by("-start")
        self.assertEquals(len(phase_logs), 2)
        self.assertEquals(phase_logs[0].status, project.status)
Example #3
0
    def test_create_phase_log(self):
        phase1 = ProjectPhaseFactory.create()
        phase2 = ProjectPhaseFactory.create()

        project = ProjectFactory.create(status=phase1)

        phase_logs = ProjectPhaseLog.objects.all()
        self.assertEquals(len(phase_logs), 1)
        self.assertEquals(phase_logs[0].status, project.status)

        project.status = phase2
        project.save()

        phase_logs = ProjectPhaseLog.objects.all().order_by("-start")
        self.assertEquals(len(phase_logs), 2)
        self.assertEquals(phase_logs[0].status, project.status)
Example #4
0
    def test_task_preview_search(self):
        # create project phases
        phase1 = ProjectPhaseFactory.create(viewable=True)
        phase2 = ProjectPhaseFactory.create(viewable=False)

        self.some_project.status = phase1
        self.some_project.save()
        self.another_project.status = phase2
        self.another_project.save()

        # create tasks for projects
        self.task1 = TaskFactory.create(
            status=Task.TaskStatuses.in_progress,
            author=self.some_project.owner,
            project=self.some_project,
            deadline=timezone.datetime(2010, 05, 05, tzinfo=timezone.get_current_timezone())
        )
Example #5
0
    def test_task_preview_search(self):
        # create project phases
        phase1 = ProjectPhaseFactory.create(viewable=True)
        phase2 = ProjectPhaseFactory.create(viewable=False)

        self.some_project.status = phase1
        self.some_project.save()
        self.another_project.status = phase2
        self.another_project.save()

        # create tasks for projects
        self.task1 = TaskFactory.create(
            status=BB_TASK_MODEL.TaskStatuses.in_progress,
            author=self.some_project.owner,
            project=self.some_project,
        )
        self.task2 = TaskFactory.create(
            status=BB_TASK_MODEL.TaskStatuses.open,
            author=self.another_project.owner,
            project=self.another_project,
        )

        self.assertEqual(2, BB_PROJECT_MODEL.objects.count())
        self.assertEqual(2, BB_TASK_MODEL.objects.count())

        api_url = self.task_url + 'previews/'

        # test that only one task preview is returned
        response = self.client.get(api_url, token=self.some_token)
        self.assertEqual(response.status_code, status.HTTP_200_OK, response.data)
        self.assertEqual(response.data['count'], 1)

        response = self.client.get(api_url, {'status': 'in progress'}, token=self.some_token)
        self.assertEqual(response.status_code, status.HTTP_200_OK, response.data)
        self.assertEqual(response.data['count'], 1)

        response = self.client.get(api_url, {'status': 'open'}, token=self.some_token)
        self.assertEqual(response.status_code, status.HTTP_200_OK, response.data)
        self.assertEqual(response.data['count'], 0)

        skill = self.task1.skill
        response = self.client.get(api_url, {'skill': skill.id}, token=self.some_token)
        self.assertEqual(response.status_code, status.HTTP_200_OK, response.data)
        self.assertEqual(response.data['count'], 1)
        self.assertEqual(response.data['results'][0]['id'], self.task1.id)
Example #6
0
    def test_task_preview_search(self):
        # create project phases
        phase1 = ProjectPhaseFactory.create(viewable=True)
        phase2 = ProjectPhaseFactory.create(viewable=False)

        self.some_project.status = phase1
        self.some_project.save()
        self.another_project.status = phase2
        self.another_project.save()

        # create tasks for projects
        task1 = TaskFactory.create(status=Task.TaskStatuses.in_progress,
                                   author=self.some_project.owner,
                                   project=self.some_project,
                                   deadline=timezone.datetime(
                                       2010,
                                       05,
                                       05,
                                       tzinfo=timezone.get_current_timezone()))
Example #7
0
    def setUp(self):

        phase_data = [{'sequence': 1, 'name': 'Plan - New', 'viewable': False},
                {'sequence': 2, 'name': 'Plan - Submitted', 'viewable': False},
                {'sequence': 3, 'name': 'Plan - Needs Work', 'viewable': False},
                {'sequence': 4, 'name': 'Running', 'viewable': True},
                {'sequence': 5, 'name': 'Realised', 'viewable': True},
                {'sequence': 6, 'name': 'Closed', 'viewable': False}]

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

        self.some_user = BlueBottleUserFactory.create()
        self.another_user = BlueBottleUserFactory.create()
        self.phase1 = ProjectPhaseFactory.create(slug='realised') # Required model for bb_payouts signals 
        self.project = ProjectFactory(owner=self.some_user, status=self.phase1)

        self.task = TaskFactory.create(
            author=self.project.owner,
            project=self.project,
        )
Example #8
0
    def setUp(self):
        super(FollowTests, self).setUp()
        self.init_projects()

        self.some_user = BlueBottleUserFactory.create()
        self.another_user = BlueBottleUserFactory.create()
        self.phase1 = ProjectPhaseFactory.create(slug='realised') # Required model for bb_payouts signals
        self.project = ProjectFactory(owner=self.some_user, status=self.phase1)

        self.task = TaskFactory.create(
            author=self.project.owner,
            project=self.project,
        )
Example #9
0
    def setUp(self):
        super(FollowTests, self).setUp()
        self.init_projects()

        self.some_user = BlueBottleUserFactory.create()
        self.another_user = BlueBottleUserFactory.create()
        self.phase1 = ProjectPhaseFactory.create(
            slug='realised')  # Required model for bb_payouts signals
        self.project = ProjectFactory(owner=self.some_user, status=self.phase1)

        self.task = TaskFactory.create(
            author=self.project.owner,
            project=self.project,
        )
Example #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)
Example #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()