Skip to content

Commit b1c0dca

Browse files
committed
ci: Add support to test Python 3.15.0
Signed-off-by: Paulo Vital <paulo.vital@ibm.com>
1 parent bd5bbe8 commit b1c0dca

4 files changed

Lines changed: 52 additions & 5 deletions

File tree

.circleci/config.yml

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -276,6 +276,39 @@ jobs:
276276
- store-pytest-results
277277
- store-coverage-report
278278

279+
python3150:
280+
parameters:
281+
docker:
282+
- image: ghcr.io/pvital/pvital-python:latest
283+
- image: public.ecr.aws/docker/library/postgres:16.10-trixie
284+
environment:
285+
POSTGRES_USER: root
286+
POSTGRES_PASSWORD: passw0rd
287+
POSTGRES_DB: instana_test_db
288+
- image: public.ecr.aws/docker/library/mariadb:11.3.2
289+
environment:
290+
MYSQL_ROOT_PASSWORD: passw0rd
291+
MYSQL_DATABASE: instana_test_db
292+
- image: public.ecr.aws/docker/library/redis:7.2.4-bookworm
293+
- image: public.ecr.aws/docker/library/rabbitmq:3.13.0
294+
- image: public.ecr.aws/docker/library/mongo:7.0.6
295+
- image: quay.io/thekevjames/gcloud-pubsub-emulator:latest
296+
environment:
297+
PUBSUB_EMULATOR_HOST: 0.0.0.0:8681
298+
PUBSUB_PROJECT1: test-project,test-topic
299+
working_directory: ~/repo
300+
steps:
301+
- checkout
302+
- check-if-tests-needed
303+
- run: |
304+
cp -a /root/base/venv ./venv
305+
. venv/bin/activate
306+
pip install -r requirements.txt
307+
- run-tests-with-coverage-report:
308+
gevent: "true"
309+
- store-pytest-results
310+
- store-coverage-report
311+
279312
final_job:
280313
docker:
281314
- image: public.ecr.aws/docker/library/python:3.13
@@ -301,6 +334,7 @@ workflows:
301334
matrix:
302335
parameters:
303336
py-version: ["3.11", "3.12", "3.13", "3.14"]
337+
- python3150
304338
- final_job:
305339
requires:
306340
- python3x

tests/clients/test_google-cloud-pubsub.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44

55
import os
6+
import sys
67
import threading
78
import time
89
from typing import Generator
@@ -111,6 +112,10 @@ def __call__(self, message) -> None:
111112
self.calls += 1
112113

113114

115+
@pytest.mark.skipif(
116+
sys.version_info >= (3, 15),
117+
reason="Avoiding CircleCI 'Too long with no output' error",
118+
)
114119
class TestPubSubSubscribe(_TraceContextMixin):
115120
@classmethod
116121
def setup_class(cls) -> None:

tests/conftest.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -76,14 +76,17 @@
7676
collect_ignore_glob.append("*test_spyne*")
7777

7878

79-
if sys.version_info >= (3, 14):
79+
if sys.version_info >= (3, 15):
8080
collect_ignore_glob.extend(
8181
[
82-
# Currently not installable dependencies because of 3.14 incompatibilities
82+
# Currently not installable dependencies because of 3.15 incompatibilities
8383
"*test_fastapi*",
84-
# aiohttp-server tests failing due to deprecated methods used
85-
"*test_aiohttp_server*",
86-
# Currently Sanic does not support python >= 3.14
84+
# Development version of Python always break logging tests, so we skip then
85+
"*test_logging*",
86+
# Removing the following tests due to "Too long with no output"
87+
# errors from CircleCI pipeline
88+
"*test_aio_pika*",
89+
"*test_pyramid*",
8790
"*test_sanic*",
8891
]
8992
)

tests/frameworks/test_aiohttp_client.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
from typing import Any, Dict, Generator, Optional
66
import aiohttp
77
import asyncio
8+
import sys
89

910
import pytest
1011

@@ -434,6 +435,10 @@ async def test():
434435

435436
agent.options.extra_http_headers = original_extra_http_headers
436437

438+
@pytest.mark.skipif(
439+
sys.version_info >= (3, 15),
440+
reason="Avoiding CircleCI 'Too long with no output' error",
441+
)
437442
def test_client_error(self) -> None:
438443
async def test():
439444
with self.tracer.start_as_current_span("test"):

0 commit comments

Comments
 (0)