def test_valid_url(mocker): public_admin = PublicAdminSite("dashboard", PUBLIC_APPS) valid, invalid = mocker.MagicMock(), mocker.MagicMock() valid.pattern.regex.pattern = "/my_open_house/" invalid.pattern.regex.pattern = "/my_open_house/add/" assert public_admin.valid_url(valid) assert not public_admin.valid_url(invalid)
def test_urls(mocker): public_admin = PublicAdminSite("dashboard", PUBLIC_APPS) get_urls = mocker.patch.object(PublicAdminSite, "get_urls") get_urls.return_value = range(3) valid_url = mocker.patch.object(PublicAdminSite, "valid_url") valid_url.side_effect = (True, False, True) assert public_admin.urls == ([0, 2], "admin", "dashboard")
def get_urls(self): """Filter out the URLs that should not exist in a public admin.""" return [ url for url in super().get_urls() if PublicAdminSite.valid_url(url) ]
def get_urls(self): return [ url for url in super().get_urls() if PublicAdminSite.valid_url(url) ]
from public_admin.admin import PublicModelAdmin from public_admin.sites import PublicAdminSite, PublicApp from example.my_open_house.models import Beverage, Snack class BeverageModelAdmin(PublicModelAdmin): list_display = ("name", "amount", "alcoholic") list_filter = ("alcoholic",) class SnackModelAdmin(PublicModelAdmin): list_display = ("name", "amount", "vegan") list_filter = ("vegan",) public_app = PublicApp("my_open_house", models=("Beverage", "Snack")) public_admin = PublicAdminSite("dashboard", public_app) public_admin.register(Beverage, BeverageModelAdmin) public_admin.register(Snack, SnackModelAdmin)
) def title_ukr(self, obj) -> str: return obj.title_ukr def title_not_ukr(self, obj) -> str: return obj.title_eng or obj.title_not_ukr def max_year(self, obj): return obj.max_year def max_season(self, obj): return obj.max_season max_year.admin_order_field = 'max_year' def max_registered_on(self, obj): return obj.max_registered_on max_registered_on.admin_order_field = 'max_registered_on' def link(self, obj): return format_html( f"<a href='https://toloka.to/tracker.php?nm={obj.title_eng or obj.title_ukr}' target='_blank'>link</a>" ) public_app = PublicApp("posts", models=("MediaItem", )) public_admin = PublicAdminSite("dashboard", public_app) public_admin.register(MediaItem, PublicMediaItemAdmin)
def test_init(mocker): public_admin = PublicAdminSite("dashboard", PUBLIC_APPS) assert not public_admin.actions assert not public_admin._global_actions assert public_admin.name == "dashboard"
def test_has_permission_post(mocker): public_admin = PublicAdminSite("dashboard", PUBLIC_APPS) request = mocker.MagicMock() request.method = "POST" assert not public_admin.has_permission(request)
def test_non_authorized_model_cannot_be_registered(): public_admin = PublicAdminSite("dashboard", PUBLIC_APPS) with pytest.raises(UnauthorizedModelError): public_admin.register(Music)
def test_authorized_model_can_be_registered(): public_admin = PublicAdminSite("dashboard", PUBLIC_APPS) public_admin.register(Beverage)
from public_admin.sites import PublicAdminSite public_admin = PublicAdminSite("dashboard", ("my_open_house", ), ("beverage", )) def test_init(mocker): assert not public_admin.actions assert not public_admin._global_actions assert public_admin.name == "dashboard" def test_valid_url(mocker): valid, invalid = mocker.MagicMock(), mocker.MagicMock() valid.pattern.regex.pattern = "/my_open_house/" invalid.pattern.regex.pattern = "/my_open_house/add/" assert public_admin.valid_url(valid) assert not public_admin.valid_url(invalid) def test_urls(mocker): get_urls = mocker.patch.object(PublicAdminSite, "get_urls") get_urls.return_value = range(3) valid_url = mocker.patch.object(PublicAdminSite, "valid_url") valid_url.side_effect = (True, False, True) assert public_admin.urls == ([0, 2], "admin", "dashboard") def test_has_permission_get(mocker): request = mocker.MagicMock() request.method = "GET"