Skip to content

Commit

Permalink
fix: do flask stuff only when flask
Browse files Browse the repository at this point in the history
  • Loading branch information
aaxelb committed Jul 12, 2024
1 parent 7290523 commit bb54ae0
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 10 deletions.
19 changes: 11 additions & 8 deletions api/waffle/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

from framework.auth.core import _get_current_user
from osf import features
from flask import request
import flask


class MockUser(object):
Expand All @@ -13,18 +13,21 @@ def flag_is_active(request, flag_name):
"""
This function changes the typical flask request object so it can be used by django-waffle. Other modifications for
django-waffle can be found in the __call__ method of OsfWebRenderer.
:param flask request object:
:return flask request object:
:param request (flask or django):
:param flag name (string):
:return bool:
"""
# Waffle does not enjoy NoneTypes as user values.
request.user = _get_current_user() or MockUser()
request.COOKIES = getattr(request, 'cookies', None)
if isinstance(request, flask.Request):
# Waffle does not enjoy NoneTypes as user values.
request.user = _get_current_user() or MockUser()
request.COOKIES = getattr(request, 'cookies', None)
return waffle.flag_is_active(request, flag_name)


def storage_i18n_flag_active():
return flag_is_active(request, features.STORAGE_I18N)
return flag_is_active(flask.request, features.STORAGE_I18N)


def storage_usage_flag_active():
return flag_is_active(request, features.STORAGE_USAGE)
return flag_is_active(flask.request, features.STORAGE_USAGE)
4 changes: 2 additions & 2 deletions tests/test_ember_osf_web.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ def test_dont_use_ember_app(self, mock_use_ember_app):
assert not mock_use_ember_app.called

@mock.patch('api.waffle.utils._get_current_user')
@mock.patch('website.ember_osf_web.decorators.waffle.flag_is_active')
@mock.patch('website.ember_osf_web.decorators.flag_is_active')
@mock.patch('website.ember_osf_web.decorators.use_ember_app')
def test_ember_flag_is_active_authenticated_user(self, mock_use_ember_app, mock_flag_is_active, mock__get_current_user):
# mock over external module 'waflle.flag_is_active` not ours
Expand All @@ -46,7 +46,7 @@ def test_ember_flag_is_active_authenticated_user(self, mock_use_ember_app, mock_
mock_use_ember_app.assert_called_with()

@mock.patch('api.waffle.utils._get_current_user', return_value=None)
@mock.patch('website.ember_osf_web.decorators.waffle.flag_is_active')
@mock.patch('website.ember_osf_web.decorators.flag_is_active')
@mock.patch('website.ember_osf_web.decorators.use_ember_app')
def test_ember_flag_is_active_unauthenticated_user(self, mock_use_ember_app, mock_flag_is_active, mock__get_current_user):
# mock over external module 'waflle.flag_is_active` not ours
Expand Down

0 comments on commit bb54ae0

Please sign in to comment.