示例#1
0
def test_profiler_graph_error():
    old_sys_executable = sys.executable
    sys.executable = 'does_not_exist'
    with pytest.raises(Exception) as e:
        middleware(staff_req('get', _iommi_prof='', graph=''))
    sys.executable = old_sys_executable

    assert str(e.value) == 'gprof2dot not found. Please install it to use the graph feature.'
示例#2
0
def test_profiler_graph_dot_not_present():
    import iommi.profiling
    orig = iommi.profiling._dot_search_paths[:]
    iommi.profiling._dot_search_paths[:] = ['does_not_exist']

    response = middleware(staff_req('get', _iommi_prof='', graph=''))

    iommi.profiling._dot_search_paths[:] = orig

    assert response.content.decode().startswith('digraph {')
示例#3
0
def test_bulk_edit_for_non_unique(settings):
    settings.ROOT_URLCONF = __name__
    request = staff_req('get')
    p = Admin.list(
        request=request,
        app_name='tests',
        model_name='adminunique',
        parts__list_tests_adminunique__columns__foo__bulk__include=True,
    )
    p = p.bind(request=request)
    assert [x._name for x in values(p.parts.list_tests_adminunique.columns) if x.bulk.include] == ['foo']
示例#4
0
def test_create(mock_messages, settings):
    settings.ROOT_URLCONF = __name__

    request = staff_req('get')
    c = Admin.create(request=request, app_name='tests', model_name='foo')
    p = c.bind(request=request)
    assert list(p.parts.create_tests_foo.fields.keys()) == ['foo']

    assert Foo.objects.count() == 0

    # Check access control for not logged in
    request = req('post', foo=7, **{'-submit': ''})
    assert isinstance(
        Admin.create(request=request, app_name='tests', model_name='foo'),
        HttpResponseRedirect)
    assert Foo.objects.count() == 0

    # Check access control for not staff
    request = user_req('post', foo=7, **{'-submit': ''})
    with pytest.raises(Http404):
        Admin.create(request=request, app_name='tests', model_name='foo')

    # Now for real
    request = staff_req('post', foo=7, **{'-submit': ''})
    c = Admin.create(request=request, app_name='tests', model_name='foo')
    p = c.bind(request=staff_req('post', foo=7, **{'-submit': ''}))
    assert p.parts.create_tests_foo.is_valid()
    p.render_to_response()

    assert Foo.objects.count() == 1
    f = Foo.objects.get()
    assert f.foo == 7

    mock_messages.add_message.assert_called_with(request,
                                                 mock_messages.INFO,
                                                 f'Foo {f} was created',
                                                 fail_silently=True)
示例#5
0
def test_edit(mock_messages, settings):
    settings.ROOT_URLCONF = __name__
    request = staff_req('get')
    assert Foo.objects.count() == 0
    f = Foo.objects.create(foo=7)

    c = Admin.edit(request=request, app_name='tests', model_name='foo', pk=f.pk)
    p = c.bind(request=req('post', foo=11, **{'-submit': ''}))
    assert p.parts.edit_tests_foo.is_valid()
    p.render_to_response()
    assert Foo.objects.get().foo == 11

    mock_messages.add_message.assert_called_with(
        request,
        mock_messages.INFO,
        f'Foo {f} was updated',
        fail_silently=True
    )
示例#6
0
def test_delete(mock_messages):
    request = staff_req('get')
    assert Foo.objects.count() == 0
    f = Foo.objects.create(foo=7)

    c = Admin.delete(request=request,
                     app_name='tests',
                     model_name='foo',
                     pk=f.pk)
    p = c.bind(request=req('post', **{'-submit': ''}))
    assert p.parts.delete_tests_foo.is_valid()
    p.render_to_response()
    assert Foo.objects.count() == 0

    mock_messages.add_message.assert_called_with(request,
                                                 mock_messages.INFO,
                                                 f'Foo {f} was deleted',
                                                 fail_silently=True)
示例#7
0
def test_profiler_graph_dot_present():
    if get_dot_path():
        assert '<!DOCTYPE svg ' in middleware(staff_req('get', _iommi_prof='', graph='')).content.decode()
示例#8
0
def test_profiler_plain():
    middleware = Middleware(lambda request: sentinel)
    assert 'white-space: nowrap' in middleware(staff_req('get', _iommi_prof='')).content.decode()
示例#9
0
def test_all_models(settings):
    settings.ROOT_URLCONF = __name__
    request = staff_req('get')
    assert 'Authentication' in Admin.all_models(request=request).bind(
        request=request).render_to_response().content.decode()
示例#10
0
def test_all_models():
    request = staff_req('get')
    assert 'Authentication' in Admin.all_models(request=request).bind(
        request=request).render_to_response().content.decode()