mirror of
https://github.com/Pythagora-io/gpt-pilot.git
synced 2026-01-10 13:37:55 -05:00
disable telemetry in automated tests
This commit is contained in:
@@ -2,6 +2,7 @@ import sys
|
||||
import time
|
||||
import traceback
|
||||
from copy import deepcopy
|
||||
from os import getenv
|
||||
from pathlib import Path
|
||||
from typing import Any
|
||||
|
||||
@@ -320,7 +321,7 @@ class Telemetry:
|
||||
|
||||
Note: this method clears all telemetry data after sending it.
|
||||
"""
|
||||
if not self.enabled:
|
||||
if not self.enabled or getenv("DISABLE_TELEMETRY"):
|
||||
log.debug("Telemetry.send(): telemetry is disabled, not sending data")
|
||||
return
|
||||
|
||||
@@ -362,7 +363,7 @@ class Telemetry:
|
||||
:param name: name of the event
|
||||
:param data: data to send with the event
|
||||
"""
|
||||
if not self.enabled:
|
||||
if not self.enabled or getenv("DISABLE_TELEMETRY"):
|
||||
return
|
||||
|
||||
payload = {
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
import os
|
||||
from typing import Callable
|
||||
from unittest.mock import AsyncMock, MagicMock, patch
|
||||
|
||||
import pytest
|
||||
import pytest_asyncio
|
||||
|
||||
from core.config import DBConfig
|
||||
@@ -9,6 +11,11 @@ from core.db.session import SessionManager
|
||||
from core.state.state_manager import StateManager
|
||||
|
||||
|
||||
@pytest.fixture(autouse=True)
|
||||
def disable_test_telemetry(monkeypatch):
|
||||
os.environ["DISABLE_TELEMETRY"] = "1"
|
||||
|
||||
|
||||
@pytest_asyncio.fixture
|
||||
async def testmanager():
|
||||
"""
|
||||
|
||||
@@ -98,14 +98,15 @@ def test_inc_ignores_unknown_data_field(mock_settings):
|
||||
assert "unknown_field" not in telemetry.data
|
||||
|
||||
|
||||
@patch("core.telemetry.getenv")
|
||||
@patch("core.telemetry.time")
|
||||
@patch("core.telemetry.settings")
|
||||
def test_start_with_telemetry_enabled(mock_settings, mock_time):
|
||||
def test_start_with_telemetry_enabled(mock_settings, mock_time, mock_getenv):
|
||||
mock_settings.telemetry = MagicMock(id="test-id", endpoint="test-endpoint", enabled=True)
|
||||
mock_time.time.return_value = 1234.0
|
||||
mock_getenv.return_value = None # override DISABLE_TELEMETRY test env var
|
||||
|
||||
telemetry = Telemetry()
|
||||
|
||||
telemetry.start()
|
||||
assert telemetry.start_time == 1234.0
|
||||
|
||||
@@ -134,9 +135,11 @@ def test_stop_calculates_elapsed_time(mock_settings, mock_time):
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
@patch("core.telemetry.getenv")
|
||||
@patch("core.telemetry.settings")
|
||||
async def test_send_enabled_and_successful(mock_settings, mock_httpx_post):
|
||||
async def test_send_enabled_and_successful(mock_settings, mock_getenv, mock_httpx_post):
|
||||
mock_settings.telemetry = MagicMock(id="test-id", endpoint="test-endpoint", enabled=True)
|
||||
mock_getenv.return_value = None # override DISABLE_TELEMETRY test env var
|
||||
|
||||
telemetry = Telemetry()
|
||||
with patch.object(telemetry, "calculate_statistics"):
|
||||
@@ -151,10 +154,12 @@ async def test_send_enabled_and_successful(mock_settings, mock_httpx_post):
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
@patch("core.telemetry.getenv")
|
||||
@patch("core.telemetry.settings")
|
||||
async def test_send_enabled_but_post_fails(mock_settings, mock_httpx_post):
|
||||
async def test_send_enabled_but_post_fails(mock_settings, mock_getenv, mock_httpx_post):
|
||||
mock_settings.telemetry = MagicMock(id="test-id", endpoint="test-endpoint", enabled=True)
|
||||
mock_httpx_post.side_effect = httpx.RequestError("Connection error")
|
||||
mock_getenv.return_value = None # override DISABLE_TELEMETRY test env var
|
||||
|
||||
telemetry = Telemetry()
|
||||
with patch.object(telemetry, "calculate_statistics"):
|
||||
@@ -180,9 +185,11 @@ async def test_send_not_enabled(mock_settings, mock_httpx_post):
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
@patch("core.telemetry.getenv")
|
||||
@patch("core.telemetry.settings")
|
||||
async def test_send_no_endpoint_configured(mock_settings, mock_httpx_post):
|
||||
async def test_send_no_endpoint_configured(mock_settings, mock_getenv, mock_httpx_post):
|
||||
mock_settings.telemetry = MagicMock(id="test-id", endpoint=None, enabled=True)
|
||||
mock_getenv.return_value = None # override DISABLE_TELEMETRY test env var
|
||||
|
||||
telemetry = Telemetry()
|
||||
await telemetry.send()
|
||||
@@ -191,9 +198,11 @@ async def test_send_no_endpoint_configured(mock_settings, mock_httpx_post):
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
@patch("core.telemetry.getenv")
|
||||
@patch("core.telemetry.settings")
|
||||
async def test_send_clears_counters_after_sending(mock_settings, mock_httpx_post):
|
||||
async def test_send_clears_counters_after_sending(mock_settings, mock_getenv, mock_httpx_post):
|
||||
mock_settings.telemetry = MagicMock(id="test-id", endpoint="test-endpoint", enabled=True)
|
||||
mock_getenv.return_value = None # override DISABLE_TELEMETRY test env var
|
||||
|
||||
telemetry = Telemetry()
|
||||
telemetry.data["model"] = "test-model"
|
||||
|
||||
Reference in New Issue
Block a user