From b5c16e70e14efc867c089704c3f73fd4cc8eb9d6 Mon Sep 17 00:00:00 2001 From: ordinary-jamie Date: Thu, 9 Mar 2023 13:07:58 +1100 Subject: Add TestResponse.clickbutton onclick kwarg This change allows the TestResponse to follow customised onclick buttons --- tests/test_response.py | 4 ++++ webtest/response.py | 6 ++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/tests/test_response.py b/tests/test_response.py index f2799bb..aa1cb1d 100644 --- a/tests/test_response.py +++ b/tests/test_response.py @@ -250,6 +250,10 @@ class TestResponse(unittest.TestCase): 'This is foo.', app.get('/').clickbutton(buttonid='button1', verbose=True) ) + self.assertIn( + 'This is foo.', + app.get('/').clickbutton(buttonid='button3', onclick=r".*href='(.*?)'", verbose=True) + ) self.assertRaises( IndexError, app.get('/').clickbutton, buttonid='button2' diff --git a/webtest/response.py b/webtest/response.py index d2eee6c..fea35aa 100644 --- a/webtest/response.py +++ b/webtest/response.py @@ -159,16 +159,18 @@ class TestResponse(webob.Response): return self.goto(str(found_attrs['uri']), extra_environ=extra_environ) def clickbutton(self, description=None, buttonid=None, href=None, - index=None, verbose=False): + onclick=None, index=None, verbose=False): """ Like :meth:`~webtest.response.TestResponse.click`, except looks for link-like buttons. This kind of button should look like ``