def test_get_resource_handler_query(): factory = RequestFactory() request = factory.get('contrib-dropbox/upload_issue_attachment-list') start = reverse('contrib-dropbox/oauth2_flow/start-list', request=request) request.session = {} request.DATA = {'db_oauth2_access_token': OAUTH_ACCESS_TOKEN} env.resource_handler_safe_equals(dropbox.Dropbox(OAUTH_ACCESS_TOKEN), services.get_resource_handler(request))
def get(self, request, format=None): ret = {} for key, url_name in api_root_dict.items(): try: ret[key] = reverse(url_name, request=request, format=format) except NoReverseMatch: # Support resources that are prefixed by a parametrized url ret[key] = request.build_absolute_uri() + key return response.Response(ret)
def test_get_resource_handler_is_denied(): factory = RequestFactory() request = factory.get('contrib-dropbox/upload_issue_attachment-list') start = reverse('contrib-dropbox/oauth2_flow/start-list', request=request) request.session = {} request.DATA = {} with pytest.raises(Exception) as exc: services.get_resource_handler(request) assert exc.value.status_code == status.HTTP_401_UNAUTHORIZED assert exc.value.detail % {'start': start} == _("You need to authenticate with the Dropbox API first: %(start)s" % {'start': start})
def get_resource_handler(request=None): if request.session.get("db_oauth2_access_token"): dbx = dropbox.Dropbox(request.session.get("db_oauth2_access_token")) elif request.DATA.get("db_oauth2_access_token"): dbx = dropbox.Dropbox(request.DATA.get("db_oauth2_access_token")) else: raise exc.NotAuthenticated(_("You need to authenticate with the Dropbox API first: %(start)s" % {'start': reverse('contrib-dropbox/oauth2_flow/start-list', request=request)})) return dbx
def get_oauth2_flow(request, app_session, csrf_token): return dropbox.DropboxOAuth2Flow(settings.DB_APP_KEY, settings.DB_APP_SECRET, reverse('contrib-dropbox/oauth2_flow/finish-list', request=request), app_session, csrf_token)
def test_oauth2_flow_start(): factory = RequestFactory() request = factory.get('contrib-dropbox/oauth2_flow/start-list') request.session = {} assert parse.quote_plus(reverse('contrib-dropbox/oauth2_flow/finish-list', request=request)) in services.oauth2_flow_start(request)
def test_get_oauth2_flow(): factory = RequestFactory() request = factory.get('contrib-dropbox/oauth2_flow/start-list') request.session = {} env.oauth2_safe_equals(dropbox.DropboxOAuth2Flow(settings.DB_APP_KEY, settings.DB_APP_SECRET, reverse('contrib-dropbox/oauth2_flow/finish-list', request=request), request.session, services.CSRF_TOKEN), services.get_oauth2_flow(request, request.session, services.CSRF_TOKEN))