#!/usr/bin/env python3 """ Test script for the new version API endpoint. This verifies that the database-only version tracking works correctly. """ import os import requests import json from datetime import datetime def test_version_api(): """Test the version API endpoint""" # Set test environment variables os.environ['APP_VERSION'] = 'v1.2.3' os.environ['GIT_COMMIT'] = 'a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0' os.environ['GIT_BRANCH'] = 'main' os.environ['DEPLOYED_AT'] = datetime.utcnow().isoformat() print("Testing version API endpoint...") print(f"APP_VERSION: {os.environ['APP_VERSION']}") print(f"GIT_COMMIT: {os.environ['GIT_COMMIT']}") print(f"GIT_BRANCH: {os.environ['GIT_BRANCH']}") print(f"DEPLOYED_AT: {os.environ['DEPLOYED_AT']}") try: # Test the API endpoint (assuming it's running on localhost:5000) response = requests.get('http://localhost:5000/api/version') if response.status_code == 200: data = response.json() print("\n✅ Version API test successful!") print("Response:") print(json.dumps(data, indent=2)) # Verify the response matches our environment variables assert data['version'] == os.environ['APP_VERSION'], f"Version mismatch: {data['version']} != {os.environ['APP_VERSION']}" assert data['commit'] == os.environ['GIT_COMMIT'], f"Commit mismatch: {data['commit']} != {os.environ['GIT_COMMIT']}" assert data['branch'] == os.environ['GIT_BRANCH'], f"Branch mismatch: {data['branch']} != {os.environ['GIT_BRANCH']}" assert data['deployed_at'] == os.environ['DEPLOYED_AT'], f"Deployed at mismatch: {data['deployed_at']} != {os.environ['DEPLOYED_AT']}" print("\n✅ All version information matches environment variables!") else: print(f"\n❌ Version API test failed with status code: {response.status_code}") print(f"Response: {response.text}") except requests.exceptions.ConnectionError: print("\n❌ Could not connect to the API. Make sure the application is running on localhost:5000") except Exception as e: print(f"\n❌ Test failed with error: {str(e)}") if __name__ == '__main__': test_version_api()