File size: 5,606 Bytes
8cef7ca
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
import sys
import os

# Add the backend directory to the Python path
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '.')))

from db_connection import (
    get_connection,
    create_user_with_role,
    validate_user,
    get_user_id_and_role,
    insert_summarizer_history,
    update_summarizer_feedback,
    get_summarizer_history,
    insert_paraphrase_history,
    update_paraphrase_feedback,
    get_paraphrase_history,
    get_all_users_with_roles
)

def run_db_tests():
    print("--- Starting Database Debug Tests ---")

    # Test 1: Create a dummy user (if not exists)
    print("\n--- Test: User Creation and Login ---")
    test_username = "testuser_debug"
    test_password = "password123"
    dummy_user_id = None
    
    user_info = get_user_id_and_role(test_username)
    if user_info:
        print(f"User '{test_username}' already exists with ID: {user_info['id']} and role: {user_info['role']}")
        dummy_user_id = user_info['id']
    else:
        print(f"Creating user '{test_username}'...")
        if create_user_with_role("Test Debug", "test@debug.com", test_username, test_password, "user"):
            print(f"User '{test_username}' created successfully.")
            user_info = get_user_id_and_role(test_username)
            if user_info:
                dummy_user_id = user_info['id']
                print(f"Retrieved new user ID: {dummy_user_id}")
            else:
                print("Failed to retrieve user ID after creation.")
        else:
            print("Failed to create user.")

    # Test 2: Summarizer History Insertion (Logged-in user)
    print("\n--- Test: Summarizer History (Logged-in) ---")
    if dummy_user_id:
        original_text_sum = "This is a long text for summarization testing."
        summarized_text_sum = "This is a summary."
        print(f"Inserting summarizer history for user ID: {dummy_user_id}")
        sum_history_id = insert_summarizer_history(dummy_user_id, original_text_sum, summarized_text_sum)
        print(f"Summarizer history ID: {sum_history_id}")
        if sum_history_id:
            print("Updating summarizer feedback (Like)...")
            update_sum_like_status = update_summarizer_feedback(sum_history_id, True)
            print(f"Update like status: {update_sum_like_status}")
            print("Updating summarizer feedback (Text)...")
            update_sum_text_status = update_summarizer_feedback(sum_history_id, None, "Good summary!")
            print(f"Update text status: {update_sum_text_status}")
        else:
            print("Failed to insert summarizer history.")
    else:
        print("Skipping logged-in summarizer history test (no dummy user ID).")

    # Test 3: Summarizer History Insertion (Logged-out user - user_id = None)
    print("\n--- Test: Summarizer History (Logged-out) ---")
    original_text_sum_anon = "Another text for anonymous summarization."
    summarized_text_sum_anon = "Anonymous summary."
    print(f"Inserting summarizer history for anonymous user (ID: None)")
    sum_history_id_anon = insert_summarizer_history(None, original_text_sum_anon, summarized_text_sum_anon)
    print(f"Anonymous summarizer history ID: {sum_history_id_anon}")
    if sum_history_id_anon:
        print("Updating anonymous summarizer feedback (Unlike)...")
        update_sum_anon_unlike_status = update_summarizer_feedback(sum_history_id_anon, False)
        print(f"Anonymous update unlike status: {update_sum_anon_unlike_status}")
    else:
        print("Failed to insert anonymous summarizer history.")

    # Test 4: Paraphrase History Insertion (Logged-in user)
    print("\n--- Test: Paraphrase History (Logged-in) ---")
    if dummy_user_id:
        original_text_para = "Original sentence for paraphrasing."
        paraphrased_text_para = "A rephrased sentence for testing."
        print(f"Inserting paraphrase history for user ID: {dummy_user_id}")
        para_history_id = insert_paraphrase_history(dummy_user_id, original_text_para, paraphrased_text_para)
        print(f"Paraphrase history ID: {para_history_id}")
        if para_history_id:
            print("Updating paraphrase feedback (Like)...")
            update_para_like_status = update_paraphrase_feedback(para_history_id, True)
            print(f"Update like status: {update_para_like_status}")
        else:
            print("Failed to insert paraphrase history.")
    else:
        print("Skipping logged-in paraphrase history test (no dummy user ID).")

    # Test 5: Paraphrase History Insertion (Logged-out user - user_id = None)
    print("\n--- Test: Paraphrase History (Logged-out) ---")
    original_text_para_anon = "Another sentence for anonymous paraphrasing."
    paraphrased_text_para_anon = "Anonymously rephrased text."
    print(f"Inserting paraphrase history for anonymous user (ID: None)")
    para_history_id_anon = insert_paraphrase_history(None, original_text_para_anon, paraphrased_text_para_anon)
    print(f"Anonymous paraphrase history ID: {para_history_id_anon}")
    if para_history_id_anon:
        print("Updating anonymous paraphrase feedback (Text)...")
        update_para_anon_text_status = update_paraphrase_feedback(para_history_id_anon, None, "Good paraphrase!")
        print(f"Anonymous update text status: {update_para_anon_text_status}")
    else:
        print("Failed to insert anonymous paraphrase history.")

    print("\n--- Database Debug Tests Finished ---")

if __name__ == "__main__":
    run_db_tests()