def test_query_success_string(self, observers, query, now): now.side_effect = [ datetime.datetime(year=1, month=1, day=1, minute=1), datetime.datetime(year=1, month=1, day=1, minute=2), ] query.return_value = 'some string response' observer_cls = mock.Mock() observers.__iter__.return_value = [observer_cls] graph_api.ObservableGraphAPI().get('me') observer_cls.return_value.handle_facebook_communication.assert_called_once_with() observer_cls.assert_called_once_with(None, None, None, datetime.timedelta(minutes=1))
def test_query_failure(self, observers, query, now): now.side_effect = [ datetime.datetime(year=1, month=1, day=1, minute=1), datetime.datetime(year=1, month=1, day=1, minute=2), ] query.side_effect = FacebookError("msg", 1) observer_cls = mock.Mock() observers.__iter__.return_value = [observer_cls] with self.assertRaises(FacebookError): graph_api.ObservableGraphAPI().get('me') observer_cls.return_value.handle_facebook_communication.assert_called_once_with() observer_cls.assert_called_once_with(None, None, query.side_effect, datetime.timedelta(minutes=1))
def get_long_lived_access_token(access_token): graph = graph_api.ObservableGraphAPI() args = { 'client_id': settings.FACEBOOK_APP_ID, 'client_secret': settings.FACEBOOK_APP_SECRET, 'grant_type': 'fb_exchange_token', 'fb_exchange_token': access_token, } data = graph.get('/oauth/access_token', **args) try: access_token = urlparse.parse_qs(data)['access_token'][-1] expires_in_seconds = int(urlparse.parse_qs(data)['expires'][-1]) except KeyError: logger.warning('Invalid Facebook response.') raise FacebookError return access_token, expires_in_seconds
def graph(self): return graph_api.ObservableGraphAPI(self._get_token_object().token)