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'"Last updated": "(\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 '"Last updated": "' in raw_diff
