Exemple #1
0
    def test_all_academy_events(self, models=None):
        self.headers(academy=1)
        url = reverse_lazy('events:academy_all_events')

        if models is None:
            models = [
                self.generate_models(authenticate=True,
                                     profile_academy=True,
                                     capability='read_event',
                                     role='potato',
                                     syllabus=True,
                                     event=True)
            ]

        response = self.client.get(url)
        json = response.json()
        expected = [{
            'id':
            model['event'].id,
            'banner':
            model['event'].banner,
            'ending_at':
            datetime_to_iso_format(model['event'].ending_at),
            'event_type':
            model['event'].event_type,
            'excerpt':
            model['event'].excerpt,
            'lang':
            model['event'].lang,
            'online_event':
            model['event'].online_event,
            'starting_at':
            datetime_to_iso_format(model['event'].starting_at),
            'status':
            model['event'].status,
            'title':
            model['event'].title,
            'url':
            model['event'].url,
            'venue':
            model['event'].venue
        } for model in models]

        expected.reverse()

        self.assertEqual(json, expected)
        self.assertEqual(response.status_code, 200)

        self.assertEqual(self.all_event_dict(), [{
            **self.model_to_dict(model, 'event'),
        } for model in models])
        return models
Exemple #2
0
    def test_all_academy_events_upcoming(self):
        self.headers(academy=1)
        event_kwargs = {"starting_at": timezone.now()}
        model = self.generate_models(authenticate=True,
                                     profile_academy=True,
                                     capability='read_event',
                                     role='potato',
                                     syllabus=True,
                                     venue=True,
                                     event=True,
                                     event_kwargs=event_kwargs)
        url = reverse_lazy('events:academy_all_events') + "?past=true"

        response = self.client.get(url)
        json = response.json()
        expected = [{
            'banner':
            model['event'].banner,
            'ending_at':
            datetime_to_iso_format(model['event'].ending_at),
            'event_type':
            model['event'].event_type,
            'excerpt':
            model['event'].excerpt,
            'id':
            model['event'].id,
            'lang':
            model['event'].lang,
            'online_event':
            model['event'].online_event,
            'starting_at':
            datetime_to_iso_format(model['event'].starting_at),
            'status':
            model['event'].status,
            'title':
            model['event'].title,
            'url':
            model['event'].url,
            'venue': {
                'city': model['event'].venue.city,
                'id': model['event'].id,
                'state': model['event'].venue.state,
                'street_address': model['event'].venue.street_address,
                'title': model['event'].venue.title,
                'zip_code': model['event'].venue.zip_code
            }
        }]

        self.assertEqual(json, expected)
        self.assertEqual(response.status_code, 200)
    def test_academy_id_member_with_status_active(self):
        """Test /academy/:id/member"""
        role = 'konan'
        model = self.generate_models(authenticate=True,
                                     role=role,
                                     capability='read_member',
                                     profile_academy=True,
                                     profile_academy_status='ACTIVE')
        url = reverse_lazy('authenticate:academy_id_member',
                           kwargs={'academy_id': 1})
        url = f'{url}?status=ACTIVE'
        response = self.client.get(url)
        json = response.json()

        profile_academy = self.get_profile_academy(1)

        self.assertEqual(
            json,
            [{
                'academy': {
                    'id': model['academy'].id,
                    'name': model['academy'].name,
                    'slug': model['academy'].slug,
                },
                'address': None,
                'created_at': datetime_to_iso_format(
                    profile_academy.created_at),
                'email': None,
                'first_name': None,
                'id': model['profile_academy'].id,
                'last_name': None,
                'phone': '',
                'role': {
                    'name': role,
                    'slug': role,
                },
                'status': 'ACTIVE',
                'user': {
                    'email': model['user'].email,
                    'first_name': model['user'].first_name,
                    'id': model['user'].id,
                    'last_name': model['user'].last_name,
                    'github': None,
                },
            }])
        self.assertEqual(response.status_code, status.HTTP_200_OK)
        self.assertEqual(self.all_profile_academy_dict(), [{
            'academy_id': 1,
            'address': None,
            'email': None,
            'first_name': None,
            'id': 1,
            'last_name': None,
            'phone': '',
            'role_id': role,
            'status': 'ACTIVE',
            'user_id': 2,
        }])
Exemple #4
0
    def test_academy_single_event_valid_id(self):
        self.headers(academy=1)
        url = reverse_lazy('events:academy_single_event',
                           kwargs={"event_id": 1})
        model = self.generate_models(authenticate=True,
                                     profile_academy=True,
                                     capability='read_event',
                                     role='potato',
                                     syllabus=True,
                                     event=True)

        response = self.client.get(url)
        json = response.json()
        expected = {
            'id': model['event'].id,
            'capacity': model['event'].capacity,
            'description': model['event'].description,
            'excerpt': model['event'].excerpt,
            'title': model['event'].title,
            'lang': model['event'].lang,
            'url': model['event'].url,
            'banner': model['event'].banner,
            'starting_at': datetime_to_iso_format(model['event'].starting_at),
            'ending_at': datetime_to_iso_format(model['event'].ending_at),
            'status': model['event'].status,
            'event_type': model['event'].event_type,
            'online_event': model['event'].online_event,
            'venue': model['event'].venue,
            'academy': {
                'id': 1,
                'slug': model['academy'].slug,
                'name': model['academy'].name,
                'city': {
                    'name': model['event'].academy.city.name
                }
            }
        }

        self.assertEqual(json, expected)
        self.assertEqual(response.status_code, 200)
Exemple #5
0
    def test_certificate_slug_academy_id_syllabus_version(self):
        """Test /certificate without auth"""
        model = self.generate_models(authenticate=True,
                                     certificate=True,
                                     profile_academy=True,
                                     capability='read_syllabus',
                                     role='potato',
                                     syllabus=True)
        url = reverse_lazy(
            'admissions:certificate_slug_academy_id_syllabus_version',
            kwargs={
                'certificate_slug': model['certificate'].slug,
                'academy_id': 1,
                'version': model['syllabus'].version
            })
        response = self.client.get(url)
        json = response.json()
        expected = {
            'certificate': model['certificate'].slug,
            'json': model['syllabus'].json,
            'updated_at': datetime_to_iso_format(model['syllabus'].updated_at),
            'version': model['syllabus'].version,
        }

        self.assertEqual(json, expected)
        self.assertEqual(response.status_code, status.HTTP_200_OK)

        self.assertEqual(
            self.all_syllabus_dict(), [{
                'academy_owner_id': model['syllabus'].academy_owner_id,
                'certificate_id': model['syllabus'].certificate_id,
                'github_url': model['syllabus'].github_url,
                'id': model['syllabus'].id,
                'json': model['syllabus'].json,
                'private': model['syllabus'].private,
                'version': model['syllabus'].version
            }])
        self.assertEqual(self.all_cohort_time_slot_dict(), [])
    def test_academy_id_member_with_two_roles(self):
        """Test /academy/:id/member"""
        roles = ['konan', 'pain']
        models = [
            self.generate_models(authenticate=True,
                                 role=roles[0],
                                 capability='read_member',
                                 profile_academy=True)
        ]

        models = models + [
            self.generate_models(authenticate=True,
                                 role=roles[1],
                                 capability='read_member',
                                 profile_academy=True,
                                 models={'academy': models[0]['academy']})
        ]
        url = reverse_lazy('authenticate:academy_id_member',
                           kwargs={'academy_id': 1})
        args = ','.join(roles)
        url = f'{url}?roles={args}'
        response = self.client.get(url)
        json = response.json()

        self.assertEqual(json, [{
            'academy': {
                'id': model['academy'].id,
                'name': model['academy'].name,
                'slug': model['academy'].slug,
            },
            'address':
            None,
            'created_at':
            datetime_to_iso_format(
                self.get_profile_academy(
                    model['profile_academy'].id).created_at),
            'email':
            None,
            'first_name':
            None,
            'id':
            model['profile_academy'].id,
            'last_name':
            None,
            'phone':
            '',
            'role': {
                'name': roles[model['profile_academy'].id - 1],
                'slug': roles[model['profile_academy'].id - 1],
            },
            'status':
            'INVITED',
            'user': {
                'email': model['user'].email,
                'first_name': model['user'].first_name,
                'id': model['user'].id,
                'last_name': model['user'].last_name,
                'github': None,
            },
        } for model in models])
        self.assertEqual(response.status_code, status.HTTP_200_OK)
        self.assertEqual(self.all_profile_academy_dict(),
                         [{
                             'academy_id': 1,
                             'address': None,
                             'email': None,
                             'first_name': None,
                             'id': 1 + index,
                             'last_name': None,
                             'phone': '',
                             'role_id': roles[index],
                             'status': 'INVITED',
                             'user_id': 2 + index,
                         } for index in range(0, 2)])
Exemple #7
0
    def test_academy_cohort_with_ten_datas_with_location_with_comma(self):
        """Test /cohort without auth"""
        self.headers(academy=1)
        models = [
            self.generate_models(authenticate=True,
                                 cohort=True,
                                 profile_academy=True,
                                 capability='read_cohort',
                                 role='potato',
                                 certificate=True,
                                 impossible_kickoff_date=True)
        ]

        base = models[0].copy()
        del base['cohort']

        models = models + [
            self.generate_models(cohort=True, models=base)
            for index in range(0, 9)
        ]

        models_dict = self.all_cohort_dict()
        self.client.force_authenticate(user=models[0]['user'])
        base_url = reverse_lazy('admissions:academy_cohort')
        params = ','.join([model['academy'].slug for model in models])
        url = f'{base_url}?location={params}'
        response = self.client.get(url)
        json = response.json()
        expected = [{
            'id':
            model['cohort'].id,
            'slug':
            model['cohort'].slug,
            'name':
            model['cohort'].name,
            'kickoff_date':
            datetime_to_iso_format(model['cohort'].kickoff_date),
            'ending_date':
            model['cohort'].ending_date,
            'stage':
            model['cohort'].stage,
            'language':
            model['cohort'].language,
            'certificate': {
                'id': model['cohort'].certificate.id,
                'slug': model['cohort'].certificate.slug,
                'name': model['cohort'].certificate.name,
                'description': model['cohort'].certificate.description,
                'logo': model['cohort'].certificate.logo,
            },
            'academy': {
                'id': model['cohort'].academy.id,
                'slug': model['cohort'].academy.slug,
                'name': model['cohort'].academy.name,
                'country': {
                    'code': model['cohort'].academy.country.code,
                    'name': model['cohort'].academy.country.name,
                },
                'city': {
                    'name': model['cohort'].academy.city.name,
                },
                'logo_url': model['cohort'].academy.logo_url,
            },
        } for model in models]
        json.sort(key=lambda x: x['id'])

        self.assertEqual(json, expected)
        self.assertEqual(response.status_code, status.HTTP_200_OK)
        self.assertEqual(self.all_cohort_dict(), models_dict)