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
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, }])
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)
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)])
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)