def test_get_path_obj_disabled(rf, default, admin, project0_disk, tp0, project_foo, en_tutorial_obsolete, tutorial_disabled): """Ensure the correct path object is retrieved when projects are disabled (#3451) or translation projects are obsolete (#3682). """ language_code = tp0.language.code language_code_obsolete = en_tutorial_obsolete.language.code project_code_obsolete = en_tutorial_obsolete.project.code project_code_disabled = tutorial_disabled.code # Regular users first request = rf.get('/') request.user = default func = get_path_obj(lambda x, y: (x, y)) # Single project func(request, project_code=project_foo.code) assert isinstance(request.ctx_obj, Project) with pytest.raises(Http404): func(request, project_code=project_code_disabled) # Disabled project with pytest.raises(Http404): func(request, language_code=language_code, project_code=project_code_disabled) # Obsolete translation project with pytest.raises(Http404): func(request, language_code=language_code_obsolete, project_code=project_code_obsolete) # Now admin users, they should have access to disabled projects too request = rf.get('/') request.user = admin func = get_path_obj(lambda x, y: (x, y)) # Single project func(request, project_code=project_foo.code) assert isinstance(request.ctx_obj, Project) func(request, project_code=project_code_disabled) assert isinstance(request.ctx_obj, Project) # Disabled projects are still inaccessible with pytest.raises(Http404): func(request, language_code=language_code, project_code=project_code_disabled) # Obsolete translation projects are still inaccessible with pytest.raises(Http404): func(request, language_code=language_code_obsolete, project_code=project_code_obsolete)
def test_get_path_obj_disabled(rf, default, admin, project0_nongnu, tp0, project_foo, en_tutorial_obsolete, tutorial_disabled): """Ensure the correct path object is retrieved when projects are disabled (#3451) or translation projects are obsolete (#3682). """ language_code = tp0.language.code language_code_obsolete = en_tutorial_obsolete.language.code project_code_obsolete = en_tutorial_obsolete.project.code project_code_disabled = tutorial_disabled.code # Regular users first request = rf.get('/') request.user = default func = get_path_obj(lambda x, y: (x, y)) # Single project func(request, project_code=project_foo.code) assert isinstance(request.ctx_obj, Project) with pytest.raises(Http404): func(request, project_code=project_code_disabled) # Disabled project with pytest.raises(Http404): func(request, language_code=language_code, project_code=project_code_disabled) # Obsolete translation project with pytest.raises(Http404): func(request, language_code=language_code_obsolete, project_code=project_code_obsolete) # Now admin users, they should have access to disabled projects too request = rf.get('/') request.user = admin func = get_path_obj(lambda x, y: (x, y)) # Single project func(request, project_code=project_foo.code) assert isinstance(request.ctx_obj, Project) func(request, project_code=project_code_disabled) assert isinstance(request.ctx_obj, Project) # Disabled projects are still inaccessible with pytest.raises(Http404): func(request, language_code=language_code, project_code=project_code_disabled) # Obsolete translation projects are still inaccessible with pytest.raises(Http404): func(request, language_code=language_code_obsolete, project_code=project_code_obsolete)
def test_get_path_obj(rf, default, afrikaans_tutorial, arabic_tutorial_disabled, tutorial_disabled): """Ensure the correct path object is retrieved.""" language_code = afrikaans_tutorial.language.code project_code = afrikaans_tutorial.project.code project_code_disabled = tutorial_disabled.code language_code_fake = 'faf' project_code_fake = 'fake-tutorial' request = rf.get('/') request.user = default # Fake decorated function func = get_path_obj(lambda x, y: (x, y)) # Single project func(request, project_code=project_code) assert isinstance(request.ctx_obj, Project) # Missing/disabled project with pytest.raises(Http404): func(request, project_code=project_code_fake) with pytest.raises(Http404): func(request, project_code=project_code_disabled) # Single language func(request, language_code=language_code) assert isinstance(request.ctx_obj, Language) # Missing language with pytest.raises(Http404): func(request, language_code=language_code_fake) # Translation Project func(request, language_code=language_code, project_code=project_code) assert isinstance(request.ctx_obj, TranslationProject) # Missing/disabled Translation Project with pytest.raises(Http404): func(request, language_code=language_code_fake, project_code=project_code) with pytest.raises(Http404): func(request, language_code=language_code, project_code=project_code_disabled) with pytest.raises(Http404): func(request, language_code=arabic_tutorial_disabled.language.code, project_code=arabic_tutorial_disabled.project.code)
def test_get_path_obj(rf, default, afrikaans_tutorial, arabic_tutorial_disabled, tutorial_disabled): """Ensure the correct path object is retrieved.""" language_code = afrikaans_tutorial.language.code project_code = afrikaans_tutorial.project.code project_code_disabled = tutorial_disabled.code language_code_fake = 'faf' project_code_fake = 'fake-tutorial' request = rf.get('/') request.user = default # Fake decorated function func = get_path_obj(lambda x, y: (x, y)) # Single project func(request, project_code=project_code) assert isinstance(request.ctx_obj, Project) # Missing/disabled project with pytest.raises(Http404): func(request, project_code=project_code_fake) with pytest.raises(Http404): func(request, project_code=project_code_disabled) # Single language func(request, language_code=language_code) assert isinstance(request.ctx_obj, Language) # Missing language with pytest.raises(Http404): func(request, language_code=language_code_fake) # Translation Project func(request, language_code=language_code, project_code=project_code) assert isinstance(request.ctx_obj, TranslationProject) # Missing/disabled Translation Project with pytest.raises(Http404): func(request, language_code=language_code_fake, project_code=project_code) with pytest.raises(Http404): func(request, language_code=language_code, project_code=project_code_disabled) with pytest.raises(Http404): func(request, language_code=arabic_tutorial_disabled.language.code, project_code=arabic_tutorial_disabled.project.code)
def test_get_path_obj(rf, po_directory, default, tp0): """Ensure the correct path object is retrieved.""" language_code = tp0.language.code project_code = tp0.project.code language_code_fake = 'faf' project_code_fake = 'fake-tutorial' request = rf.get('/') request.user = default # Fake decorated function func = get_path_obj(lambda x, y: (x, y)) # Single project func(request, project_code=project_code) assert isinstance(request.ctx_obj, Project) # Missing project with pytest.raises(Http404): func(request, project_code=project_code_fake) # Single language func(request, language_code=language_code) assert isinstance(request.ctx_obj, Language) # Missing language with pytest.raises(Http404): func(request, language_code=language_code_fake) # Translation Project func(request, language_code=language_code, project_code=project_code) assert isinstance(request.ctx_obj, TranslationProject) # Missing Translation Project with pytest.raises(Http404): func(request, language_code=language_code_fake, project_code=project_code)
def test_get_path_obj(rf, po_directory, default, tp0): """Ensure the correct path object is retrieved.""" language_code = tp0.language.code project_code = tp0.project.code language_code_fake = 'faf' project_code_fake = 'fake-tutorial' request = rf.get('/') request.user = default # Fake decorated function func = get_path_obj(lambda x, y: (x, y)) # Single project func(request, project_code=project_code) assert isinstance(request.ctx_obj, Project) # Missing project with pytest.raises(Http404): func(request, project_code=project_code_fake) # Single language func(request, language_code=language_code) assert isinstance(request.ctx_obj, Language) # Missing language with pytest.raises(Http404): func(request, language_code=language_code_fake) # Translation Project func(request, language_code=language_code, project_code=project_code) assert isinstance(request.ctx_obj, TranslationProject) # Missing Translation Project with pytest.raises(Http404): func(request, language_code=language_code_fake, project_code=project_code)