CLI ProxyCall légère pour piloter l'API en local ou sur Render
Project description
ProxyCall
Ce dépôt regroupe les services et intégrations permettant de gérer l'attribution de numéros proxy et le routage des appels. Les tests sont désormais centralisés dans le dossier tests et un script unique permet de lancer toute la suite.
Installation rapide
- Créez un environnement virtuel et installez les dépendances :
python -m venv .venv source .venv/bin/activate pip install -r requirements.txt
- Configurez les variables d'environnement nécessaires pour les services Twilio et Google Sheets lorsque vous souhaitez exécuter les tests live (voir ci-dessous).
Exécution des tests
Le dossier tests contient trois catégories principales de scénarios, exécutables via pytest.
1. Tests unitaires et de service
- Objectif : valider la logique métier (routage d'appel, gestion des commandes, clients, interactions Twilio simulées, etc.).
- Fichiers concernés :
tests/test_call_routing_service.pytests/test_clients_service.pytests/test_orders_service.pytests/test_sheets_client_unit.pytests/test_twilio_client_unit.pytests/test_demo_scenarios.py
- Commande (PyCharm/terminal) :
python -m pytest tests/test_call_routing_service.py
Ajustez le chemin vers le fichier ou utilisez-kpour cibler un test en particulier.
2. Tests démo hors-ligne
- Objectif : présenter les flux principaux sans appeler de services externes.
- Fichiers concernés :
tests/client_repository_demo_test.pytests/test_sheets_access_demo_test.pytests/twilio_pools_demo_test.py
- Commande :
python -m pytest tests/client_repository_demo_test.py
Ces tests peuvent être lancés sans configuration supplémentaire.
3. Tests live (intégrations réelles)
- Objectif : vérifier l'accès réel aux APIs Twilio et Google Sheets.
- Fichiers concernés :
tests/client_repository_live_test.pytests/test_sheets_access_live_test.py
- Activation : par défaut ces tests sont ignorés. Pour les exécuter, définissez les variables requises :
export PROXYCALL_RUN_LIVE=1 export TWILIO_ACCOUNT_SID="..." export TWILIO_AUTH_TOKEN="..." export GOOGLE_SERVICE_ACCOUNT_FILE="path/vers/credentials.json" export GOOGLE_SHEET_NAME="NomDuSheet" python -m pytest tests/test_sheets_access_live_test.py
Script unique
Pour exécuter l'ensemble des tests (unitaires, démo et live si les variables sont présentes), utilisez le script dédié depuis la racine du projet :
./run_tests.sh
Vous pouvez lui passer des arguments pytest supplémentaires, par exemple ./run_tests.sh -k call_routing.
Déploiement Render
Un blueprint Render (render.yaml) est fourni pour déployer l'API FastAPI sur Render avec uvicorn app.main:app. Le guide détaillé et la préparation de la CLI (.env.render pour l'URL/token uniquement) sont décrits dans docs/deploiement_render.md.
Pour consommer le backend depuis n'importe quel poste (ex. Windows), la CLI envoie par défaut les commandes (create-client, pool-list, etc.) vers l'API Render sécurisée par PROXYCALL_API_TOKEN (mode Render par défaut, basé sur .env.render).
Distribution légère de la CLI
- Construire le bundle manuellement :
python -m pip install build && python -m buildgénère une archive wheel/zip (dist/). - Publication PyPI en une commande :
python scripts/publier_sur_pypi.py.- Identifiants attendus dans l'environnement :
TWINE_USERNAME=__token__etTWINE_PASSWORD=pypi-xxxxxxxx(outestpypi-xxxxxxxx). - Sous PowerShell (PyCharm ou terminal Windows) :
$Env:TWINE_USERNAME="__token__" $Env:TWINE_PASSWORD="pypi-xxxxxxxx" python scripts/publier_sur_pypi.py
- Option
--dry-runpour s'arrêter après le build. - Le script incrémente automatiquement le patch de version dans
pyproject.tomlà chaque exécution (0.1.0 → 0.1.1 → 0.1.2, etc.) pour éviter les collisions PyPI ; conservez le contrôle manuel en éditant la version avant d'appeler le script si besoin.
- Identifiants attendus dans l'environnement :
- Installation :
pip install proxycall-cli(oupip install dist/proxycall_cli-<version>-py3-none-any.whl). - Utilisation (Render par défaut) :
proxycall-cli ...oupython -m proxycall ...; aucune option n'est requise pour cibler Render. - Mode Dev (Twilio/Google) : utilisez le binaire
proxycall-cli-live(ou l'option--live) et fournissez les variables Twilio/Google via.envou l'environnement. - La CLI charge automatiquement
.envpuis.env.renderà partir du répertoire courant ou de ses parents (résolutionfind_dotenv), sans dépendre de la racine du dépôt.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file proxycall_cli-0.1.3.tar.gz.
File metadata
- Download URL: proxycall_cli-0.1.3.tar.gz
- Upload date:
- Size: 35.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
13a490d4a91da814d729ab8f71944b3fc6c85ea87eb079501a875e31d48b4102
|
|
| MD5 |
ebd0c7f75549d3f3144079bb1b825edc
|
|
| BLAKE2b-256 |
5216e79f317fa9e70687da317667670623d39b226eb58834a47dc75f1ad93542
|
File details
Details for the file proxycall_cli-0.1.3-py3-none-any.whl.
File metadata
- Download URL: proxycall_cli-0.1.3-py3-none-any.whl
- Upload date:
- Size: 30.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e66e4309249c9819d0be34613ee1d5499ddedd047a5c0d2fdef29f313304ebbf
|
|
| MD5 |
8ea49bff645086ba188edc133bf6be93
|
|
| BLAKE2b-256 |
dae36538e09c1098bcaf92147de0fa4d6db483bdca82d95b36d578a3140c65cf
|