コード例 #1
0
def test_skip_rendering_actions_for_unsaved_objects(admin_client, mocker,
                                                    article):
    from test_proj.blog.admin import ArticleAdmin
    unsaved_article = Article()
    admin = ArticleAdmin(unsaved_article, admin_site)

    assert admin.render_inline_actions(unsaved_article) == ''
コード例 #2
0
def test_wrong_action_type(admin_client, article):
    """Test for appropriate exception, when the action is not callable."""
    from inline_actions.admin import ActionNotCallable
    from test_proj.blog.admin import ArticleAdmin
    admin = ArticleAdmin(article, admin_site)
    admin.inline_actions = ['property_action']
    admin.property_action = 'test'

    fake_request = {}

    with pytest.raises(ActionNotCallable):
        admin._execute_action(fake_request, admin, 'property_action', article)
コード例 #3
0
def test_non_existing_action(admin_site, article):
    """Test for appropriate exception, when `action` is not found."""
    from test_proj.blog.admin import ArticleAdmin

    ArticleAdmin.inline_actions = ['non_existing']
    fake_request = {}

    admin = ArticleAdmin(article, admin_site)
    admin._request = fake_request

    with pytest.raises(RuntimeError):
        admin.render_inline_actions(article)

    # reset
    ArticleAdmin.inline_actions = []
コード例 #4
0
def test_non_existing_action(admin_site, article):
    """Test for appropriate exception, when `action` is not found."""
    from test_proj.blog.admin import ArticleAdmin

    ArticleAdmin.inline_actions = ['non_existing']
    fake_request = {}

    admin = ArticleAdmin(article, admin_site)
    admin._request = fake_request

    with pytest.raises(RuntimeError):
        admin.render_inline_actions(article)

    # reset
    ArticleAdmin.inline_actions = []
コード例 #5
0
def test_missing_render_inline_actions_from_readonly_fields(
    rf, admin_user, admin_site, article
):
    """
    Make sure that customization does not break the app.
    """
    from test_proj.blog import admin

    class ArticleAdmin(admin.InlineActionsModelAdminMixin, admin.admin.ModelAdmin):
        list_display = ('name',)
        inline_actions = None

        def get_readonly_fields(self, *args, **kwargs):
            """
            Do some fancy logic to return a list of fields, which does not include `render_inline_actions`.
            """
            return []

    request = rf.get(f'/admin/blog/articles/{article.id}/')
    request.user = admin_user

    admin = ArticleAdmin(Article, admin_site)

    # even though `render_inline_actions` is not part of the fields,
    # it should not fail :)
    admin.changeform_view(request)
コード例 #6
0
def test_wrong_action_type(admin_client, article):
    """Test for appropriate exception, when the action is not callable."""
    from inline_actions.admin import ActionNotCallable
    from test_proj.blog.admin import ArticleAdmin
    admin = ArticleAdmin(article, admin_site)
    admin.inline_actions = ['property_action']
    admin.property_action = 'test'

    fake_request = {}

    with pytest.raises(ActionNotCallable):
        admin._execute_action(fake_request, admin, 'property_action', article)
コード例 #7
0
def test_skip_rendering_actions_for_unsaved_objects(admin_client, mocker, article):
    from test_proj.blog.admin import ArticleAdmin
    unsaved_article = Article()
    admin = ArticleAdmin(unsaved_article, admin_site)

    assert admin.render_inline_actions(unsaved_article) == ''