#!/usr/bin/env python3 """Quick test script to verify py-wikijs installation and connectivity. This script helps you verify that py-wikijs is installed correctly and can connect to your Wiki.js instance. Usage: python quick_test.py Or set environment variables: export WIKIJS_URL="https://your-wiki.example.com" export WIKIJS_API_KEY="your-api-key-here" python quick_test.py """ import os import sys from typing import Optional def test_import() -> bool: """Test that py-wikijs can be imported.""" print("=" * 60) print("TEST 1: Package Import") print("=" * 60) try: from wikijs import WikiJSClient, __version__ print(f"โœ… Successfully imported py-wikijs v{__version__}") return True except ImportError as e: print(f"โŒ Failed to import py-wikijs: {e}") print("\nInstall with: pip install git+https://github.com/l3ocho/py-wikijs.git@v0.1.0") return False def test_connectivity(url: Optional[str] = None, api_key: Optional[str] = None) -> bool: """Test connectivity to Wiki.js instance.""" print("\n" + "=" * 60) print("TEST 2: Wiki.js Connectivity") print("=" * 60) # Get credentials url = url or os.getenv("WIKIJS_URL") api_key = api_key or os.getenv("WIKIJS_API_KEY") if not url or not api_key: print("โš ๏ธ Skipping connectivity test - credentials not provided") print("\nTo test connectivity, set environment variables:") print(" export WIKIJS_URL='https://your-wiki.example.com'") print(" export WIKIJS_API_KEY='your-api-key-here'") return False try: from wikijs import WikiJSClient print(f"๐Ÿ”— Connecting to: {url}") client = WikiJSClient(url=url, auth=api_key) # Try to list pages pages = client.pages.list() print(f"โœ… Successfully connected to Wiki.js") print(f"โœ… Found {len(pages)} page(s)") # Show first page if available if pages: first_page = pages[0] print(f"\nFirst page:") print(f" - ID: {first_page.id}") print(f" - Title: {first_page.title}") print(f" - Path: {first_page.path}") return True except Exception as e: print(f"โŒ Failed to connect: {e}") print("\nPlease verify:") print(" 1. Wiki.js URL is correct and accessible") print(" 2. API key is valid and has necessary permissions") print(" 3. Wiki.js version is 2.2 or higher (not 3.x)") return False def test_features() -> bool: """Test that key features are available.""" print("\n" + "=" * 60) print("TEST 3: Feature Availability") print("=" * 60) try: from wikijs import ( APIKeyAuth, AuthenticationError, JWTAuth, Page, PageCreate, WikiJSClient, ) print("โœ… Core client: WikiJSClient") print("โœ… Authentication: APIKeyAuth, JWTAuth") print("โœ… Models: Page, PageCreate") print("โœ… Exceptions: AuthenticationError") print("โœ… All core features available") return True except ImportError as e: print(f"โŒ Missing features: {e}") return False def main() -> int: """Run all tests.""" print("\n๐Ÿงช py-wikijs Installation & Connectivity Test") print("=" * 60) results = [] # Test 1: Import results.append(test_import()) # Test 2: Connectivity (optional) results.append(test_connectivity()) # Test 3: Features results.append(test_features()) # Summary print("\n" + "=" * 60) print("TEST SUMMARY") print("=" * 60) passed = sum(results) total = len(results) print(f"Tests passed: {passed}/{total}") if all(results): print("\n๐ŸŽ‰ All tests passed! py-wikijs is ready to use.") return 0 elif results[0] and results[2]: # Import and features work print("\nโœ… Installation verified!") print("โ„น๏ธ Set WIKIJS_URL and WIKIJS_API_KEY to test connectivity") return 0 else: print("\nโŒ Some tests failed. Please check the errors above.") return 1 if __name__ == "__main__": sys.exit(main())