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