def test_options(self): program_family = ProgramFamilyFactory() with self.login(email=self.basic_user().email): url = reverse(ProgramFamilyDetailView.view_name, args=[program_family.id]) response = self.client.options(url) assert response.status_code == 200 get_options = response.data["actions"]["GET"]["properties"] assert_fields(PROGRAM_FAMILY_GET_FIELDS, get_options)
def test_get(self): program_family = ProgramFamilyFactory() with self.login(email=self.basic_user().email): url = reverse(ProgramFamilyDetailView.view_name, args=[program_family.id]) response = self.client.get(url) assert response.data["name"] == program_family.name assert (response.data["short_description"] == program_family.short_description)
def _example_expert(**kwargs): result = EXAMPLE_MEMBER.copy() result.update(kwargs) if "home_program_family_id" not in result: result["home_program_family_id"] = ProgramFamilyFactory().id if "primary_industry_id" not in result: result["primary_industry_id"] = IndustryFactory().id if "expert_category" not in result: result["expert_category"] = ExpertCategoryFactory().name result.update(EXAMPLE_EXPERT) return result
def test_get(self): count = 5 program_families = ProgramFamilyFactory.create_batch(count) with self.login(email=self.basic_user().email): response = self.client.get(self.url) assert response.data["count"] == count assert all([ ProgramFamilyListView.serialize(program_family) in response.data["results"] for program_family in program_families ])
def test_options_against_get(self): program_family = ProgramFamilyFactory() with self.login(email=self.basic_user().email): url = reverse(ProgramFamilyDetailView.view_name, args=[program_family.id]) options_response = self.client.options(url) get_response = self.client.get(url) schema = options_response.data["actions"]["GET"] validator = Draft4Validator(schema) assert validator.is_valid(json.loads(get_response.content))
def test_get_entrepreneur_with_program_family_interests(self): program_families = ProgramFamilyFactory.create_batch(2) context = UserContext(user_type=ENTREPRENEUR_USER_TYPE, program_families=program_families) user = context.user with self.login(email=self.basic_user().email): url = reverse(UserDetailView.view_name, args=[user.id]) response = self.client.get(url) program_family_ids = [ datum["id"] for datum in response.data["program_families"] ] assert all([ program_family.id in program_family_ids for program_family in program_families ])
def test_patch_ids(self): context = UserContext(user_type=EXPERT_USER_TYPE) user = context.user profile = get_profile(user) industry = IndustryFactory() program_family = ProgramFamilyFactory() with self.login(email=self.basic_user().email): url = reverse(UserDetailView.view_name, args=[user.id]) self.client.patch(url, { "home_program_family_id": program_family.id, "primary_industry_id": industry.id, }) user.refresh_from_db() profile.refresh_from_db() helper = UserHelper(user) assert (helper.field_value("home_program_family_id") == program_family.id) assert (helper.profile_helper.subject.primary_industry_id == industry.id)