def test_proxies_group_lookup_to_service_for_unauth(self, unauthenticated_request): svc = unauthenticated_request.find_service(name='list_groups') session.profile(unauthenticated_request) svc.session_groups.assert_called_once_with(authority=unauthenticated_request.authority, user=None)
def test_proxies_group_lookup_to_service(self, authenticated_request): svc = authenticated_request.find_service(name='list_groups') session.profile(authenticated_request) svc.session_groups.assert_called_once_with(user=authenticated_request.user, authority=authenticated_request.authority)
def test_proxies_sorting_to_service(self, authenticated_request): authenticated_request.set_groups([ FakeGroup('c', 'Group A'), FakeGroup('b', 'Group B'), FakeGroup('a', 'Group B'), ]) session.profile(authenticated_request) authenticated_request._profile_group_service.sort.assert_called_once()
def test_private_group_has_url(self, authenticated_request): authenticated_request.set_groups([FakeGroup('a', 'Group A')]) profile = session.profile(authenticated_request) private_group = [g for g in profile['groups'] if g['id'] == 'a'][0] assert private_group['url']
def test_private_group_is_not_public(self, authenticated_request): authenticated_request.set_groups([FakeGroup('a', 'Group A')]) profile = session.profile(authenticated_request) private_group = [g for g in profile['groups'] if g['id'] == 'a'][0] assert private_group['public'] is False
def test_publisher_group_is_public_in_profile(third_party_request, publisher_group): profile = session.profile(third_party_request) group = [g for g in profile['groups'] if g['id'] == publisher_group.pubid][0] assert group['public'] is True
def test_open_group_has_no_url(self, unauthenticated_request, world_group): svc = unauthenticated_request.find_service(name='list_groups') svc.session_groups.return_value = [world_group] profile = session.profile(unauthenticated_request) assert not profile['groups'][0].get('url')
def test_open_group_is_public(self, unauthenticated_request, world_group): svc = unauthenticated_request.find_service(name='list_groups') svc.session_groups.return_value = [world_group] profile = session.profile(unauthenticated_request) assert profile['groups'][0]['public']
def test_publisher_group_has_no_url_in_profile(third_party_request, publisher_group): profile = session.profile(third_party_request) group = [g for g in profile['groups'] if g['id'] == publisher_group.pubid][0] assert 'url' not in group
def test_private_group_has_url(self, authenticated_request, factories): a_group = factories.Group() svc = authenticated_request.find_service(name='list_groups') svc.session_groups.return_value = [a_group] profile = session.profile(authenticated_request) assert profile['groups'][0]['url']
def test_private_group_is_not_public(self, authenticated_request, factories): a_group = factories.Group() svc = authenticated_request.find_service(name="group_list") svc.session_groups.return_value = [a_group] profile = session.profile(authenticated_request) assert not profile["groups"][0]["public"]
def test_includes_features(self, authenticated_request): feature_dict = { 'feature_one': True, 'feature_two': False, } authenticated_request.set_features(feature_dict) assert session.profile(authenticated_request)['features'] == feature_dict
def test_private_group_is_not_public(self, authenticated_request, factories): a_group = factories.Group() svc = authenticated_request.find_service(name='list_groups') svc.all_groups.return_value = [a_group] profile = session.profile(authenticated_request) assert not profile['groups'][0]['public']
def test_authenticated_sidebar_tutorial(self, authenticated_request, dismissed): authenticated_request.set_sidebar_tutorial_dismissed(dismissed) preferences = session.profile(authenticated_request)['preferences'] if dismissed: assert 'show_sidebar_tutorial' not in preferences else: assert preferences['show_sidebar_tutorial'] is True
def test_profile_includes_features(fake_user): feature_dict = { 'feature_one': True, 'feature_two': False, } request = mock.Mock(authenticated_user=fake_user) request.feature.all.return_value = feature_dict assert session.profile(request)['features'] == feature_dict
def update_preferences(request): preferences = request.json_body.get('preferences', {}) svc = request.find_service(name='user') try: svc.update_preferences(request.user, **preferences) except TypeError as e: raise APIError(str(e), status_code=400) return h_session.profile(request)
def update_preferences(request): preferences = request.json_body.get('preferences', {}) svc = request.find_service(name='user') try: svc.update_preferences(request.user, **preferences) except TypeError as e: raise APIError(e.message, status_code=400) return h_session.profile(request)
def test_sorts_groups(self, authenticated_request): authenticated_request.set_groups([ FakeGroup('c', 'Group A'), FakeGroup('b', 'Group B'), FakeGroup('a', 'Group B'), ]) profile = session.profile(authenticated_request) ids = [group['id'] for group in profile['groups']] assert ids == ['__world__', 'c', 'a', 'b']
def update_preferences(request): preferences = request.json_body.get("preferences", {}) svc = request.find_service(name="user") # TODO: The following exception doesn't match convention for validation # used in other endpoints try: svc.update_preferences(request.user, **preferences) except TypeError as e: raise APIError(str(e), status_code=400) return h_session.profile(request)
def update_preferences(request): preferences = request.json_body.get("preferences", {}) svc = request.find_service(name="user") # TODO: The following exception doesn't match convention for validation # used in other endpoints try: svc.update_preferences(request.user, **preferences) except TypeError as e: raise HTTPBadRequest(str(e)) return h_session.profile(request)
def test_profile_sorts_groups(): fake_user = mock.Mock() fake_user.groups = [ FakeGroup('c', 'Group A'), FakeGroup('b', 'Group B'), FakeGroup('a', 'Group B'), ] request = mock.Mock(authenticated_user=fake_user) profile = session.profile(request) ids = [group['id'] for group in profile['groups']] assert ids == ['__world__', 'c', 'a', 'b']
def test_profile_show_sidebar_tutorial(fake_user, user_authenticated, tutorial_dismissed, show_tutorial): """It should return or not return "show_sidebar_tutorial" correctly. It should return "show_sidebar_tutorial": True only if a user is authorized _and_ that user has not dismissed the tutorial. Otherwise, preferences should contain no "show_sidebar_tutorial" value at all. """ fake_user.sidebar_tutorial_dismissed = tutorial_dismissed if user_authenticated: authenticated_user = fake_user else: authenticated_user = None request = mock.Mock(authenticated_user=authenticated_user, ) preferences = session.profile(request)['preferences'] if show_tutorial: assert preferences['show_sidebar_tutorial'] is True else: assert 'show_sidebar_tutorial' not in preferences
def test_anonymous_authority(self, unauthenticated_request, authority): assert session.profile(unauthenticated_request)['authority'] == authority
def test_authority_override(self, unauthenticated_request): profile = session.profile(unauthenticated_request, 'foo.com') assert profile['authority'] == 'foo.com'
def test_user_info_unauthenticated(self, unauthenticated_request): profile = session.profile(unauthenticated_request) assert 'user_info' not in profile
def profile(request): authority = request.params.get('authority') return h_session.profile(request, authority)
def test_userid_authenticated(self, authenticated_request): profile = session.profile(authenticated_request) assert profile['userid'] == u'acct:[email protected]'
def test_authority_override(self, unauthenticated_request): unauthenticated_request.set_public_groups({'foo.com': []}) profile = session.profile(unauthenticated_request, 'foo.com') assert profile['authority'] == 'foo.com'
def test_authenticated_ignores_authority_override(self, authenticated_request, authority): profile = session.profile(authenticated_request, 'foo.com') assert profile['authority'] == authority
def test_userid_unauthenticated(self, unauthenticated_request): assert session.profile(unauthenticated_request)['userid'] is None
def test_user_info_authenticated(self, authenticated_request, patch): profile = session.profile(authenticated_request) user_info = profile['user_info'] assert user_info['display_name'] == authenticated_request.user.display_name
def test_userid_authenticated(self, authenticated_request): profile = session.profile(authenticated_request) assert profile['userid'] == 'acct:[email protected]'
def test_anonymous_hides_sidebar_tutorial(self, unauthenticated_request): preferences = session.profile(unauthenticated_request)['preferences'] assert 'show_sidebar_tutorial' not in preferences
def test_third_party_ingores_authority_override(self, third_party_request, third_party_domain): profile = session.profile(third_party_request, 'foo.com') assert profile['authority'] == third_party_domain
def test_publisher_group_has_no_url(self, third_party_request, publisher_group): profile = session.profile(third_party_request) group = [g for g in profile['groups'] if g['id'] == publisher_group.pubid][0] assert 'url' not in group
def test_authenticated_authority(self, authenticated_request, authority): assert session.profile(authenticated_request)['authority'] == authority
def test_user_info_authenticated_when_flag_off(self, authenticated_request): authenticated_request.feature.flags['api_render_user_info'] = False profile = session.profile(authenticated_request) assert 'user_info' not in profile
def test_third_party_authority(self, third_party_request, third_party_domain): assert session.profile(third_party_request)['authority'] == third_party_domain
def test_publisher_group_is_public(self, third_party_request, publisher_group): profile = session.profile(third_party_request) group = [g for g in profile['groups'] if g['id'] == publisher_group.pubid][0] assert group['public'] is True
def test_world_group_has_no_url(self, authenticated_request): profile = session.profile(authenticated_request) world_group = [g for g in profile['groups'] if g['id'] == '__world__'][0] assert 'url' not in world_group