From 518dbc7e399cb94ecf4aadd6ced5dbc93d63fab3 Mon Sep 17 00:00:00 2001 From: renzon Date: Sun, 4 Oct 2020 10:02:23 -0300 Subject: [PATCH] =?UTF-8?q?Grant=20access=20to=20Entrevistas=20T=C3=A9cnic?= =?UTF-8?q?as=20to=20Webdev=20role?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit close #3033 --- pythonpro/modules/permissions.py | 2 +- .../test_module_index_view_roles_access.py | 2 +- pythonpro/modules/tests/test_topics_view.py | 113 +++++++++--------- pythonpro/modules/topics_views.py | 2 +- 4 files changed, 60 insertions(+), 59 deletions(-) diff --git a/pythonpro/modules/permissions.py b/pythonpro/modules/permissions.py index 62e45542..c43a77c8 100644 --- a/pythonpro/modules/permissions.py +++ b/pythonpro/modules/permissions.py @@ -11,7 +11,7 @@ _LEAD_MODULES = {'python-birds'} _CLIENT_MODULES = {'python-birds', 'pytools'} -_WEBDEV_MODULES = {'python-birds', 'pytools', 'django'} +_WEBDEV_MODULES = {'python-birds', 'pytools', 'django', 'entrevistas-tecnicas'} _BOOTCAMPER_MODULES = {'python-birds', 'pytools', 'django', 'entrevistas-tecnicas'} _PYTHONISTA_MODULES = {'python-birds', 'objetos-pythonicos', 'python-para-pythonistas', 'python-patterns'} diff --git a/pythonpro/modules/tests/test_module_index_view_roles_access.py b/pythonpro/modules/tests/test_module_index_view_roles_access.py index 91444b39..96964c5c 100644 --- a/pythonpro/modules/tests/test_module_index_view_roles_access.py +++ b/pythonpro/modules/tests/test_module_index_view_roles_access.py @@ -93,6 +93,7 @@ def test_module_client_user_can_not_access(modules_dct, resp_client_user, slug): 'python-birds', 'pytools', 'django', + 'entrevistas-tecnicas', ]) def test_module_webdev_user_can_access(modules_dct, resp_webdev_user, slug): """ Assert that user with a webdev role can access the right content """ @@ -103,7 +104,6 @@ def test_module_webdev_user_can_access(modules_dct, resp_webdev_user, slug): 'objetos-pythonicos', 'python-para-pythonistas', 'python-patterns', - 'entrevistas-tecnicas', ]) def test_module_webdev_user_can_not_access(modules_dct, resp_webdev_user, slug): """ Assert that user with a webdev role can not access some contents """ diff --git a/pythonpro/modules/tests/test_topics_view.py b/pythonpro/modules/tests/test_topics_view.py index a8003e58..5d3c6882 100644 --- a/pythonpro/modules/tests/test_topics_view.py +++ b/pythonpro/modules/tests/test_topics_view.py @@ -214,31 +214,32 @@ def test_level_one_user_acces_level_one_content(resp_level_one_user_accesing_lev dj_assert_template_used(resp_level_one_user_accesing_level_one_content, 'topics/topic_detail.html') -@pytest.fixture -def module_webdev(db): - return baker.make(Module, slug='django') +@pytest.fixture(params='django entrevistas-tecnicas'.split()) +def module_level_two(db, request): + slug = request.param + return baker.make(Module, slug=slug) @pytest.fixture -def section_webdev(module_webdev): - return baker.make(Section, module=module_webdev) +def section_level_two(module_level_two): + return baker.make(Section, module=module_level_two) @pytest.fixture -def chapter_webdev(section_webdev): - return baker.make(Chapter, section=section_webdev) +def chapter_level_two(section_level_two): + return baker.make(Chapter, section=section_level_two) @pytest.fixture -def topic_webdev(chapter_webdev): - return baker.make(Topic, chapter=chapter_webdev) +def topic_level_two(chapter_level_two): + return baker.make(Topic, chapter=chapter_level_two) @pytest.fixture -def resp_not_level_two_accesing_level_two_content(client_with_not_level_two_roles, topic_webdev): +def resp_not_level_two_accesing_level_two_content(client_with_not_level_two_roles, topic_level_two): return client_with_not_level_two_roles.get( reverse('modules:topic_detail', - kwargs={'module_slug': topic_webdev.module_slug(), 'topic_slug': topic_webdev.slug}), + kwargs={'module_slug': topic_level_two.module_slug(), 'topic_slug': topic_level_two.slug}), ) @@ -248,10 +249,10 @@ def test_not_level_two_hitting_webdev_landing_page_oto(resp_not_level_two_accesi @pytest.fixture -def resp_level_two_accessing_webdev_content(client_with_level_two_roles, topic_webdev): +def resp_level_two_accessing_webdev_content(client_with_level_two_roles, topic_level_two): return client_with_level_two_roles.get( reverse('modules:topic_detail', - kwargs={'module_slug': topic_webdev.module_slug(), 'topic_slug': topic_webdev.slug}), + kwargs={'module_slug': topic_level_two.module_slug(), 'topic_slug': topic_level_two.slug}), secure=True) @@ -259,46 +260,46 @@ def test_webdev_access_webdev_content(resp_level_two_accessing_webdev_content): dj_assert_template_used(resp_level_two_accessing_webdev_content, 'topics/topic_detail.html') -@pytest.fixture -def module_level_three(db): - return baker.make(Module, slug='entrevistas-tecnicas') - - -@pytest.fixture -def section_level_three(module_level_three): - return baker.make(Section, module=module_level_three) - - -@pytest.fixture -def chapter_level_three(section_level_three): - return baker.make(Chapter, section=section_level_three) - - -@pytest.fixture -def topic_level_three(chapter_level_three): - return baker.make(Topic, chapter=chapter_level_three) - - -@pytest.fixture -def resp_not_level_three_accesing_level_three_content(client_with_not_level_three_roles, topic_level_three): - return client_with_not_level_three_roles.get( - reverse('modules:topic_detail', - kwargs={'module_slug': topic_level_three.module_slug(), 'topic_slug': topic_level_three.slug}), - ) - - -def test_not_level_three_hitting_level_three_landing_page(resp_not_level_three_accesing_level_three_content): - assert resp_not_level_three_accesing_level_three_content.status_code == 302 - assert resp_not_level_three_accesing_level_three_content.url == reverse('checkout:bootcamp_lp') - - -@pytest.fixture -def resp_level_three_accessing_level_three_content(client_with_level_three_roles, topic_level_three): - return client_with_level_three_roles.get( - reverse('modules:topic_detail', - kwargs={'module_slug': topic_level_three.module_slug(), 'topic_slug': topic_level_three.slug}), - secure=True) - - -def test_level_three_access_level_three_content(resp_level_three_accessing_level_three_content): - dj_assert_template_used(resp_level_three_accessing_level_three_content, 'topics/topic_detail.html') +# @pytest.fixture +# def module_level_three(db): +# return baker.make(Module, slug='entrevistas-tecnicas') +# +# +# @pytest.fixture +# def section_level_three(module_level_three): +# return baker.make(Section, module=module_level_three) +# +# +# @pytest.fixture +# def chapter_level_three(section_level_three): +# return baker.make(Chapter, section=section_level_three) +# +# +# @pytest.fixture +# def topic_level_three(chapter_level_three): +# return baker.make(Topic, chapter=chapter_level_three) +# +# +# @pytest.fixture +# def resp_not_level_three_accesing_level_three_content(client_with_not_level_three_roles, topic_level_three): +# return client_with_not_level_three_roles.get( +# reverse('modules:topic_detail', +# kwargs={'module_slug': topic_level_three.module_slug(), 'topic_slug': topic_level_three.slug}), +# ) +# +# +# def test_not_level_three_hitting_level_three_landing_page(resp_not_level_three_accesing_level_three_content): +# assert resp_not_level_three_accesing_level_three_content.status_code == 302 +# assert resp_not_level_three_accesing_level_three_content.url == reverse('checkout:bootcamp_lp') + + +# @pytest.fixture +# def resp_level_three_accessing_level_three_content(client_with_level_three_roles, topic_level_three): +# return client_with_level_three_roles.get( +# reverse('modules:topic_detail', +# kwargs={'module_slug': topic_level_three.module_slug(), 'topic_slug': topic_level_three.slug}), +# secure=True) +# +# +# def test_level_three_access_level_three_content(resp_level_three_accessing_level_three_content): +# dj_assert_template_used(resp_level_three_accessing_level_three_content, 'topics/topic_detail.html') diff --git a/pythonpro/modules/topics_views.py b/pythonpro/modules/topics_views.py index 60446d58..d8426ad6 100644 --- a/pythonpro/modules/topics_views.py +++ b/pythonpro/modules/topics_views.py @@ -8,7 +8,7 @@ def content_landing_page(content: Content): - if content.module_slug() in {'pytools', 'django'}: + if content.module_slug() in {'pytools', 'django', 'entrevistas-tecnicas'}: redirect_path = reverse('checkout:webdev_landing_page') else: redirect_path = reverse('checkout:bootcamp_lp')