Example #1
0
def test_bulk_edit():

    Foo(a=1, b="").save()
    Foo(a=2, b="").save()
    Foo(a=3, b="").save()
    Foo(a=4, b="").save()

    class TestTable(Table):
        a = Column.number(sortable=False, bulk=True)  # turn off sorting to not get the link with random query params
        b = Column(bulk=True)

    render_table(request=RequestFactory(HTTP_REFERER='/').post("/", dict(pk_1='', pk_2='', a='0', b='changed')), table=TestTable(Foo.objects.all()))

    assert [(x.pk, x.a, x.b) for x in Foo.objects.all()] == [
        (1, 0, u'changed'),
        (2, 0, u'changed'),
        (3, 3, u''),
        (4, 4, u''),
    ]
Example #2
0
def verify_table_html(table, expected_html, query=None, find=None, links=None):
    """
    Verify that the table renders to the expected markup, modulo formatting
    """
    if find is None:
        find = dict(name='table')
        if not expected_html.strip():
            expected_html = "<table/>"

    request = RequestFactory().get("/", query)
    request.user = AnonymousUser()
    actual_html = render_table(request=request, table=table, links=links)

    prettified_actual = reindent(BeautifulSoup(actual_html).find(**find).prettify()).strip()
    prettified_expected = reindent(BeautifulSoup(expected_html).find(**find).prettify()).strip()

    assert prettified_expected == prettified_actual