#!/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)