Skip to main content

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

  1. Créez un environnement virtuel et installez les dépendances :
    python -m venv .venv
    source .venv/bin/activate
    pip install -r requirements.txt
    
  2. 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.py
    • tests/test_clients_service.py
    • tests/test_orders_service.py
    • tests/test_sheets_client_unit.py
    • tests/test_twilio_client_unit.py
    • tests/test_demo_scenarios.py
  • Commande (PyCharm/terminal) :
    python -m pytest tests/test_call_routing_service.py
    
    Ajustez le chemin vers le fichier ou utilisez -k pour 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.py
    • tests/test_sheets_access_demo_test.py
    • tests/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.py
    • tests/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), lancez la CLI avec --render afin d'envoyer les commandes (create-client, pool-list, etc.) vers l'API Render sécurisée par PROXYCALL_API_TOKEN.

Distribution légère de la CLI

  • Construire le bundle : python -m pip install build && python -m build génère une archive wheel/zip (dist/).
  • Installation : pip install proxycall-cli (ou pip install dist/proxycall_cli-<version>-py3-none-any.whl).
  • Utilisation : python -m proxycall --render ... ou via le binaire installé proxycall-cli --render ....
  • La CLI charge automatiquement .env puis .env.render à partir du répertoire courant ou de ses parents (résolution find_dotenv), sans dépendre de la racine du dépôt.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

proxycall_cli-0.1.0.tar.gz (33.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

proxycall_cli-0.1.0-py3-none-any.whl (29.6 kB view details)

Uploaded Python 3

File details

Details for the file proxycall_cli-0.1.0.tar.gz.

File metadata

  • Download URL: proxycall_cli-0.1.0.tar.gz
  • Upload date:
  • Size: 33.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.1

File hashes

Hashes for proxycall_cli-0.1.0.tar.gz
Algorithm Hash digest
SHA256 a0aaabedd489b89cece4e90d08ac0602dbe56aa541e334e765f16054fbcdf338
MD5 7b12f89b531496d1da53c1dc5571668c
BLAKE2b-256 851d6625d2132635719a95784537dbcc31b5b9dcf5be6bd43087bcc6d69eb058

See more details on using hashes here.

File details

Details for the file proxycall_cli-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: proxycall_cli-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 29.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.1

File hashes

Hashes for proxycall_cli-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6eac4a99c7ca6001d22aaf3a7a7002b5dd1f49efbadeaca8624b9bbf0061201b
MD5 badcb9f3bbd8b2e1032c06b4fe6c7e12
BLAKE2b-256 cfd24d66da8042bd7d292b2f82092c60e360c394154253d36a9f5daa244755ae

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page