def test_available_units_are_all_selectable_units(self): selector = OrgUnitSelector({}, [self.unit_a], [self.unit_a, self.unit_b, self.unit_c]) self.assertEquals([self.unit_a, self.unit_b, self.unit_c], selector.available_units())
def test_get_current_unit_returns_unit_which_is_storred_in_the_session(self): selector = OrgUnitSelector( {CURRENT_ORG_UNIT_KEY: 'clientb'}, [self.unit_a, self.unit_b], [self.unit_a, self.unit_b]) self.assertEquals(self.unit_b, selector.get_current_unit())
def test_current_unit_returns_fallback_when_storred_unit_is_not_part_of_the_current_units(self): selector = OrgUnitSelector({CURRENT_ORG_UNIT_KEY: 'clientb'}, [self.unit_c], [self.unit_a, self.unit_b]) self.assertEquals(self.unit_c, selector.get_current_unit()) self.assertEquals('clientc', selector._get_current_unit_id())
def test_get_current_unit_stores_selected_unit_after_determining_fallback(self): storage = {} selector = OrgUnitSelector(storage, [self.unit_a, self.unit_b], [self.unit_a, self.unit_b]) self.assertEquals(self.unit_a, selector.get_current_unit()) self.assertEquals({CURRENT_ORG_UNIT_KEY: 'clienta'}, storage)
def test_set_current_unit_updates_activ_unit(self): selector = OrgUnitSelector( {CURRENT_ORG_UNIT_KEY: 'clientb'}, [self.unit_a, self.unit_b, self.unit_c], [self.unit_a, self.unit_b, self.unit_c]) selector.set_current_unit('clienta') self.assertEquals(self.unit_a, selector.get_current_unit())
def test_raise_value_error_when_callig_without_empty_current_unit_list(self): with self.assertRaises(ValueError) as cm: OrgUnitSelector({}, [], []) self.assertEquals( 'The OrgUnitSelector needs at least one possible current unit.', str(cm.exception))
def get_ou_selector(ignore_anonymous=False): site = api.portal.get() storage = CookieStorage(getRequest()) mtool = getToolByName(site, 'portal_membership') member = mtool.getAuthenticatedMember() if mtool.isAnonymousUser() and not ignore_anonymous: return AnonymousOrgUnitSelector() if member.has_role('Manager'): users_units = ogds_service().all_org_units() else: users_units = ogds_service().assigned_org_units(member.getId()) admin_unit_units = get_current_admin_unit().org_units if not admin_unit_units: return NoAssignedUnitsOrgUnitSelector() return OrgUnitSelector(storage, admin_unit_units, users_units)
def test_fallback_is_first_current_unit_if_user_is_in_none_of_current_org_units(self): selector = OrgUnitSelector({}, [self.unit_a], [self.unit_b, self.unit_c]) self.assertEquals(self.unit_a, selector.get_current_unit())
def test_fallback_is_first_of_intersection_between_users_and_current_adminunit_units(self): selector = OrgUnitSelector({}, [self.unit_a, self.unit_b], [self.unit_a, self.unit_b, self.unit_c]) self.assertEquals(self.unit_a, selector.get_current_unit())
def test_get_current_unit_returns_fallback_unit_when_no_unit_is_storred(self): selector = OrgUnitSelector({}, [self.unit_a, self.unit_b], [self.unit_a, self.unit_b]) self.assertEquals(self.unit_a, selector.get_current_unit())