function validate_sharepoint_url
Validates that a given URL string conforms to SharePoint site URL format requirements, checking for proper protocol, domain, and path structure.
/tf/active/vicechatdev/SPFCsync/validate_config.py
13 - 31
simple
Purpose
This function performs comprehensive validation of SharePoint URLs to ensure they meet Microsoft SharePoint's URL conventions. It checks for HTTPS protocol, proper SharePoint domain (.sharepoint.com), and the presence of site or team paths. It's designed to catch common configuration errors, including placeholder URLs that haven't been updated. The function returns both a boolean validation result and a descriptive error message, making it useful for configuration validation, user input verification, and setup wizards.
Source Code
def validate_sharepoint_url(url):
"""Validate SharePoint URL format."""
if not url or url == "https://your-tenant.sharepoint.com/sites/your-site":
return False, "Please update SHAREPOINT_SITE_URL with your actual SharePoint site URL"
if not url.startswith("https://"):
return False, "SharePoint URL must start with https://"
parsed = urlparse(url)
if not parsed.hostname:
return False, "Invalid URL format"
if not parsed.hostname.endswith(".sharepoint.com"):
return False, "URL must be a SharePoint site (*.sharepoint.com)"
if "/sites/" not in url and "/teams/" not in url:
return False, "URL should contain /sites/ or /teams/ for a specific site"
return True, "SharePoint URL format is valid"
Parameters
| Name | Type | Default | Kind |
|---|---|---|---|
url |
- | - | positional_or_keyword |
Parameter Details
url: A string representing the SharePoint site URL to validate. Expected format is 'https://<tenant>.sharepoint.com/sites/<site-name>' or 'https://<tenant>.sharepoint.com/teams/<team-name>'. Can be None or empty string, which will fail validation. Should not be the placeholder value 'https://your-tenant.sharepoint.com/sites/your-site'.
Return Value
Returns a tuple of (bool, str). The first element is True if the URL passes all validation checks, False otherwise. The second element is a string message describing either the validation success ('SharePoint URL format is valid') or the specific reason for failure (e.g., 'SharePoint URL must start with https://', 'URL must be a SharePoint site (*.sharepoint.com)', 'URL should contain /sites/ or /teams/ for a specific site', etc.).
Required Imports
from urllib.parse import urlparse
Usage Example
from urllib.parse import urlparse
def validate_sharepoint_url(url):
"""Validate SharePoint URL format."""
if not url or url == "https://your-tenant.sharepoint.com/sites/your-site":
return False, "Please update SHAREPOINT_SITE_URL with your actual SharePoint site URL"
if not url.startswith("https://"):
return False, "SharePoint URL must start with https://"
parsed = urlparse(url)
if not parsed.hostname:
return False, "Invalid URL format"
if not parsed.hostname.endswith(".sharepoint.com"):
return False, "URL must be a SharePoint site (*.sharepoint.com)"
if "/sites/" not in url and "/teams/" not in url:
return False, "URL should contain /sites/ or /teams/ for a specific site"
return True, "SharePoint URL format is valid"
# Example usage
valid_url = "https://contoso.sharepoint.com/sites/marketing"
is_valid, message = validate_sharepoint_url(valid_url)
print(f"Valid: {is_valid}, Message: {message}")
# Output: Valid: True, Message: SharePoint URL format is valid
invalid_url = "http://contoso.sharepoint.com/sites/marketing"
is_valid, message = validate_sharepoint_url(invalid_url)
print(f"Valid: {is_valid}, Message: {message}")
# Output: Valid: False, Message: SharePoint URL must start with https://
placeholder_url = "https://your-tenant.sharepoint.com/sites/your-site"
is_valid, message = validate_sharepoint_url(placeholder_url)
print(f"Valid: {is_valid}, Message: {message}")
# Output: Valid: False, Message: Please update SHAREPOINT_SITE_URL with your actual SharePoint site URL
Best Practices
- Always check both the boolean return value and the message string to provide meaningful feedback to users
- Use this function during application startup or configuration loading to fail fast with clear error messages
- The function accepts None and empty strings gracefully, returning False with an appropriate message
- Consider logging the validation message for debugging purposes when validation fails
- This function only validates URL format, not whether the SharePoint site actually exists or is accessible
- The function checks for both /sites/ and /teams/ paths, as both are valid SharePoint URL patterns
- Remember that this validation is case-sensitive for the protocol (must be lowercase 'https://') but the domain check uses .endswith() which is also case-sensitive
Tags
Similar Components
AI-powered semantic similarity - components with related functionality:
-
function main_v19 69.6% similar
-
function test_sharepoint_connection 62.8% similar
-
function test_sharepoint_api_call 61.6% similar
-
function test_sharepoint_with_token 61.2% similar
-
function test_sharepoint_listing 60.2% similar