def test_get_project_admin_mapping_from_grouper_no_permissions(self):
     url = urlparse.urljoin(
         current_app.config['GROUPER_API_URL'], '/permissions/{}'.format(
             current_app.config['GROUPER_PERMISSIONS_PROJECT_ADMIN']))
     responses.add(
         responses.GET,
         url,
         json={
             'data': {
                 'groups': {
                     'group1': {
                         'users': {
                             '*****@*****.**': {
                                 'rolename': 'owner'
                             },
                             '*****@*****.**': {
                                 'rolename': 'member'
                             },
                             '*****@*****.**': {
                                 'rolename': 'member'
                             },
                         },
                         'permissions': [
                             {
                                 'permission':
                                 current_app.config[
                                     'GROUPER_PERMISSIONS_PROJECT_ADMIN'],
                                 'argument':
                                 'someproject',
                             },
                             {
                                 'permission':
                                 current_app.config[
                                     'GROUPER_PERMISSIONS_PROJECT_ADMIN'],
                                 'argument':
                                 'other:*',
                             },
                         ],
                     },
                     'group2': {
                         'users': {
                             '*****@*****.**': {
                                 'rolename': 'member'
                             },
                             '*****@*****.**': {
                                 'rolename': 'member'
                             },
                         },
                         'permissions': [],
                     }
                 }
             }
         })
     mapping = _get_project_admin_mapping_from_grouper()
     assert mapping == {
         '*****@*****.**': set(['someproject', 'other:*']),
         '*****@*****.**': set(['someproject', 'other:*']),
         '*****@*****.**': set(['someproject', 'other:*']),
     }
 def test_get_project_admin_mapping_from_grouper_api_error_other(self):
     url = urlparse.urljoin(
         current_app.config['GROUPER_API_URL'], '/permissions/{}'.format(
             current_app.config['GROUPER_PERMISSIONS_PROJECT_ADMIN']))
     responses.add(responses.GET,
                   url,
                   json={
                       'errors': [
                           {
                               'message': 'This is an error',
                               'code': 404,
                           },
                           {
                               'message': 'This is another error',
                               'code': 500
                           },
                       ]
                   })
     with pytest.raises(GrouperApiError) as e:
         _get_project_admin_mapping_from_grouper()
     assert 'This is an error' in '{}'.format(e.value)
     assert 'This is another error' in '{}'.format(e.value)
 def test_get_project_admin_mapping_from_grouper_api_error_missing(self):
     url = urlparse.urljoin(
         current_app.config['GROUPER_API_URL'], '/permissions/{}'.format(
             current_app.config['GROUPER_PERMISSIONS_PROJECT_ADMIN']))
     responses.add(responses.GET,
                   url,
                   json={
                       'errors': [
                           {
                               'message': 'This is an error',
                               'code': 404,
                           },
                       ]
                   })
     mapping = _get_project_admin_mapping_from_grouper()
     assert mapping == dict()