File size: 4,059 Bytes
ebe598e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8cfe86a
ebe598e
 
 
8cfe86a
 
ebe598e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
#!/usr/bin/env python3
"""
Test script for the new configuration functionality in app.py
"""

import os
import sys
from unittest.mock import patch

def test_trackio_space_initialization():
    """Test TrackioSpace initialization with different parameters"""
    print("πŸ§ͺ Testing TrackioSpace initialization...")
    
    # Import the app module
    import templates.spaces.app as app
    
    # Test 1: Default initialization (uses environment variables)
    print("\n1. Testing default initialization...")
    trackio = app.TrackioSpace()
    print(f"   Dataset repo: {trackio.dataset_repo}")
    print(f"   HF token set: {'Yes' if trackio.hf_token else 'No'}")
    
    # Test 2: Custom initialization
    print("\n2. Testing custom initialization...")
    trackio_custom_config = app.TrackioSpace(
        hf_token="test_token_123",
        dataset_repo="test-user/test-dataset"
    )
    print(f"   Dataset repo: {trackio_custom_config.dataset_repo}")
    print(f"   HF token set: {'Yes' if trackio_custom_config.hf_token else 'No'}")
    
    # Test 3: Partial custom initialization
    print("\n3. Testing partial custom initialization...")
    trackio_partial = app.TrackioSpace(dataset_repo="another-user/another-dataset")
    print(f"   Dataset repo: {trackio_partial.dataset_repo}")
    print(f"   HF token set: {'Yes' if trackio_partial.hf_token else 'No'}")
    
    print("βœ… TrackioSpace initialization tests passed!")

def test_configuration_functions():
    """Test the configuration functions"""
    print("\nπŸ§ͺ Testing configuration functions...")
    
    import templates.spaces.app as app
    
    # Test update_trackio_config function
    print("\n1. Testing update_trackio_config...")
    result = app.update_trackio_config("test_token", "test-user/test-dataset")
    print(f"   Result: {result}")
    
    # Test test_dataset_connection function
    print("\n2. Testing test_dataset_connection...")
    result = app.test_dataset_connection("", "test-user/test-dataset")
    print(f"   Result: {result}")
    
    # Test create_dataset_repository function
    print("\n3. Testing create_dataset_repository...")
    result = app.create_dataset_repository("", "test-user/test-dataset")
    print(f"   Result: {result}")
    
    print("βœ… Configuration function tests passed!")

def test_environment_variables():
    """Test environment variable handling"""
    print("\nπŸ§ͺ Testing environment variable handling...")
    
    # Test with environment variables set
    with patch.dict(os.environ, {
        'HF_TOKEN': 'env_test_token',
        'TRACKIO_DATASET_REPO': 'env-user/env-dataset'
    }):
        import templates.spaces.app as app
        trackio = app.TrackioSpace()
        print(f"   Dataset repo: {trackio.dataset_repo}")
        print(f"   HF token set: {'Yes' if trackio.hf_token else 'No'}")
    
    # Test with no environment variables
    with patch.dict(os.environ, {}, clear=True):
        import templates.spaces.app as app
        trackio = app.TrackioSpace()
        print(f"   Dataset repo: {trackio.dataset_repo}")
        print(f"   HF token set: {'Yes' if trackio.hf_token else 'No'}")
    
    print("βœ… Environment variable tests passed!")

def main():
    """Run all tests"""
    print("πŸš€ Testing App Configuration Features")
    print("=" * 50)
    
    try:
        test_trackio_space_initialization()
        test_configuration_functions()
        test_environment_variables()
        
        print("\nπŸŽ‰ All tests passed!")
        print("\nπŸ“‹ Configuration Features:")
        print("βœ… HF Token input field")
        print("βœ… Dataset Repository input field")
        print("βœ… Environment variable fallback")
        print("βœ… Configuration update function")
        print("βœ… Connection testing function")
        print("βœ… Dataset creation function")
        print("βœ… Gradio interface integration")
        
    except Exception as e:
        print(f"\n❌ Test failed: {e}")
        import traceback
        traceback.print_exc()

if __name__ == "__main__":
    main()