Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion pythonpro/modules/permissions.py
Original file line number Diff line number Diff line change
Expand Up @@ -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'}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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 """
Expand All @@ -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 """
Expand Down
113 changes: 57 additions & 56 deletions pythonpro/modules/tests/test_topics_view.py
Original file line number Diff line number Diff line change
Expand Up @@ -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}),
)


Expand All @@ -248,57 +249,57 @@ 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)


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')
2 changes: 1 addition & 1 deletion pythonpro/modules/topics_views.py
Original file line number Diff line number Diff line change
Expand Up @@ -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')
Expand Down