HH/test_survey_form_fix.py
2026-02-22 08:35:53 +03:00

82 lines
2.8 KiB
Python

#!/usr/bin/env python
"""Test script to verify the survey form fix"""
import os
import sys
import django
# Setup Django
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'PX360.settings')
sys.path.insert(0, '/home/ismail/projects/HH')
django.setup()
from django.contrib.auth import get_user_model
from apps.surveys.forms import ManualSurveySendForm, ManualPhoneSurveySendForm, BulkCSVSurveySendForm
User = get_user_model()
print("Testing survey form fixes...\n")
# Get a test user (any user with a hospital)
try:
user = User.objects.filter(hospital__isnull=False).first()
if not user:
print("ERROR: No user with hospital found. Creating a test user...")
from apps.organizations.models import Hospital
hospital = Hospital.objects.first()
if not hospital:
print("ERROR: No hospital found in database!")
sys.exit(1)
user = User.objects.create_user(
username='testuser',
email='test@example.com',
hospital=hospital
)
print(f"Created test user: {user.username}")
else:
print(f"Using existing user: {user.username} (Hospital: {user.hospital})")
except Exception as e:
print(f"ERROR: Failed to get user: {e}")
sys.exit(1)
# Test ManualSurveySendForm
print("\n1. Testing ManualSurveySendForm...")
try:
form = ManualSurveySendForm(user)
print(f" ✓ ManualSurveySendForm instantiated successfully")
print(f" - Has user attribute: {hasattr(form, 'user')}")
print(f" - User is set: {form.user == user}")
print(f" - Survey template queryset filtered: {form.fields['survey_template'].queryset.count()} templates")
except Exception as e:
print(f" ✗ ERROR: {e}")
import traceback
traceback.print_exc()
# Test ManualPhoneSurveySendForm
print("\n2. Testing ManualPhoneSurveySendForm...")
try:
form = ManualPhoneSurveySendForm(user)
print(f" ✓ ManualPhoneSurveySendForm instantiated successfully")
print(f" - Has user attribute: {hasattr(form, 'user')}")
print(f" - User is set: {form.user == user}")
print(f" - Survey template queryset filtered: {form.fields['survey_template'].queryset.count()} templates")
except Exception as e:
print(f" ✗ ERROR: {e}")
import traceback
traceback.print_exc()
# Test BulkCSVSurveySendForm
print("\n3. Testing BulkCSVSurveySendForm...")
try:
form = BulkCSVSurveySendForm(user)
print(f" ✓ BulkCSVSurveySendForm instantiated successfully")
print(f" - Has user attribute: {hasattr(form, 'user')}")
print(f" - User is set: {form.user == user}")
print(f" - Survey template queryset filtered: {form.fields['survey_template'].queryset.count()} templates")
except Exception as e:
print(f" ✗ ERROR: {e}")
import traceback
traceback.print_exc()
print("\n" + "="*60)
print("All tests completed successfully!")
print("="*60)