57 Zeilen
1.9 KiB
Python
57 Zeilen
1.9 KiB
Python
#!/usr/bin/env python3
|
|
import requests
|
|
import urllib3
|
|
from datetime import datetime, timedelta
|
|
|
|
# Disable SSL warnings for self-signed certificate
|
|
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
|
|
|
|
# Test configuration
|
|
base_url = "https://localhost:443"
|
|
admin_user = {"username": "rac00n", "password": "1248163264"}
|
|
|
|
def test_license_creation():
|
|
"""Test creating a license through the admin panel"""
|
|
session = requests.Session()
|
|
|
|
# Login first
|
|
login_data = {
|
|
"username": admin_user["username"],
|
|
"password": admin_user["password"]
|
|
}
|
|
|
|
response = session.post(f"{base_url}/login", data=login_data, verify=False, allow_redirects=False)
|
|
if response.status_code != 302:
|
|
return "Failed to login"
|
|
|
|
# Create a test license
|
|
license_data = {
|
|
"customer_name": "Test Customer",
|
|
"email": "test@example.com",
|
|
"license_key": "TEST-LICENSE-KEY-123",
|
|
"license_type": "premium",
|
|
"valid_from": datetime.now().strftime("%Y-%m-%d"),
|
|
"valid_until": (datetime.now() + timedelta(days=365)).strftime("%Y-%m-%d")
|
|
}
|
|
|
|
response = session.post(f"{base_url}/", data=license_data, verify=False, allow_redirects=False)
|
|
|
|
if response.status_code == 302 and response.headers.get('Location') == '/':
|
|
return "✓ License created successfully"
|
|
else:
|
|
return f"✗ Failed to create license: {response.status_code}"
|
|
|
|
print("Testing License Creation")
|
|
print("=" * 40)
|
|
result = test_license_creation()
|
|
print(result)
|
|
|
|
# Verify the license was created in the database
|
|
import subprocess
|
|
result = subprocess.run([
|
|
"docker", "exec", "db", "psql", "-U", "adminuser", "-d", "meinedatenbank",
|
|
"-c", "SELECT c.name, l.license_key, l.license_type, l.valid_from, l.valid_until FROM licenses l JOIN customers c ON l.customer_id = c.id;"
|
|
], capture_output=True, text=True)
|
|
|
|
print("\nLicenses in database:")
|
|
print(result.stdout) |