From 9f9c2d5e87012471da2787d3323896533e0b20b1 Mon Sep 17 00:00:00 2001 From: Chris Hill-Scott Date: Wed, 26 Jul 2017 10:24:14 +0100 Subject: [PATCH] Fix test which looks at text of radio buttons Looks like `radio_button.text` no longer works. Probably a BeautifulSoup change. More robust to look at the text of the label and the value of the input anyway. --- tests/app/main/views/test_letters.py | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/tests/app/main/views/test_letters.py b/tests/app/main/views/test_letters.py index 629651d08..3ade48787 100644 --- a/tests/app/main/views/test_letters.py +++ b/tests/app/main/views/test_letters.py @@ -55,8 +55,14 @@ def test_letters_lets_in_without_permission( @pytest.mark.parametrize('permissions, choices', [ - (['email', 'sms', 'letter'], ['Email', 'Text message', 'Letter']), - (['email', 'sms'], ['Email', 'Text message']) + ( + ['email', 'sms', 'letter'], + ['Email', 'Text message', 'Letter'] + ), + ( + ['email', 'sms'], + ['Email', 'Text message'] + ), ]) def test_given_option_to_add_letters_if_allowed( logged_in_client, @@ -73,8 +79,13 @@ def test_given_option_to_add_letters_if_allowed( assert response.status_code == 200 page = BeautifulSoup(response.data.decode('utf-8'), 'html.parser') radios = page.select('input[type=radio]') + labels = page.select('label') assert len(radios) == len(choices) + assert len(labels) == len(choices) - for index, choice in enumerate(choices): - assert radios[index].text.strip() == choice + for index, choice in enumerate(permissions): + assert radios[index]['value'] == choice + + for index, label in enumerate(choices): + assert labels[index].text.strip() == label