function quick_test
A diagnostic function that tests SharePoint Graph API connectivity and verifies access to the main site library by checking for expected folder structures in the root directory.
/tf/active/vicechatdev/SPFCsync/quick_test.py
10 - 74
moderate
Purpose
This function serves as a connectivity and configuration validation tool for SharePoint integration. It initializes a SharePoint Graph client, retrieves root folder contents, and verifies that expected folders (01 UCJ, 02 Toxicology, 03 CMC, 04 Quality) are present in the main site library. It provides detailed console output with visual indicators to help diagnose connection issues and confirm proper setup.
Source Code
def quick_test():
"""Quick test to verify main site library access"""
config = Config()
try:
client = SharePointGraphClient(
site_url=config.SHAREPOINT_SITE_URL,
client_id=config.AZURE_CLIENT_ID,
client_secret=config.AZURE_CLIENT_SECRET
)
print("✅ SharePoint Graph client initialized successfully")
print(f"Site ID: {client.site_id}")
print(f"Drive ID: {client.drive_id}")
print()
# Get just the root folder contents
headers = {
'Authorization': f'Bearer {client.access_token}',
'Accept': 'application/json'
}
root_url = f"https://graph.microsoft.com/v1.0/drives/{client.drive_id}/root/children"
response = requests.get(root_url, headers=headers)
if response.status_code == 200:
root_data = response.json()
items = root_data.get('value', [])
folders = [item for item in items if 'folder' in item]
files = [item for item in items if 'file' in item]
print("🎯 ROOT FOLDER CONTENTS:")
print(f"📁 {len(folders)} folders, 📄 {len(files)} files")
print()
print("📁 FOLDERS:")
expected_patterns = ['01 UCJ', '02 Toxicology', '03 CMC', '04 Quality']
for folder in folders:
folder_name = folder.get('name', 'Unknown')
is_expected = any(pattern in folder_name for pattern in expected_patterns)
marker = "🎯" if is_expected else "📁"
print(f"{marker} {folder_name}")
if is_expected:
print(f" ✅ Expected folder found!")
# Count expected folders found
expected_found = sum(1 for folder in folders
if any(pattern in folder.get('name', '')
for pattern in expected_patterns))
print()
print(f"🎊 SUCCESS! Found {expected_found}/4 expected folders")
print("✅ We are now connected to the MAIN SITE LIBRARY!")
else:
print(f"❌ Failed to get root contents: {response.status_code}")
print(response.text)
except Exception as e:
print(f"❌ Error: {e}")
import traceback
traceback.print_exc()
Return Value
This function does not return any value (implicitly returns None). It outputs diagnostic information directly to the console, including success/failure messages, folder listings, and error tracebacks if exceptions occur.
Dependencies
requestssharepoint_graph_clientconfig
Required Imports
from sharepoint_graph_client import SharePointGraphClient
from config import Config
import requests
Conditional/Optional Imports
These imports are only needed under specific conditions:
import traceback
Condition: only when an exception occurs during execution
OptionalUsage Example
# Ensure config.py exists with required settings
# from config import Config
# Config should have: SHAREPOINT_SITE_URL, AZURE_CLIENT_ID, AZURE_CLIENT_SECRET
from sharepoint_graph_client import SharePointGraphClient
from config import Config
import requests
def quick_test():
# Function implementation here
pass
# Run the diagnostic test
quick_test()
# Expected output:
# ✅ SharePoint Graph client initialized successfully
# Site ID: <site_id>
# Drive ID: <drive_id>
# 🎯 ROOT FOLDER CONTENTS:
# 📁 4 folders, 📄 0 files
# ...
Best Practices
- This function should be run in a development or testing environment to verify SharePoint configuration before production use
- Ensure all Azure credentials are properly configured in the Config class before running
- The function expects specific folder naming patterns (01 UCJ, 02 Toxicology, 03 CMC, 04 Quality) - modify expected_patterns list if your SharePoint structure differs
- Review console output carefully to diagnose connection or permission issues
- This function prints sensitive information (Site ID, Drive ID) - avoid running in production logs
- The function uses synchronous requests.get() - not suitable for async environments
- Error handling includes full traceback printing which is helpful for debugging but should not be used in production code
Tags
Similar Components
AI-powered semantic similarity - components with related functionality:
-
function test_graph_client 80.8% similar
-
function main_v26 78.3% similar
-
function test_folder_structure 76.9% similar
-
function test_graph_sites_api 76.9% similar
-
function main_v8 76.6% similar