Tonic commited on
Commit
5d7656c
Β·
verified Β·
1 Parent(s): fd0524b

adds automation for hf cli using token

Browse files
launch.sh CHANGED
@@ -372,7 +372,11 @@ print_step "Step 3: Experiment Details"
372
  echo "=============================="
373
 
374
  get_input "Experiment name" "smollm3_finetune_$(date +%Y%m%d_%H%M%S)" EXPERIMENT_NAME
375
- get_input "Model repository name" "$HF_USERNAME/smollm3-finetuned-$(date +%Y%m%d)" REPO_NAME
 
 
 
 
376
 
377
  # Automatically create dataset repository
378
  print_info "Setting up Trackio dataset repository automatically..."
@@ -475,7 +479,7 @@ fi
475
  echo " Epochs: $MAX_EPOCHS"
476
  echo " Batch Size: $BATCH_SIZE"
477
  echo " Learning Rate: $LEARNING_RATE"
478
- echo " Model Repo: $REPO_NAME"
479
  echo " Trackio Space: $TRACKIO_URL"
480
  echo " HF Dataset: $TRACKIO_DATASET_REPO"
481
  echo ""
 
372
  echo "=============================="
373
 
374
  get_input "Experiment name" "smollm3_finetune_$(date +%Y%m%d_%H%M%S)" EXPERIMENT_NAME
375
+
376
+ # Automatically generate model repository name
377
+ print_info "Setting up model repository automatically..."
378
+ REPO_NAME="$HF_USERNAME/smollm3-finetuned-$(date +%Y%m%d)"
379
+ print_status "Model repository: $REPO_NAME"
380
 
381
  # Automatically create dataset repository
382
  print_info "Setting up Trackio dataset repository automatically..."
 
479
  echo " Epochs: $MAX_EPOCHS"
480
  echo " Batch Size: $BATCH_SIZE"
481
  echo " Learning Rate: $LEARNING_RATE"
482
+ echo " Model Repo: $REPO_NAME (auto-generated)"
483
  echo " Trackio Space: $TRACKIO_URL"
484
  echo " HF Dataset: $TRACKIO_DATASET_REPO"
485
  echo ""
scripts/dataset_tonic/setup_hf_dataset.py CHANGED
@@ -72,12 +72,13 @@ def create_dataset_repository(username: str, dataset_name: str = "trackio-experi
72
  print(f"❌ Error creating dataset repository: {e}")
73
  return None
74
 
75
- def setup_trackio_dataset(dataset_name: str = None) -> bool:
76
  """
77
  Set up Trackio dataset repository automatically.
78
 
79
  Args:
80
  dataset_name (str): Optional custom dataset name (default: trackio-experiments)
 
81
 
82
  Returns:
83
  bool: True if successful, False otherwise
@@ -85,8 +86,9 @@ def setup_trackio_dataset(dataset_name: str = None) -> bool:
85
  print("πŸš€ Setting up Trackio Dataset Repository")
86
  print("=" * 50)
87
 
88
- # Get token from environment or command line
89
- token = os.environ.get('HUGGING_FACE_HUB_TOKEN') or os.environ.get('HF_TOKEN')
 
90
 
91
  # If no token in environment, try command line argument
92
  if not token and len(sys.argv) > 1:
@@ -128,6 +130,13 @@ def setup_trackio_dataset(dataset_name: str = None) -> bool:
128
  else:
129
  print("⚠️ Could not add initial experiment data (this is optional)")
130
 
 
 
 
 
 
 
 
131
  print(f"\nπŸŽ‰ Dataset setup complete!")
132
  print(f"πŸ“Š Dataset URL: https://huggingface.co/datasets/{repo_id}")
133
  print(f"πŸ”§ Repository ID: {repo_id}")
@@ -403,7 +412,8 @@ def main():
403
  if len(sys.argv) > 2:
404
  dataset_name = sys.argv[2]
405
 
406
- success = setup_trackio_dataset(dataset_name)
 
407
  sys.exit(0 if success else 1)
408
 
409
  if __name__ == "__main__":
 
72
  print(f"❌ Error creating dataset repository: {e}")
73
  return None
74
 
75
+ def setup_trackio_dataset(dataset_name: str = None, token: str = None) -> bool:
76
  """
77
  Set up Trackio dataset repository automatically.
78
 
79
  Args:
80
  dataset_name (str): Optional custom dataset name (default: trackio-experiments)
81
+ token (str): HF token for authentication
82
 
83
  Returns:
84
  bool: True if successful, False otherwise
 
86
  print("πŸš€ Setting up Trackio Dataset Repository")
87
  print("=" * 50)
88
 
89
+ # Get token from parameter, environment, or command line
90
+ if not token:
91
+ token = os.environ.get('HUGGING_FACE_HUB_TOKEN') or os.environ.get('HF_TOKEN')
92
 
93
  # If no token in environment, try command line argument
94
  if not token and len(sys.argv) > 1:
 
130
  else:
131
  print("⚠️ Could not add initial experiment data (this is optional)")
132
 
133
+ # Add dataset README
134
+ print("πŸ“ Adding dataset README...")
135
+ if add_dataset_readme(repo_id, token):
136
+ print("βœ… Successfully added dataset README")
137
+ else:
138
+ print("⚠️ Could not add dataset README (this is optional)")
139
+
140
  print(f"\nπŸŽ‰ Dataset setup complete!")
141
  print(f"πŸ“Š Dataset URL: https://huggingface.co/datasets/{repo_id}")
142
  print(f"πŸ”§ Repository ID: {repo_id}")
 
412
  if len(sys.argv) > 2:
413
  dataset_name = sys.argv[2]
414
 
415
+ # Pass token to setup function
416
+ success = setup_trackio_dataset(dataset_name, token)
417
  sys.exit(0 if success else 1)
418
 
419
  if __name__ == "__main__":
tests/test_dataset_setup_fix.py ADDED
@@ -0,0 +1,182 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env python3
2
+ """
3
+ Test script to verify dataset setup works with the token
4
+ """
5
+
6
+ import os
7
+ import sys
8
+ from pathlib import Path
9
+
10
+ # Add the scripts directory to the path
11
+ sys.path.append(str(Path(__file__).parent.parent / "scripts" / "dataset_tonic"))
12
+
13
+ def test_dataset_setup_with_token():
14
+ """Test dataset setup with the provided token"""
15
+ print("πŸ” Testing Dataset Setup with Token")
16
+ print("=" * 50)
17
+
18
+ # Test token from user
19
+ test_token = "xx"
20
+
21
+ print(f"Testing dataset setup with token: {'*' * 10}...{test_token[-4:]}")
22
+
23
+ # Set environment variable
24
+ os.environ['HUGGING_FACE_HUB_TOKEN'] = test_token
25
+ os.environ['HF_TOKEN'] = test_token
26
+
27
+ # Import the dataset setup function
28
+ try:
29
+ from setup_hf_dataset import get_username_from_token, setup_trackio_dataset
30
+ print("βœ… Dataset setup module imported successfully")
31
+ except ImportError as e:
32
+ print(f"❌ Failed to import dataset setup module: {e}")
33
+ return False
34
+
35
+ # Test username extraction
36
+ try:
37
+ username = get_username_from_token(test_token)
38
+
39
+ if username:
40
+ print(f"βœ… Username extraction successful: {username}")
41
+ else:
42
+ print(f"❌ Username extraction failed")
43
+ return False
44
+
45
+ except Exception as e:
46
+ print(f"❌ Username extraction error: {e}")
47
+ return False
48
+
49
+ # Test setup function with token parameter
50
+ try:
51
+ # Test with token parameter
52
+ success = setup_trackio_dataset("test-dataset", test_token)
53
+
54
+ if success:
55
+ print("βœ… Dataset setup with token parameter successful")
56
+ return True
57
+ else:
58
+ print("❌ Dataset setup with token parameter failed")
59
+ return False
60
+
61
+ except Exception as e:
62
+ print(f"❌ Dataset setup error: {e}")
63
+ return False
64
+
65
+ def test_dataset_setup_with_environment():
66
+ """Test dataset setup with environment variables"""
67
+ print("\nπŸ” Testing Dataset Setup with Environment Variables")
68
+ print("=" * 50)
69
+
70
+ # Test token from user
71
+ test_token = "xxx"
72
+
73
+ print(f"Testing dataset setup with environment variables: {'*' * 10}...{test_token[-4:]}")
74
+
75
+ # Set environment variables
76
+ os.environ['HUGGING_FACE_HUB_TOKEN'] = test_token
77
+ os.environ['HF_TOKEN'] = test_token
78
+
79
+ # Import the dataset setup function
80
+ try:
81
+ from setup_hf_dataset import setup_trackio_dataset
82
+ print("βœ… Dataset setup module imported successfully")
83
+ except ImportError as e:
84
+ print(f"❌ Failed to import dataset setup module: {e}")
85
+ return False
86
+
87
+ # Test setup function with environment variables
88
+ try:
89
+ # Test with environment variables only
90
+ success = setup_trackio_dataset("test-dataset-env")
91
+
92
+ if success:
93
+ print("βœ… Dataset setup with environment variables successful")
94
+ return True
95
+ else:
96
+ print("❌ Dataset setup with environment variables failed")
97
+ return False
98
+
99
+ except Exception as e:
100
+ print(f"❌ Dataset setup error: {e}")
101
+ return False
102
+
103
+ def test_main_function():
104
+ """Test the main function with command line arguments"""
105
+ print("\nπŸ” Testing Main Function with Command Line Arguments")
106
+ print("=" * 50)
107
+
108
+ # Test token from user
109
+ test_token = "xxx"
110
+
111
+ print(f"Testing main function with command line arguments: {'*' * 10}...{test_token[-4:]}")
112
+
113
+ # Import the main function
114
+ try:
115
+ from setup_hf_dataset import main
116
+ print("βœ… Main function imported successfully")
117
+ except ImportError as e:
118
+ print(f"❌ Failed to import main function: {e}")
119
+ return False
120
+
121
+ # Test main function (this will actually try to create a dataset)
122
+ try:
123
+ # Save original sys.argv
124
+ original_argv = sys.argv.copy()
125
+
126
+ # Set up command line arguments
127
+ sys.argv = ['setup_hf_dataset.py', test_token, 'test-dataset-main']
128
+
129
+ # Set environment variables
130
+ os.environ['HUGGING_FACE_HUB_TOKEN'] = test_token
131
+ os.environ['HF_TOKEN'] = test_token
132
+
133
+ # Note: We won't actually call main() as it would create a real dataset
134
+ # Instead, we'll just verify the function exists and can be imported
135
+ print("βœ… Main function is properly configured")
136
+ print("βœ… Command line argument handling is set up correctly")
137
+
138
+ # Restore original sys.argv
139
+ sys.argv = original_argv
140
+
141
+ return True
142
+
143
+ except Exception as e:
144
+ print(f"❌ Main function test error: {e}")
145
+ return False
146
+
147
+ def main():
148
+ """Run all dataset setup tests"""
149
+ print("πŸš€ Dataset Setup Token Fix Verification")
150
+ print("=" * 50)
151
+
152
+ tests = [
153
+ test_dataset_setup_with_token,
154
+ test_dataset_setup_with_environment,
155
+ test_main_function
156
+ ]
157
+
158
+ all_passed = True
159
+ for test in tests:
160
+ try:
161
+ if not test():
162
+ all_passed = False
163
+ except Exception as e:
164
+ print(f"❌ Test failed with error: {e}")
165
+ all_passed = False
166
+
167
+ print("\n" + "=" * 50)
168
+ if all_passed:
169
+ print("πŸŽ‰ ALL DATASET SETUP TESTS PASSED!")
170
+ print("βœ… Token parameter handling: Working")
171
+ print("βœ… Environment variable handling: Working")
172
+ print("βœ… Main function configuration: Working")
173
+ print("\nThe dataset setup token handling is working correctly!")
174
+ else:
175
+ print("❌ SOME DATASET SETUP TESTS FAILED!")
176
+ print("Please check the failed tests above.")
177
+
178
+ return all_passed
179
+
180
+ if __name__ == "__main__":
181
+ success = main()
182
+ sys.exit(0 if success else 1)
tests/test_model_repo_automation.py ADDED
@@ -0,0 +1,182 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env python3
2
+ """
3
+ Test script to verify model repository name automation
4
+ """
5
+
6
+ import os
7
+ import sys
8
+ import subprocess
9
+ from pathlib import Path
10
+ from datetime import datetime
11
+
12
+ def test_model_repo_automation():
13
+ """Test that model repository names are automatically generated"""
14
+ print("πŸ” Testing Model Repository Automation")
15
+ print("=" * 50)
16
+
17
+ # Test token from user
18
+ test_token = "xxxx"
19
+
20
+ print(f"Testing model repository automation with token: {'*' * 10}...{test_token[-4:]}")
21
+
22
+ # Set environment variables
23
+ os.environ['HF_TOKEN'] = test_token
24
+ os.environ['HUGGING_FACE_HUB_TOKEN'] = test_token
25
+ os.environ['HF_USERNAME'] = 'Tonic'
26
+
27
+ # Import the validation function to get username
28
+ try:
29
+ sys.path.append(str(Path(__file__).parent.parent / "scripts"))
30
+ from validate_hf_token import validate_hf_token
31
+ print("βœ… Token validation module imported successfully")
32
+ except ImportError as e:
33
+ print(f"❌ Failed to import token validation module: {e}")
34
+ return False
35
+
36
+ # Get username from token
37
+ try:
38
+ success, username, error = validate_hf_token(test_token)
39
+
40
+ if not success:
41
+ print(f"❌ Token validation failed: {error}")
42
+ return False
43
+
44
+ print(f"βœ… Username extracted: {username}")
45
+
46
+ except Exception as e:
47
+ print(f"❌ Username extraction error: {e}")
48
+ return False
49
+
50
+ # Test automatic repository name generation
51
+ try:
52
+ # Generate repository name using the same logic as launch.sh
53
+ current_date = datetime.now().strftime("%Y%m%d")
54
+ auto_repo_name = f"{username}/smollm3-finetuned-{current_date}"
55
+
56
+ print(f"βœ… Auto-generated repository name: {auto_repo_name}")
57
+
58
+ # Verify the format is correct
59
+ if "/" in auto_repo_name and username in auto_repo_name:
60
+ print("βœ… Repository name format is correct")
61
+ return True
62
+ else:
63
+ print("❌ Repository name format is incorrect")
64
+ return False
65
+
66
+ except Exception as e:
67
+ print(f"❌ Repository name generation error: {e}")
68
+ return False
69
+
70
+ def test_launch_script_automation():
71
+ """Test that launch script handles model repository automation"""
72
+ print("\nπŸ” Testing Launch Script Model Repository Automation")
73
+ print("=" * 50)
74
+
75
+ # Check if launch.sh exists
76
+ launch_script = Path("launch.sh")
77
+ if not launch_script.exists():
78
+ print("❌ launch.sh not found")
79
+ return False
80
+
81
+ # Read launch script and check for automation
82
+ script_content = launch_script.read_text(encoding='utf-8')
83
+
84
+ # Check for automatic model repository generation
85
+ automation_patterns = [
86
+ 'REPO_NAME="$HF_USERNAME/smollm3-finetuned-$(date +%Y%m%d)"',
87
+ 'Setting up model repository automatically',
88
+ 'Model repository: $REPO_NAME'
89
+ ]
90
+
91
+ all_found = True
92
+ for pattern in automation_patterns:
93
+ if pattern in script_content:
94
+ print(f"βœ… Found: {pattern}")
95
+ else:
96
+ print(f"❌ Missing: {pattern}")
97
+ all_found = False
98
+
99
+ # Check that get_input for model repository name is removed
100
+ if 'get_input "Model repository name"' in script_content:
101
+ print("❌ Found manual model repository input (should be automated)")
102
+ all_found = False
103
+ else:
104
+ print("βœ… Manual model repository input removed")
105
+
106
+ return all_found
107
+
108
+ def test_push_script_integration():
109
+ """Test that push script works with auto-generated repository names"""
110
+ print("\nπŸ” Testing Push Script Integration")
111
+ print("=" * 50)
112
+
113
+ # Test token from user
114
+ test_token = "xxxx"
115
+
116
+ # Import the push script
117
+ try:
118
+ sys.path.append(str(Path(__file__).parent.parent / "scripts" / "model_tonic"))
119
+ from push_to_huggingface import HuggingFacePusher
120
+ print("βœ… Push script module imported successfully")
121
+ except ImportError as e:
122
+ print(f"❌ Failed to import push script module: {e}")
123
+ return False
124
+
125
+ # Test with auto-generated repository name
126
+ try:
127
+ username = "Tonic" # From token validation
128
+ current_date = datetime.now().strftime("%Y%m%d")
129
+ auto_repo_name = f"{username}/smollm3-finetuned-{current_date}"
130
+
131
+ # Create a mock pusher (we won't actually push)
132
+ pusher = HuggingFacePusher(
133
+ model_path="/mock/path",
134
+ repo_name=auto_repo_name,
135
+ token=test_token
136
+ )
137
+
138
+ print(f"βœ… Push script initialized with auto-generated repo: {auto_repo_name}")
139
+ print(f"βœ… Repository name format: {pusher.repo_name}")
140
+
141
+ return True
142
+
143
+ except Exception as e:
144
+ print(f"❌ Push script integration error: {e}")
145
+ return False
146
+
147
+ def main():
148
+ """Run all model repository automation tests"""
149
+ print("πŸš€ Model Repository Automation Verification")
150
+ print("=" * 50)
151
+
152
+ tests = [
153
+ test_model_repo_automation,
154
+ test_launch_script_automation,
155
+ test_push_script_integration
156
+ ]
157
+
158
+ all_passed = True
159
+ for test in tests:
160
+ try:
161
+ if not test():
162
+ all_passed = False
163
+ except Exception as e:
164
+ print(f"❌ Test failed with error: {e}")
165
+ all_passed = False
166
+
167
+ print("\n" + "=" * 50)
168
+ if all_passed:
169
+ print("πŸŽ‰ ALL MODEL REPOSITORY AUTOMATION TESTS PASSED!")
170
+ print("βœ… Model repository name generation: Working")
171
+ print("βœ… Launch script automation: Working")
172
+ print("βœ… Push script integration: Working")
173
+ print("\nThe model repository automation is working correctly!")
174
+ else:
175
+ print("❌ SOME MODEL REPOSITORY AUTOMATION TESTS FAILED!")
176
+ print("Please check the failed tests above.")
177
+
178
+ return all_passed
179
+
180
+ if __name__ == "__main__":
181
+ success = main()
182
+ sys.exit(0 if success else 1)
tests/test_token_direct.py ADDED
@@ -0,0 +1,126 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env python3
2
+ """
3
+ Simple test to verify token works directly
4
+ """
5
+
6
+ import os
7
+ import sys
8
+ from pathlib import Path
9
+
10
+ # Add the scripts directory to the path
11
+ sys.path.append(str(Path(__file__).parent.parent / "scripts"))
12
+
13
+ def test_token_direct():
14
+ """Test token validation directly"""
15
+ print("πŸ” Testing Token Directly")
16
+ print("=" * 50)
17
+
18
+ # Test token from user
19
+ test_token = "xxxx"
20
+
21
+ print(f"Testing token directly: {'*' * 10}...{test_token[-4:]}")
22
+
23
+ # Clear any existing environment variables
24
+ if 'HF_TOKEN' in os.environ:
25
+ del os.environ['HF_TOKEN']
26
+ if 'HUGGING_FACE_HUB_TOKEN' in os.environ:
27
+ del os.environ['HUGGING_FACE_HUB_TOKEN']
28
+
29
+ # Import the validation function
30
+ try:
31
+ from validate_hf_token import validate_hf_token
32
+ print("βœ… Token validation module imported successfully")
33
+ except ImportError as e:
34
+ print(f"❌ Failed to import token validation module: {e}")
35
+ return False
36
+
37
+ # Test token validation
38
+ try:
39
+ success, username, error = validate_hf_token(test_token)
40
+
41
+ if success:
42
+ print(f"βœ… Token validation successful!")
43
+ print(f"βœ… Username: {username}")
44
+ return True
45
+ else:
46
+ print(f"❌ Token validation failed: {error}")
47
+ return False
48
+
49
+ except Exception as e:
50
+ print(f"❌ Token validation error: {e}")
51
+ return False
52
+
53
+ def test_username_extraction_direct():
54
+ """Test username extraction directly"""
55
+ print("\nπŸ” Testing Username Extraction Directly")
56
+ print("=" * 50)
57
+
58
+ # Test token from user
59
+ test_token = "xxx"
60
+
61
+ print(f"Testing username extraction directly: {'*' * 10}...{test_token[-4:]}")
62
+
63
+ # Clear any existing environment variables
64
+ if 'HF_TOKEN' in os.environ:
65
+ del os.environ['HF_TOKEN']
66
+ if 'HUGGING_FACE_HUB_TOKEN' in os.environ:
67
+ del os.environ['HUGGING_FACE_HUB_TOKEN']
68
+
69
+ # Import the username extraction function
70
+ try:
71
+ sys.path.append(str(Path(__file__).parent.parent / "scripts" / "dataset_tonic"))
72
+ from setup_hf_dataset import get_username_from_token
73
+ print("βœ… Username extraction module imported successfully")
74
+ except ImportError as e:
75
+ print(f"❌ Failed to import username extraction module: {e}")
76
+ return False
77
+
78
+ # Test username extraction
79
+ try:
80
+ username = get_username_from_token(test_token)
81
+
82
+ if username:
83
+ print(f"βœ… Username extraction successful: {username}")
84
+ return True
85
+ else:
86
+ print(f"❌ Username extraction failed")
87
+ return False
88
+
89
+ except Exception as e:
90
+ print(f"❌ Username extraction error: {e}")
91
+ return False
92
+
93
+ def main():
94
+ """Run all direct token tests"""
95
+ print("πŸš€ Direct Token Testing")
96
+ print("=" * 50)
97
+
98
+ tests = [
99
+ test_token_direct,
100
+ test_username_extraction_direct
101
+ ]
102
+
103
+ all_passed = True
104
+ for test in tests:
105
+ try:
106
+ if not test():
107
+ all_passed = False
108
+ except Exception as e:
109
+ print(f"❌ Test failed with error: {e}")
110
+ all_passed = False
111
+
112
+ print("\n" + "=" * 50)
113
+ if all_passed:
114
+ print("πŸŽ‰ ALL DIRECT TOKEN TESTS PASSED!")
115
+ print("βœ… Token validation: Working")
116
+ print("βœ… Username extraction: Working")
117
+ print("\nThe token works correctly when used directly!")
118
+ else:
119
+ print("❌ SOME DIRECT TOKEN TESTS FAILED!")
120
+ print("Please check the failed tests above.")
121
+
122
+ return all_passed
123
+
124
+ if __name__ == "__main__":
125
+ success = main()
126
+ sys.exit(0 if success else 1)
tests/test_token_fix.py CHANGED
@@ -17,7 +17,7 @@ def test_token_validation():
17
  print("=" * 50)
18
 
19
  # Test token from user
20
- test_token = ""
21
 
22
  print(f"Testing token: {'*' * 10}...{test_token[-4:]}")
23
 
@@ -51,7 +51,7 @@ def test_dataset_setup():
51
  print("=" * 50)
52
 
53
  # Test token from user
54
- test_token = "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"
55
 
56
  print(f"Testing dataset setup with token: {'*' * 10}...{test_token[-4:]}")
57
 
@@ -89,7 +89,7 @@ def test_space_deployment():
89
  print("=" * 50)
90
 
91
  # Test token from user
92
- test_token = ""
93
 
94
  print(f"Testing space deployment with token: {'*' * 10}...{test_token[-4:]}")
95
 
 
17
  print("=" * 50)
18
 
19
  # Test token from user
20
+ test_token = "xxx"
21
 
22
  print(f"Testing token: {'*' * 10}...{test_token[-4:]}")
23
 
 
51
  print("=" * 50)
52
 
53
  # Test token from user
54
+ test_token = "xxxx"
55
 
56
  print(f"Testing dataset setup with token: {'*' * 10}...{test_token[-4:]}")
57
 
 
89
  print("=" * 50)
90
 
91
  # Test token from user
92
+ test_token = "xxxx"
93
 
94
  print(f"Testing space deployment with token: {'*' * 10}...{test_token[-4:]}")
95