Commit Graph

6971 Commits

Author SHA1 Message Date
Rebecca Law
ab2e44889e Merge pull request #2733 from alphagov/fix-organisation-usage-bug
Fix bug on organisation-usage page.
2020-02-27 15:06:12 +00:00
Rebecca Law
7b0a3c68cd Fix bug on organisation-usage page.
The dict is initialised for all live services, but if the organisation has trial mode services they cause a key error.
2020-02-27 13:52:02 +00:00
Rebecca Law
ba24fe449b Merge pull request #2723 from alphagov/organisation-usage
Organisation usage
2020-02-27 10:34:23 +00:00
David McDonald
54491b372d Merge pull request #2731 from alphagov/pyup-scheduled-update-2020-02-26
Scheduled weekly dependency update for week 08
2020-02-27 10:15:28 +00:00
Rebecca Law
c91f37ff4c Change the updates to only look at today, and not yesterday. 2020-02-26 17:38:20 +00:00
Leo Hemsted
0e7049d49a freeze-requirements 2020-02-26 17:21:42 +00:00
Chris Hill-Scott
0ac9a035d5 Merge pull request #2728 from alphagov/return-template-type-on-jobs
Return template type for jobs
2020-02-26 16:24:24 +00:00
Chris Hill-Scott
94942f0928 Merge pull request #2730 from alphagov/24-2-96
Fix misnamed test
2020-02-26 16:24:17 +00:00
Chris Hill-Scott
a513017f3c Remove use of ‘hence‘
Probably more straightforward language to say ‘in the future’
2020-02-26 16:16:20 +00:00
Chris Hill-Scott
57e671267c Return template type in uploads response
We need template type for the uploads response, which will eventually
supercede the jobs response. At the moment the page uses both.
2020-02-26 16:14:57 +00:00
pyup-bot
5efbdbd2a2 Update marshmallow from 2.20.2 to 2.20.5 2020-02-26 13:00:13 +00:00
pyup-bot
d203072e55 Update marshmallow-sqlalchemy from 0.21.0 to 0.22.2 2020-02-26 13:00:11 +00:00
pyup-bot
0d3cf41a90 Update flask-marshmallow from 0.10.1 to 0.11.0 2020-02-26 13:00:10 +00:00
pyup-bot
a4cba39f09 Update cffi from 1.13.2 to 1.14.0 2020-02-26 13:00:08 +00:00
Rebecca Law
f7a564a17c Add more realistic test
Add statsd
Fix imports
2020-02-26 11:21:33 +00:00
Chris Hill-Scott
ddb6fd33b0 Fix misnamed test
At some point[1] we moved from being able to schedule a job for up to 24 hours to 96 hours. The test was not renamed accordingly.

1. https://github.com/alphagov/notifications-api/pull/711
2020-02-26 08:46:02 +00:00
Rebecca Law
67c64a8715 Format the response to a more managable list.
Add a sort order
2020-02-25 17:34:03 +00:00
Chris Hill-Scott
8601b13595 Return template type for jobs
This is so we can display letter jobs in a different way on the admin
app (because it doesn’t make sense for them to have failed/delivered
counts like it does for email and text message jobs).

As elsewhere we use `fields.Method` to avoid serializing the whole
template object.
2020-02-25 16:13:12 +00:00
Chris Hill-Scott
3739d6f407 Merge pull request #2725 from alphagov/bump-bleach
Bump utils to fix bleach security vulnerability
2020-02-25 14:42:52 +00:00
Chris Hill-Scott
ee71dc7426 Bump utils to fix bleach security vulnerability 2020-02-25 11:02:41 +00:00
Rebecca Law
a2d18f8598 Update the organsition usage endpoint to use the new query.
This endpoint may need to change, but we'd like to see how this performs, so we'll test this with a real data set. Then come back to make sure the format is correct and check for missing tests for the endpoint,
2020-02-25 09:29:50 +00:00
Rebecca Law
b1b457eea0 Only return the usage data for live services.
The list of trail mode services is only for platform admins, therefore the usage isn't needed for that page.
2020-02-24 14:23:05 +00:00
Rebecca Law
18f272dc2b Add queries to handle returning usage for all services associated to a given organisation. 2020-02-24 11:28:42 +00:00
Rebecca Law
49533d7792 Fix typo in function name 2020-02-24 11:26:16 +00:00
David McDonald
42f02c8c24 Merge pull request #2717 from alphagov/collate-pdf
Look at all previous days when sending letters
2020-02-24 10:16:18 +00:00
Rebecca Law
1f143a0abf Merge pull request #2719 from alphagov/billing-dao-fix
Billing dao fix
2020-02-24 09:41:09 +00:00
David McDonald
2c41b21ddf Remove unnecessary code and unrelevant comment 2020-02-21 16:42:37 +00:00
David McDonald
2cd05dea89 Make test DRY 2020-02-21 16:27:15 +00:00
David McDonald
6f663268e1 remove unneeded mock 2020-02-21 16:19:47 +00:00
David McDonald
e6767590d4 Change function and task name to be more accurate
Will require us to change a cronitor set up
2020-02-21 15:01:19 +00:00
David McDonald
148a5ab456 Refactor dates being passed around
I believe this way is nicer to read, we don't have to change between
datetimes and strings and back.
2020-02-21 15:01:19 +00:00
David McDonald
6226d9e122 Don't send test letters to dvla to print 2020-02-21 15:01:19 +00:00
David McDonald
7578e01b3b Test cases explicitely
In previous tests we check that we can deal with files that end in `pdf`
in various forms of upper and lowercase. I've moved the testing of this
behaviour into it's own test so that's explicit and not just implied
that we care about behaviour on the casing of filenames.

Note however that s3 is case sensitive and we upload all our files in
upper case so technically we'd never expect to see a file ending in
`pdf`. I've updated some of our test data to reflect this but didn't
bother doing it everywhere. I've left the test in anyway but it could be
argued that is is redundant as we don't ever expect to see that case
anyway.
2020-02-21 15:01:19 +00:00
David McDonald
5c5eb8a96a Remove unneeded check that notification is in created state
We instead rely on the fact that only files being passed into this
function we already know are in the created state
2020-02-21 15:01:19 +00:00
David McDonald
dc9bf757a8 Change which letters we want to be sent to look at all days
Previously, when running the `collate_letter_pdfs_for_day` task, we
would only send letters that were created between 5:30pm yesterday and
5:30 today.

Now we send letters that were created before 5:30pm today and that are
still waiting to be sent. This will help us automatically attempt to
send letters that may have fallen through the gaps and not been sent the
previous day when they should have been.

Previously we solved the problem of letters that had fallen the gap by
having to run the task with a date parameter for example
`collate_letter_pdfs_for_day('2020-02-18'). We no longer need this date
parameter as we will always look back across previous days too for
letters that still need sending.

Note, we have to change from using the pagination `list_objects_v2` to
instead getting each individual notification from s3. We reduce load by
using `HEAD` rather than `GET` but this will still greatly increase the
number of API calls. We acknowledge there will be a small cost to this,
say 50p for 5000 letters and think this is tolerable. Boto3 also handles
retries itself so if when making one of the many HEAD requests, there is
a networking blip then it should be retried automatically for us.
2020-02-21 15:01:19 +00:00
David McDonald
7a0dca61da Remove unused argument 2020-02-21 15:01:19 +00:00
David McDonald
bcc0fc433d Merge pull request #2722 from alphagov/fix-json
Transform list to json so it can be used read by json.loads
2020-02-21 13:51:42 +00:00
David McDonald
a13b17a7c9 Transform list to json so it can be used read by json.loads 2020-02-21 13:41:08 +00:00
David McDonald
d60c4e46d1 Merge pull request #2721 from alphagov/rotate-keys
Allow multiple keys for the `ADMIN_CLIENT_SECRET`
2020-02-21 13:23:33 +00:00
Rebecca Law
009dcd0860 Update the fetch_monthly_billing_for year to only update ft_billing for the notification types the service as permission to send to. 2020-02-20 16:08:57 +00:00
David McDonald
2dc5550159 Change variable name to make more descriptive
Also remove unnecessary if statement
Also add manifest change to make sure relevant environment variables
makes it into the app
2020-02-20 15:48:15 +00:00
David McDonald
2967fdce08 Make test more accurate
So we are really testing the functionality the test says it is, rather
than potentially being misled by using an incorrect key as the secret
2020-02-20 13:49:31 +00:00
David McDonald
7246306447 Support multiple secrets for ADMIN_CLIENT_SECRETS
This will allow us to accept two different ones and therefore allow us
to rotate the secret that the admin client is sending to the API

Due to how the notifications-python-client throws exceptions, we run
into exactly the same issue with not being able to distinguish if a
`TokenDecodeError` is thrown because the token was encrypted with a
different secret key or if because there was a different error when
decoding. I've copied the TODO from `requires_auth` as this is exactly
the same issue.

I've also added a test case for functionality that was missing for an
out of date admin token (old IAT).
2020-02-20 13:47:39 +00:00
David McDonald
52d3df49d4 Make ADMIN_CLIENT_SECRET a list of a single secret
And support this change across our code. Note, this is a halfway step
where it is not a list rather than a string but still only supports a
single secret, ie one item in the list.
2020-02-20 13:43:10 +00:00
Leo Hemsted
9eefb54d27 Merge pull request #2720 from alphagov/remove-error-log
remove error log from dao_utils
2020-02-20 13:33:13 +00:00
Rebecca Law
ca010ac4cb Check service has permission to send notification type.
At the moment the check_permission boolean is always false.
Will set to true for usage pages
2020-02-20 13:27:39 +00:00
Leo Hemsted
11fb9da32c remove error log from dao_utils
we don't need it here - as exceptions are re-raised, they will be logged
additionally by error handlers further up. All this exception logger
tells us is that service names are already in use, which isn't something
we're really interested in.
2020-02-20 12:09:18 +00:00
Leo Hemsted
0f6f2f1b91 split up _query_for_billing_data into three separate queries
the queries all return lots of columns, but each query has columns it
doesn't care about. eg emails don't have billable units or international
flag, letters don't have international flag, sms don't have a page count
etc. additionally, the query was grouping on things that never change,
like service id and notification type.

by making all of these literals (as in `select 1 as foo`) we see times
that are over 50% quicker for gov.uk email service.

Note: One of the tests changed because previously it involved emails and
sms with statuses that they could never be (eg returned-letter)
2020-02-19 13:12:01 +00:00
Rebecca Law
f7f6be56c7 Merge pull request #2715 from alphagov/add-stats
Add statsd annotations for the fact table queries.
2020-02-19 09:51:53 +00:00
Pea M. Tyczynska
5cd27aee2c Merge pull request #2716 from alphagov/fix-reset-password
Fix reset password flow
2020-02-18 15:09:16 +00:00