Merge pull request #3784 from alphagov/notes-fix

Allow to update service notes
This commit is contained in:
Pea Tyczynska
2021-02-02 17:37:27 +00:00
committed by GitHub
5 changed files with 656 additions and 197 deletions

View File

@@ -79,31 +79,32 @@ class ServiceAPIClient(NotifyAdminAPIClient):
""" """
data = _attach_current_user(kwargs) data = _attach_current_user(kwargs)
disallowed_attributes = set(data.keys()) - { disallowed_attributes = set(data.keys()) - {
'name',
'message_limit',
'active', 'active',
'restricted', 'consent_to_research',
'contact_link',
'count_as_live',
'created_by',
'email_branding',
'email_from', 'email_from',
'free_sms_fragment_limit',
'go_live_at',
'go_live_user',
'letter_branding',
'letter_contact_block',
'message_limit',
'name',
'notes',
'organisation_type',
'permissions',
'prefix_sms',
'rate_limit',
'reply_to_email_address', 'reply_to_email_address',
'research_mode', 'research_mode',
'restricted',
'sms_sender', 'sms_sender',
'created_by',
'letter_branding',
'email_branding',
'letter_contact_block',
'permissions',
'organisation_type',
'free_sms_fragment_limit',
'prefix_sms',
'contact_link',
'volume_email', 'volume_email',
'volume_sms',
'volume_letter', 'volume_letter',
'consent_to_research', 'volume_sms',
'count_as_live',
'go_live_user',
'go_live_at',
'rate_limit',
} }
if disallowed_attributes: if disallowed_attributes:
raise TypeError('Not allowed to update service attributes: {}'.format( raise TypeError('Not allowed to update service attributes: {}'.format(

View File

@@ -25,7 +25,7 @@ awscli-cwlogs>=1.4,<1.5
itsdangerous==1.1.0 itsdangerous==1.1.0
git+https://github.com/alphagov/notifications-utils.git@43.7.0#egg=notifications-utils==43.7.0 git+https://github.com/alphagov/notifications-utils.git@43.7.0#egg=notifications-utils==43.7.0
git+https://github.com/alphagov/govuk-frontend-jinja.git@v0.5.1-alpha#egg=govuk-frontend-jinja==0.5.1-alpha git+https://github.com/alphagov/govuk-frontend-jinja.git@v0.5.8-alpha#egg=govuk-frontend-jinja==0.5.8-alpha
# gds-metrics requires prometheseus 0.2.0, override that requirement as later versions bring significant performance gains # gds-metrics requires prometheseus 0.2.0, override that requirement as later versions bring significant performance gains
prometheus-client==0.9.0 prometheus-client==0.9.0

View File

@@ -4,81 +4,214 @@
# #
# pip-compile requirements.in # pip-compile requirements.in
# #
ago==0.0.93 # via -r requirements.in ago==0.0.93
awscli-cwlogs==1.4.6 # via -r requirements.in # via -r requirements.in
awscli==1.18.211 # via awscli-cwlogs, notifications-utils awscli-cwlogs==1.4.6
bleach==3.2.1 # via notifications-utils # via -r requirements.in
blinker==1.4 # via -r requirements.in, gds-metrics awscli==1.18.211
boto3==1.16.51 # via notifications-utils # via
botocore==1.19.51 # via awscli, boto3, s3transfer # awscli-cwlogs
cachetools==4.2.0 # via notifications-utils # notifications-utils
certifi==2020.12.5 # via requests bleach==3.2.1
chardet==4.0.0 # via requests # via notifications-utils
click==7.1.2 # via flask blinker==1.4
colorama==0.4.3 # via awscli # via
dnspython==1.16.0 # via eventlet # -r requirements.in
docopt==0.6.2 # via notifications-python-client # gds-metrics
docutils==0.15.2 # via awscli boto3==1.16.51
et-xmlfile==1.0.1 # via openpyxl # via notifications-utils
eventlet==0.30.0 # via -r requirements.in botocore==1.19.51
flask-login==0.5.0 # via -r requirements.in # via
flask-redis==0.4.0 # via notifications-utils # awscli
flask-wtf==0.14.3 # via -r requirements.in # boto3
flask==1.1.2 # via -r requirements.in, flask-login, flask-redis, flask-wtf, gds-metrics, notifications-utils # s3transfer
future==0.18.2 # via notifications-python-client cachetools==4.2.0
gds-metrics==0.2.4 # via -r requirements.in # via notifications-utils
geojson==2.5.0 # via notifications-utils certifi==2020.12.5
govuk-bank-holidays==0.8 # via -r requirements.in, notifications-utils # via requests
git+https://github.com/alphagov/govuk-frontend-jinja.git@v0.5.1-alpha#egg=govuk-frontend-jinja==0.5.1-alpha # via -r requirements.in chardet==4.0.0
greenlet==0.4.17 # via eventlet # via requests
gunicorn==20.0.4 # via -r requirements.in click==7.1.2
humanize==3.2.0 # via -r requirements.in # via flask
idna==2.10 # via requests colorama==0.4.3
itsdangerous==1.1.0 # via -r requirements.in, flask, flask-wtf, notifications-utils # via awscli
jdcal==1.4.1 # via openpyxl dnspython==1.16.0
jinja2==2.11.2 # via flask, govuk-frontend-jinja, notifications-utils # via eventlet
jmespath==0.10.0 # via boto3, botocore docopt==0.6.2
lml==0.1.0 # via pyexcel, pyexcel-io # via notifications-python-client
lxml==4.6.2 # via pyexcel-ezodf, pyexcel-ods3 docutils==0.15.2
markupsafe==1.1.1 # via jinja2, wtforms # via awscli
mistune==0.8.4 # via notifications-utils et-xmlfile==1.0.1
monotonic==1.5 # via notifications-python-client, notifications-utils # via openpyxl
notifications-python-client==5.7.1 # via -r requirements.in eventlet==0.30.0
git+https://github.com/alphagov/notifications-utils.git@43.7.0#egg=notifications-utils==43.7.0 # via -r requirements.in # via -r requirements.in
openpyxl==3.0.5 # via pyexcel-xlsx flask-login==0.5.0
orderedset==2.0.3 # via notifications-utils # via -r requirements.in
packaging==20.8 # via bleach flask-redis==0.4.0
phonenumbers==8.12.15 # via notifications-utils # via notifications-utils
prometheus-client==0.9.0 # via -r requirements.in, gds-metrics flask-wtf==0.14.3
pyasn1==0.4.8 # via rsa # via -r requirements.in
pyexcel-ezodf==0.3.4 # via pyexcel-ods3 flask==1.1.2
pyexcel-io==0.6.4 # via -r requirements.in, pyexcel, pyexcel-ods3, pyexcel-xls, pyexcel-xlsx # via
pyexcel-ods3==0.6.0 # via -r requirements.in # -r requirements.in
pyexcel-xls==0.6.2 # via -r requirements.in # flask-login
pyexcel-xlsx==0.6.0 # via -r requirements.in # flask-redis
pyexcel==0.6.6 # via -r requirements.in # flask-wtf
pyjwt==2.0.0 # via notifications-python-client # gds-metrics
pyparsing==2.4.7 # via packaging # notifications-utils
pypdf2==1.26.0 # via notifications-utils future==0.18.2
python-dateutil==2.8.1 # via awscli-cwlogs, botocore # via notifications-python-client
python-json-logger==2.0.1 # via notifications-utils gds-metrics==0.2.4
pytz==2020.5 # via -r requirements.in, notifications-utils # via -r requirements.in
pyyaml==5.3.1 # via awscli, notifications-utils geojson==2.5.0
redis==3.5.3 # via flask-redis # via notifications-utils
requests==2.25.1 # via awscli-cwlogs, govuk-bank-holidays, notifications-python-client, notifications-utils govuk-bank-holidays==0.8
rsa==4.5 # via awscli # via
s3transfer==0.3.3 # via awscli, boto3 # -r requirements.in
shapely==1.7.1 # via -r requirements.in # notifications-utils
six==1.15.0 # via awscli-cwlogs, bleach, eventlet, govuk-bank-holidays, python-dateutil git+https://github.com/alphagov/govuk-frontend-jinja.git@v0.5.8-alpha#egg=govuk-frontend-jinja==0.5.8-alpha
smartypants==2.0.1 # via notifications-utils # via -r requirements.in
statsd==3.3.0 # via notifications-utils greenlet==0.4.17
texttable==1.6.3 # via pyexcel # via eventlet
urllib3==1.26.2 # via botocore, requests gunicorn==20.0.4
webencodings==0.5.1 # via bleach # via -r requirements.in
werkzeug==1.0.1 # via flask humanize==3.2.0
wtforms==2.3.3 # via flask-wtf # via -r requirements.in
xlrd==1.2.0 # via pyexcel-xls idna==2.10
xlwt==1.3.0 # via pyexcel-xls # via requests
itsdangerous==1.1.0
# via
# -r requirements.in
# flask
# flask-wtf
# notifications-utils
jdcal==1.4.1
# via openpyxl
jinja2==2.11.3
# via
# flask
# govuk-frontend-jinja
# notifications-utils
jmespath==0.10.0
# via
# boto3
# botocore
lml==0.1.0
# via
# pyexcel
# pyexcel-io
lxml==4.6.2
# via
# pyexcel-ezodf
# pyexcel-ods3
markupsafe==1.1.1
# via
# jinja2
# wtforms
mistune==0.8.4
# via notifications-utils
monotonic==1.5
# via
# notifications-python-client
# notifications-utils
notifications-python-client==5.7.1
# via -r requirements.in
git+https://github.com/alphagov/notifications-utils.git@43.7.0#egg=notifications-utils==43.7.0
# via -r requirements.in
openpyxl==3.0.5
# via pyexcel-xlsx
orderedset==2.0.3
# via notifications-utils
packaging==20.8
# via bleach
phonenumbers==8.12.15
# via notifications-utils
prometheus-client==0.9.0
# via
# -r requirements.in
# gds-metrics
pyasn1==0.4.8
# via rsa
pyexcel-ezodf==0.3.4
# via pyexcel-ods3
pyexcel-io==0.6.4
# via
# -r requirements.in
# pyexcel
# pyexcel-ods3
# pyexcel-xls
# pyexcel-xlsx
pyexcel-ods3==0.6.0
# via -r requirements.in
pyexcel-xls==0.6.2
# via -r requirements.in
pyexcel-xlsx==0.6.0
# via -r requirements.in
pyexcel==0.6.6
# via -r requirements.in
pyjwt==2.0.0
# via notifications-python-client
pyparsing==2.4.7
# via packaging
pypdf2==1.26.0
# via notifications-utils
python-dateutil==2.8.1
# via
# awscli-cwlogs
# botocore
python-json-logger==2.0.1
# via notifications-utils
pytz==2020.5
# via
# -r requirements.in
# notifications-utils
pyyaml==5.3.1
# via
# awscli
# notifications-utils
redis==3.5.3
# via flask-redis
requests==2.25.1
# via
# awscli-cwlogs
# govuk-bank-holidays
# notifications-python-client
# notifications-utils
rsa==4.5
# via awscli
s3transfer==0.3.3
# via
# awscli
# boto3
shapely==1.7.1
# via -r requirements.in
six==1.15.0
# via
# awscli-cwlogs
# bleach
# eventlet
# govuk-bank-holidays
# python-dateutil
smartypants==2.0.1
# via notifications-utils
statsd==3.3.0
# via notifications-utils
texttable==1.6.3
# via pyexcel
urllib3==1.26.2
# via
# botocore
# requests
webencodings==0.5.1
# via bleach
werkzeug==1.0.1
# via flask
wtforms==2.3.3
# via flask-wtf
xlrd==1.2.0
# via pyexcel-xls
xlwt==1.3.0
# via pyexcel-xls
# The following packages are considered to be unsafe in a requirements file: # The following packages are considered to be unsafe in a requirements file:
# setuptools # setuptools

View File

@@ -4,109 +4,385 @@
# #
# pip-compile requirements_for_test.in # pip-compile requirements_for_test.in
# #
ago==0.0.93 # via -r requirements.txt ago==0.0.93
apipkg==1.5 # via execnet # via -r requirements.txt
attrs==20.3.0 # via flake8-bugbear, pytest apipkg==1.5
awscli-cwlogs==1.4.6 # via -r requirements.txt # via execnet
awscli==1.18.211 # via -r requirements.txt, awscli-cwlogs, notifications-utils attrs==20.3.0
beautifulsoup4==4.8.1 # via -r requirements_for_test.in # via
bleach==3.2.1 # via -r requirements.txt, notifications-utils # flake8-bugbear
blinker==1.4 # via -r requirements.txt, gds-metrics # pytest
boto3==1.16.51 # via -r requirements.txt, notifications-utils awscli-cwlogs==1.4.6
botocore==1.19.51 # via -r requirements.txt, awscli, boto3, s3transfer # via -r requirements.txt
cachetools==4.2.0 # via -r requirements.txt, notifications-utils awscli==1.18.211
certifi==2020.12.5 # via -r requirements.txt, requests # via
chardet==4.0.0 # via -r requirements.txt, requests # -r requirements.txt
click==7.1.2 # via -r requirements.txt, flask # awscli-cwlogs
colorama==0.4.3 # via -r requirements.txt, awscli # notifications-utils
dnspython==1.16.0 # via -r requirements.txt, eventlet beautifulsoup4==4.8.1
docopt==0.6.2 # via -r requirements.txt, notifications-python-client # via -r requirements_for_test.in
docutils==0.15.2 # via -r requirements.txt, awscli bleach==3.2.1
entrypoints==0.3 # via flake8 # via
et-xmlfile==1.0.1 # via -r requirements.txt, openpyxl # -r requirements.txt
eventlet==0.30.0 # via -r requirements.txt # notifications-utils
execnet==1.7.1 # via pytest-xdist blinker==1.4
flake8-bugbear==19.8.0 # via -r requirements_for_test.in # via
flake8-print==3.1.4 # via -r requirements_for_test.in # -r requirements.txt
flake8==3.7.9 # via -r requirements_for_test.in, flake8-bugbear, flake8-print # gds-metrics
flask-login==0.5.0 # via -r requirements.txt boto3==1.16.51
flask-redis==0.4.0 # via -r requirements.txt, notifications-utils # via
flask-wtf==0.14.3 # via -r requirements.txt # -r requirements.txt
flask==1.1.2 # via -r requirements.txt, flask-login, flask-redis, flask-wtf, gds-metrics, notifications-utils # notifications-utils
freezegun==0.3.12 # via -r requirements_for_test.in botocore==1.19.51
future==0.18.2 # via -r requirements.txt, notifications-python-client # via
gds-metrics==0.2.4 # via -r requirements.txt # -r requirements.txt
geojson==2.5.0 # via -r requirements.txt, notifications-utils # awscli
govuk-bank-holidays==0.8 # via -r requirements.txt, notifications-utils # boto3
git+https://github.com/alphagov/govuk-frontend-jinja.git@v0.5.1-alpha#egg=govuk-frontend-jinja==0.5.1-alpha # via -r requirements.txt # s3transfer
greenlet==0.4.17 # via -r requirements.txt, eventlet cachetools==4.2.0
gunicorn==20.0.4 # via -r requirements.txt # via
humanize==3.2.0 # via -r requirements.txt # -r requirements.txt
idna==2.10 # via -r requirements.txt, requests # notifications-utils
importlib-metadata==3.3.0 # via pluggy, pytest certifi==2020.12.5
isort==4.3.21 # via -r requirements_for_test.in # via
itsdangerous==1.1.0 # via -r requirements.txt, flask, flask-wtf, notifications-utils # -r requirements.txt
jdcal==1.4.1 # via -r requirements.txt, openpyxl # requests
jinja2-cli[yaml]==0.7.0 # via -r requirements_for_test.in chardet==4.0.0
jinja2==2.11.2 # via -r requirements.txt, flask, govuk-frontend-jinja, jinja2-cli, notifications-utils # via
jmespath==0.10.0 # via -r requirements.txt, boto3, botocore # -r requirements.txt
lml==0.1.0 # via -r requirements.txt, pyexcel, pyexcel-io # requests
lxml==4.6.2 # via -r requirements.txt, pyexcel-ezodf, pyexcel-ods3 click==7.1.2
markupsafe==1.1.1 # via -r requirements.txt, jinja2, wtforms # via
mccabe==0.6.1 # via flake8 # -r requirements.txt
mistune==0.8.4 # via -r requirements.txt, notifications-utils # flask
monotonic==1.5 # via -r requirements.txt, notifications-python-client, notifications-utils colorama==0.4.3
more-itertools==8.6.0 # via pytest # via
notifications-python-client==5.7.1 # via -r requirements.txt # -r requirements.txt
git+https://github.com/alphagov/notifications-utils.git@43.7.0#egg=notifications-utils==43.7.0 # via -r requirements.txt # awscli
openpyxl==3.0.5 # via -r requirements.txt, pyexcel-xlsx dnspython==1.16.0
orderedset==2.0.3 # via -r requirements.txt, notifications-utils # via
packaging==20.8 # via -r requirements.txt, bleach, pytest # -r requirements.txt
phonenumbers==8.12.15 # via -r requirements.txt, notifications-utils # eventlet
pluggy==0.13.1 # via pytest docopt==0.6.2
prometheus-client==0.9.0 # via -r requirements.txt, gds-metrics # via
py==1.10.0 # via pytest, pytest-forked # -r requirements.txt
pyasn1==0.4.8 # via -r requirements.txt, rsa # notifications-python-client
pycodestyle==2.5.0 # via flake8, flake8-print docutils==0.15.2
pyexcel-ezodf==0.3.4 # via -r requirements.txt, pyexcel-ods3 # via
pyexcel-io==0.6.4 # via -r requirements.txt, pyexcel, pyexcel-ods3, pyexcel-xls, pyexcel-xlsx # -r requirements.txt
pyexcel-ods3==0.6.0 # via -r requirements.txt # awscli
pyexcel-xls==0.6.2 # via -r requirements.txt entrypoints==0.3
pyexcel-xlsx==0.6.0 # via -r requirements.txt # via flake8
pyexcel==0.6.6 # via -r requirements.txt et-xmlfile==1.0.1
pyflakes==2.1.1 # via flake8 # via
pyjwt==2.0.0 # via -r requirements.txt, notifications-python-client # -r requirements.txt
pyparsing==2.4.7 # via -r requirements.txt, packaging # openpyxl
pypdf2==1.26.0 # via -r requirements.txt, notifications-utils eventlet==0.30.0
pytest-env==0.6.2 # via -r requirements_for_test.in # via -r requirements.txt
pytest-forked==1.3.0 # via pytest-xdist execnet==1.7.1
pytest-mock==1.11.2 # via -r requirements_for_test.in # via pytest-xdist
pytest-xdist==1.31.0 # via -r requirements_for_test.in flake8-bugbear==19.8.0
pytest==5.3.2 # via -r requirements_for_test.in, pytest-env, pytest-forked, pytest-mock, pytest-xdist # via -r requirements_for_test.in
python-dateutil==2.8.1 # via -r requirements.txt, awscli-cwlogs, botocore, freezegun flake8-print==3.1.4
python-json-logger==2.0.1 # via -r requirements.txt, notifications-utils # via -r requirements_for_test.in
pytz==2020.5 # via -r requirements.txt, notifications-utils flake8==3.7.9
pyyaml==5.3.1 # via -r requirements.txt, awscli, jinja2-cli, notifications-utils # via
redis==3.5.3 # via -r requirements.txt, flask-redis # -r requirements_for_test.in
requests-mock==1.7.0 # via -r requirements_for_test.in # flake8-bugbear
requests==2.25.1 # via -r requirements.txt, awscli-cwlogs, govuk-bank-holidays, notifications-python-client, notifications-utils, requests-mock # flake8-print
rsa==4.5 # via -r requirements.txt, awscli flask-login==0.5.0
s3transfer==0.3.3 # via -r requirements.txt, awscli, boto3 # via -r requirements.txt
shapely==1.7.1 # via -r requirements.txt flask-redis==0.4.0
six==1.15.0 # via -r requirements.txt, awscli-cwlogs, bleach, eventlet, flake8-print, freezegun, govuk-bank-holidays, pytest-xdist, python-dateutil, requests-mock # via
smartypants==2.0.1 # via -r requirements.txt, notifications-utils # -r requirements.txt
soupsieve==2.1 # via beautifulsoup4 # notifications-utils
statsd==3.3.0 # via -r requirements.txt, notifications-utils flask-wtf==0.14.3
texttable==1.6.3 # via -r requirements.txt, pyexcel # via -r requirements.txt
typing-extensions==3.7.4.3 # via importlib-metadata flask==1.1.2
urllib3==1.26.2 # via -r requirements.txt, botocore, requests # via
wcwidth==0.2.5 # via pytest # -r requirements.txt
webencodings==0.5.1 # via -r requirements.txt, bleach # flask-login
werkzeug==1.0.1 # via -r requirements.txt, flask # flask-redis
wtforms==2.3.3 # via -r requirements.txt, flask-wtf # flask-wtf
xlrd==1.2.0 # via -r requirements.txt, pyexcel-xls # gds-metrics
xlwt==1.3.0 # via -r requirements.txt, pyexcel-xls # notifications-utils
zipp==3.4.0 # via importlib-metadata freezegun==0.3.12
# via -r requirements_for_test.in
future==0.18.2
# via
# -r requirements.txt
# notifications-python-client
gds-metrics==0.2.4
# via -r requirements.txt
geojson==2.5.0
# via
# -r requirements.txt
# notifications-utils
govuk-bank-holidays==0.8
# via
# -r requirements.txt
# notifications-utils
git+https://github.com/alphagov/govuk-frontend-jinja.git@v0.5.8-alpha#egg=govuk-frontend-jinja==0.5.8-alpha
# via -r requirements.txt
greenlet==0.4.17
# via
# -r requirements.txt
# eventlet
gunicorn==20.0.4
# via -r requirements.txt
humanize==3.2.0
# via -r requirements.txt
idna==2.10
# via
# -r requirements.txt
# requests
importlib-metadata==3.3.0
# via
# pluggy
# pytest
isort==4.3.21
# via -r requirements_for_test.in
itsdangerous==1.1.0
# via
# -r requirements.txt
# flask
# flask-wtf
# notifications-utils
jdcal==1.4.1
# via
# -r requirements.txt
# openpyxl
jinja2-cli[yaml]==0.7.0
# via -r requirements_for_test.in
jinja2==2.11.3
# via
# -r requirements.txt
# flask
# govuk-frontend-jinja
# jinja2-cli
# notifications-utils
jmespath==0.10.0
# via
# -r requirements.txt
# boto3
# botocore
lml==0.1.0
# via
# -r requirements.txt
# pyexcel
# pyexcel-io
lxml==4.6.2
# via
# -r requirements.txt
# pyexcel-ezodf
# pyexcel-ods3
markupsafe==1.1.1
# via
# -r requirements.txt
# jinja2
# wtforms
mccabe==0.6.1
# via flake8
mistune==0.8.4
# via
# -r requirements.txt
# notifications-utils
monotonic==1.5
# via
# -r requirements.txt
# notifications-python-client
# notifications-utils
more-itertools==8.6.0
# via pytest
notifications-python-client==5.7.1
# via -r requirements.txt
git+https://github.com/alphagov/notifications-utils.git@43.7.0#egg=notifications-utils==43.7.0
# via -r requirements.txt
openpyxl==3.0.5
# via
# -r requirements.txt
# pyexcel-xlsx
orderedset==2.0.3
# via
# -r requirements.txt
# notifications-utils
packaging==20.8
# via
# -r requirements.txt
# bleach
# pytest
phonenumbers==8.12.15
# via
# -r requirements.txt
# notifications-utils
pluggy==0.13.1
# via pytest
prometheus-client==0.9.0
# via
# -r requirements.txt
# gds-metrics
py==1.10.0
# via
# pytest
# pytest-forked
pyasn1==0.4.8
# via
# -r requirements.txt
# rsa
pycodestyle==2.5.0
# via
# flake8
# flake8-print
pyexcel-ezodf==0.3.4
# via
# -r requirements.txt
# pyexcel-ods3
pyexcel-io==0.6.4
# via
# -r requirements.txt
# pyexcel
# pyexcel-ods3
# pyexcel-xls
# pyexcel-xlsx
pyexcel-ods3==0.6.0
# via -r requirements.txt
pyexcel-xls==0.6.2
# via -r requirements.txt
pyexcel-xlsx==0.6.0
# via -r requirements.txt
pyexcel==0.6.6
# via -r requirements.txt
pyflakes==2.1.1
# via flake8
pyjwt==2.0.0
# via
# -r requirements.txt
# notifications-python-client
pyparsing==2.4.7
# via
# -r requirements.txt
# packaging
pypdf2==1.26.0
# via
# -r requirements.txt
# notifications-utils
pytest-env==0.6.2
# via -r requirements_for_test.in
pytest-forked==1.3.0
# via pytest-xdist
pytest-mock==1.11.2
# via -r requirements_for_test.in
pytest-xdist==1.31.0
# via -r requirements_for_test.in
pytest==5.3.2
# via
# -r requirements_for_test.in
# pytest-env
# pytest-forked
# pytest-mock
# pytest-xdist
python-dateutil==2.8.1
# via
# -r requirements.txt
# awscli-cwlogs
# botocore
# freezegun
python-json-logger==2.0.1
# via
# -r requirements.txt
# notifications-utils
pytz==2020.5
# via
# -r requirements.txt
# notifications-utils
pyyaml==5.3.1
# via
# -r requirements.txt
# awscli
# jinja2-cli
# notifications-utils
redis==3.5.3
# via
# -r requirements.txt
# flask-redis
requests-mock==1.7.0
# via -r requirements_for_test.in
requests==2.25.1
# via
# -r requirements.txt
# awscli-cwlogs
# govuk-bank-holidays
# notifications-python-client
# notifications-utils
# requests-mock
rsa==4.5
# via
# -r requirements.txt
# awscli
s3transfer==0.3.3
# via
# -r requirements.txt
# awscli
# boto3
shapely==1.7.1
# via -r requirements.txt
six==1.15.0
# via
# -r requirements.txt
# awscli-cwlogs
# bleach
# eventlet
# flake8-print
# freezegun
# govuk-bank-holidays
# pytest-xdist
# python-dateutil
# requests-mock
smartypants==2.0.1
# via
# -r requirements.txt
# notifications-utils
soupsieve==2.1
# via beautifulsoup4
statsd==3.3.0
# via
# -r requirements.txt
# notifications-utils
texttable==1.6.3
# via
# -r requirements.txt
# pyexcel
typing-extensions==3.7.4.3
# via importlib-metadata
urllib3==1.26.2
# via
# -r requirements.txt
# botocore
# requests
wcwidth==0.2.5
# via pytest
webencodings==0.5.1
# via
# -r requirements.txt
# bleach
werkzeug==1.0.1
# via
# -r requirements.txt
# flask
wtforms==2.3.3
# via
# -r requirements.txt
# flask-wtf
xlrd==1.2.0
# via
# -r requirements.txt
# pyexcel-xls
xlwt==1.3.0
# via
# -r requirements.txt
# pyexcel-xls
zipp==3.4.0
# via importlib-metadata
# The following packages are considered to be unsafe in a requirements file: # The following packages are considered to be unsafe in a requirements file:
# setuptools # setuptools

View File

@@ -555,3 +555,52 @@ def test_client_deletes_service_template_cache_when_service_is_updated(
assert len(mock_redis_delete.call_args_list) == 1 assert len(mock_redis_delete.call_args_list) == 1
assert mock_redis_delete.call_args_list[0] == call(f'service-{SERVICE_ONE_ID}') assert mock_redis_delete.call_args_list[0] == call(f'service-{SERVICE_ONE_ID}')
assert mock_redis_delete_by_pattern.call_args_list[0] == call(f'service-{SERVICE_ONE_ID}-template-*') assert mock_redis_delete_by_pattern.call_args_list[0] == call(f'service-{SERVICE_ONE_ID}-template-*')
def test_client_updates_service_with_allowed_attributes(
mocker,
):
client = ServiceAPIClient()
mock_post = mocker.patch.object(client, 'post', return_value={'data': {'id': None}})
mocker.patch('app.notify_client.current_user', id='123')
allowed_attributes = [
'active',
'consent_to_research',
'contact_link',
'count_as_live',
'email_branding',
'email_from',
'free_sms_fragment_limit',
'go_live_at',
'go_live_user',
'letter_branding',
'letter_contact_block',
'message_limit',
'name',
'notes',
'organisation_type',
'permissions',
'prefix_sms',
'rate_limit',
'reply_to_email_address',
'research_mode',
'restricted',
'sms_sender',
'volume_email',
'volume_letter',
'volume_sms',
]
attrs_dict = {}
for attr in allowed_attributes:
attrs_dict[attr] = "value"
client.update_service(
SERVICE_ONE_ID,
**attrs_dict
)
mock_post.assert_called_once_with(
f'/service/{SERVICE_ONE_ID}',
{**{'created_by': '123'}, **attrs_dict}
)