old_console/dashboard/tests/test_rights.py
2024-11-02 14:12:45 +03:00

40 lines
1.5 KiB
Python

import pytest
from dashboard.widgets import widgets
@pytest.mark.django_db
class TestWidgetsPermissions(object):
@pytest.mark.unit
def test_default_permissions(self, add_user_with_permissions):
""" Check that any user can see default widget """
user = add_user_with_permissions(username='user', password='ssssddddfff')
widget = widgets.DashboardWidget()
assert widget.user_can_see_widget(user)
@pytest.mark.unit
@pytest.mark.parametrize("widget", widgets.all_subclasses(widgets.DashboardWidget))
def test_user_can_see_widget(self, widget, add_user_with_permissions):
""" Check that user with correct permissions can see widget """
cur = widget()
user = add_user_with_permissions(username='user', password='ssssddddfff', permissions=cur.perms)
assert cur.user_can_see_widget(user)
@pytest.mark.unit
@pytest.mark.parametrize("widget", widgets.all_subclasses(widgets.DashboardWidget))
def test_user_cant_see_widget(self, widget, add_user_with_permissions):
""" Check that user without correct permissions can't see widget
Test will skip widgets with no permissions, because every user can see such widgets
"""
cur = widget()
if len(cur.perms) == 0:
pytest.skip(f"Can't run test for {widget}, because every user can see it")
user = add_user_with_permissions(username='user', password='ssssddddfff')
assert not cur.user_can_see_widget(user)