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''), ]
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