mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-07-26 02:49:16 -04:00
We have a bunch of different styles of handling when function definitions span multiple lines, which they almost always do with tests. Here’s why an argument per line, single indent is best: - cleaner diffs when you change the name of a method (one line change instead of multiple lines) - works better on narrow screens, eg Github’s diff view, or with two terminals side by side on a laptop screen - works with any editor’s indenting shortcuts, no need for an IDE Also, trailing comma in the list of arguments is good because adding a new argument to a method becomes a one line, not two line diff.
45 lines
1.6 KiB
Python
45 lines
1.6 KiB
Python
from flask import url_for
|
|
from bs4 import BeautifulSoup
|
|
|
|
from tests import service_json
|
|
|
|
|
|
def test_can_see_letters_if_allowed(logged_in_client, mocker):
|
|
service = service_json(can_send_letters=True)
|
|
mocker.patch('app.service_api_client.get_service', return_value={"data": service})
|
|
|
|
response = logged_in_client.get(url_for('main.service_settings', service_id=service['id']))
|
|
|
|
assert response.status_code == 200
|
|
page = BeautifulSoup(response.data.decode('utf-8'), 'html.parser')
|
|
assert 'Letter templates' in page.find('nav', class_='navigation').text
|
|
|
|
|
|
def test_cant_see_letters_if_not_allowed(logged_in_client, mocker):
|
|
service = service_json(can_send_letters=False)
|
|
mocker.patch('app.service_api_client.get_service', return_value={"data": service})
|
|
|
|
response = logged_in_client.get(url_for('main.service_settings', service_id=service['id']))
|
|
|
|
assert response.status_code == 200
|
|
page = BeautifulSoup(response.data.decode('utf-8'), 'html.parser')
|
|
assert 'Letter templates' not in page.find('nav', class_='navigation').text
|
|
|
|
|
|
def test_can_see_letters_without_permissions(
|
|
client,
|
|
mocker,
|
|
mock_login,
|
|
mock_has_permissions,
|
|
api_user_active,
|
|
):
|
|
service = service_json(can_send_letters=True)
|
|
mocker.patch('app.service_api_client.get_service', return_value={"data": service})
|
|
|
|
client.login(api_user_active)
|
|
response = client.get(url_for('main.service_settings', service_id=service['id']))
|
|
|
|
assert response.status_code == 200
|
|
page = BeautifulSoup(response.data.decode('utf-8'), 'html.parser')
|
|
assert 'Letter templates' in page.find('nav', class_='navigation').text
|