55 lines
2.3 KiB
Python
55 lines
2.3 KiB
Python
#!/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() |