Add (initially broken) tests
Add Year periods

We need Backdrop to be able to support yearly periods so it can handle yearly data from organisations (eg HMRC).
Better tests for periods' valid_start_at method

Week, month and quarter periods lack the precision of the smaller
periods. This seems inconsistant.
Merge pull request #330 from alphagov/add-year-period

Add Year periods
Make larger periods more precise

Previously we were less precise for weeks, months and quarters, which
was inconsistant with how we were treating smaller periods.
Merge pull request #331 from alphagov/fix-valid_start_at

Make larger periods more precise
Add convenience method for getting max_age_expected
Add test to check that seconds out of date returns `None` or `int`

- TODO complete method/tests to return meaningful value by including max_age_expected timedelta in the comparison
Add in data-sets as objects to message

- also add in new method and TODO test for seconds-out-of-date attribute
Change seconds out of date calculation

- Old calculation `now - (last_updated - max_age_delta)` which would do e.g. 100 - (10 - 10) = 100
- New calculation `now - last_updated - max_age_delta` which does e.g. 100 - 10 - 10 = 80
Add in freezegun and do some time tests for seconds out of date attr

- test with 0
- test with a day tolerance but 3 days out of date
Change the conditions for a data-set being out of date

- If it's never been updated, we can assume that it's in work. This can be subject to discussion, but my hunch is this is going to be the simplest way to maintain this
- Return full data-set status objects for both in-date and out-of-date data-sets. We can mod the status endpoint to always return both, or just one, or just the other, depending on need. Again, a hunch, but I feel we should be able to see how in-date something is as well as how out-of-date it is.
- Add `max-age-expected` to the status object
Update `get_seconds_out_of_date` to return `None` if `get_max_age_expected` is `None`

- Also, pep8
'not okay'

- http status code is always 200 if http request is successful
- status message is 'okay' or 'not okay' depending on whether any action needs to be taken
- adds a read api feature step to test the status of the return body
Only return data-sets list if there are out-of-date data-sets

- Before we'd build a list of in date ones, but really we just need to know everything's okay
Merge pull request #332 from alphagov/status_json

Bring back json objects for the `_status/data-sets` endpoint
Set a 5min cache on the `_status/data-sets` endpoint

- Bringing back 60+ objects every time we hit this, so should be cached
- 5mins feels like a reasonable amount
Merge pull request #333 from alphagov/status_json

Set a 5min cache on the `_status/data-sets` endpoint
Revert "Set a 5min cache on the `_status/data-sets` endpoint"
Merge pull request #334 from alphagov/revert-333-status_json

Revert "Set a 5min cache on the `_status/data-sets` endpoint"