/ legacy / python / lib / test_tui_files.py
test_tui_files.py
 1  #!/usr/bin/env python3
 2  """
 3  Test the file reading functionality we added to TUI.
 4  """
 5  
 6  import sys
 7  import os
 8  from pathlib import Path
 9  
10  # Add the project root to Python path
11  project_root = os.path.dirname(os.path.abspath(__file__))
12  sys.path.insert(0, project_root)
13  
14  def test_directory_listing():
15      """Test directory listing functionality."""
16      try:
17          cwd = Path.cwd()
18          files = []
19          dirs = []
20          
21          for item in cwd.iterdir():
22              if item.is_dir():
23                  dirs.append(f"๐Ÿ“ {item.name}/")
24              else:
25                  size = item.stat().st_size
26                  if size < 1024:
27                      size_str = f"{size}B"
28                  elif size < 1024*1024:
29                      size_str = f"{size//1024}KB"
30                  else:
31                      size_str = f"{size//(1024*1024)}MB"
32                  files.append(f"๐Ÿ“„ {item.name} ({size_str})")
33          
34          print(f"๐Ÿ“ Current Directory: {cwd}\n")
35          
36          if dirs:
37              print("๐Ÿ“ Directories:")
38              for d in sorted(dirs):
39                  print(f"  {d}")
40              print()
41          
42          if files:
43              print("๐Ÿ“„ Files:")
44              for f in sorted(files):
45                  print(f"  {f}")
46          
47          if not dirs and not files:
48              print("Empty directory")
49              
50          return True
51          
52      except Exception as e:
53          print(f"โŒ Error reading directory: {str(e)}")
54          return False
55  
56  def test_file_reading():
57      """Test file reading functionality."""
58      try:
59          # Test reading the README
60          from kamaji.file_context import read_file_content
61          
62          content = read_file_content("README.md")
63          if content is None:
64              print("โŒ Could not read README.md")
65              return False
66          
67          # Show first 500 characters
68          if len(content) > 500:
69              display_content = content[:500] + f"\n\n[... truncated, showing first 500 of {len(content)} characters]"
70          else:
71              display_content = content
72          
73          print(f"๐Ÿ“„ README.md:\n{display_content}")
74          return True
75          
76      except Exception as e:
77          print(f"โŒ Error reading file: {str(e)}")
78          return False
79  
80  if __name__ == "__main__":
81      print("๐Ÿงช Testing Kamaji TUI File Functionality\n")
82      
83      print("1. Testing directory listing...")
84      if test_directory_listing():
85          print("โœ… Directory listing works!\n")
86      else:
87          print("โŒ Directory listing failed!\n")
88      
89      print("2. Testing file reading...")
90      if test_file_reading():
91          print("โœ… File reading works!")
92      else:
93          print("โŒ File reading failed!")