import re
import subprocess
from datetime import datetime


def test_last_review_date():
    statement_file_path = "app/templates/views/accessibility_statement.html"

    # test local changes against master for a full diff of what will be merged
    statement_diff = subprocess.run([f"git diff --exit-code origin/master -- {statement_file_path}"],
                                    stdout=subprocess.PIPE, shell=True)

    # if statement has changed, test the review date was part of those changes
    if statement_diff.returncode == 1:
        raw_diff = statement_diff.stdout.decode('utf-8')
        today = datetime.now().strftime('%d %B %Y')
        with open(statement_file_path, 'r') as statement_file:
            current_review_date = re.search((r'This statement was prepared on 23 September 2020\. '
                                             r'It was last reviewed on (\d{1,2} [A-Z]{1}[a-z]+ \d{4})'),
                                            statement_file.read()).group(1)

        # guard against changes that don't need to update the review date
        if current_review_date != today:
            assert 'This statement was prepared on 23 September 2020. It was last reviewed on' in raw_diff

Add test for accessibility statement last review
Add test for accessibility statement last review

This is a proposal of a way to test that changes
to this page include updates to the 'last
reviewed' date, if needed.
