def _TestAuthFacebookUser(action, tester, user_dict, device_dict=None, user_cookie=None):
  ident_dict = {'key': 'FacebookGraph:%s' % user_dict['id'], 'authority': 'Facebook',
                'access_token': 'access_token'}
  if device_dict:
    device_dict.pop('device_uuid', None)
    device_dict.pop('test_udid', None)

  # Mock responses from Facebook.
  with mock.patch('tornado.httpclient.AsyncHTTPClient', MockAsyncHTTPClient()) as mock_client:
    # Add response to request for an access token.
    mock_client.map(r'https://graph.facebook.com/oauth/access_token',
                    'access_token=%s&expires=3600' % ident_dict['access_token'])

    # Response to request for user info.
    auth_test._AddMockJSONResponse(mock_client, r'https://graph.facebook.com/me\?', user_dict)

    # Add empty response to request for photos and friends.
    auth_test._AddMockJSONResponse(mock_client, r'https://graph.facebook.com/me/photos\?', {'data': []})
    auth_test._AddMockJSONResponse(mock_client, r'https://graph.facebook.com/me/friends\?', {'data': []})

    response = auth_test._AuthFacebookOrGoogleUser(tester, action, user_dict, ident_dict, device_dict, user_cookie)
    return auth_test._ValidateAuthUser(tester, action, user_dict, ident_dict, device_dict, user_cookie, response)
When sending a informational response, the appropriate frames are
dataset/ETHPy150Open viewfinderco/viewfinder/backend/www/test/auth_facebook_test.py/_TestAuthFacebookUser--crossover with--dataset/ETHPy150Open python-hyper/hyper-h2/test/test_informational_responses.py/TestSendingInformationalResponses.test_single_informational_response