def test_url_auth(rf): def did_disallow(view, request): try: return isinstance(view(request), HttpResponseRedirect) except Problem as prob: return True # Problems are fine here with replace_modules([ATestModule]): urls = dict((u.name, u) for u in get_module_urls()) request = rf.get("/") request.user = AnonymousUser() assert did_disallow(urls["test-auth"].callback, request) assert did_disallow(urls["test-perm"].callback, request) assert not did_disallow(urls["test-unauth"].callback, request) request.user = AuthenticatedUser() assert did_disallow(urls["test-auth"].callback, request) assert did_disallow(urls["test-perm"].callback, request) assert not did_disallow(urls["test-unauth"].callback, request) request.user = StaffUser() assert not did_disallow(urls["test-auth"].callback, request) assert did_disallow(urls["test-perm"].callback, request) assert not did_disallow(urls["test-unauth"].callback, request) request.user = SuperUser() # Can access all assert not did_disallow(urls["test-auth"].callback, request) assert not did_disallow(urls["test-perm"].callback, request) assert not did_disallow(urls["test-unauth"].callback, request)
def get_request(edit=False): request = RequestFactory().get("/") request.session = {} if edit: request.user = SuperUser() set_edit_mode(request, True) assert is_edit_mode(request) else: request.user = AnonymousUser() return request
def test_edit_can_be_set_via_view(rf): request = rf.get("/") request.user = SuperUser() request.session = {} request.POST = {"command": "edit_on"} command_dispatch(request) assert is_edit_mode(request) request.POST = {"command": "edit_off"} command_dispatch(request) assert not is_edit_mode(request)
def test_edit_priv(rf): request = rf.get("/") request.user = SuperUser() request.session = {} assert could_edit(request) assert not is_edit_mode(request) set_edit_mode(request, True) assert is_edit_mode(request) set_edit_mode(request, False) assert not is_edit_mode(request)
def get_request(edit=False): get_default_shop() request = apply_request_middleware(RequestFactory().get("/")) request.session = {} if edit: request.user = SuperUser() set_edit_mode(request, True) assert is_edit_mode(request) else: request.user = AnonymousUser() return request
def initialize_editor_view(view_name, placeholder_name, request=None): if request is None: request = RequestFactory().get("/") request.user = SuperUser() if hasattr(request.GET, "_mutable"): request.GET._mutable = True # Ahem request.GET.update({ "theme": FauxTheme.identifier, "view": view_name, "ph": placeholder_name }) with plugin_override(): with override_provides("xtheme", ["shuup_tests.xtheme.utils:FauxTheme"]): with override_current_theme_class(FauxTheme): yield EditorView(request=request, args=(), kwargs={})
def test_unknown_theme_fails(rf): request = rf.get("/", {"theme": printable_gibberish()}) request.user = SuperUser() request.shop = get_default_shop() with pytest.raises(Problem): EditorView.as_view()(request)