Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/integration_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:
strategy:
fail-fast: false
matrix:
python-version: [ "3.8", "3.11" ]
python-version: [ "3.8", "3.11", "3.12", "3.13" ]
engine-version: [ "lts", "latest"]
environment: ["mysql", "pg"]

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/integration_tests_codebuild.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ jobs:
strategy:
fail-fast: false
matrix:
python-version: [ "3.8", "3.11" ]
python-version: [ "3.8", "3.11", "3.12", "3.13" ]
environment: [ "mysql", "pg" ]

runs-on: ubuntu-latest
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.8", "3.9", "3.10", "3.11"]
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13"]
poetry-version: ["1.8.2"]

steps:
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -205,7 +205,7 @@ For all other questions, please use [GitHub discussions](https://github.com/awsl

1. Set up your environment by following the directions in the [Development Guide](./docs/development-guide/DevelopmentGuide.md).
2. To contribute, first make a fork of this project.
3. Make any changes on your fork. Make sure you are aware of the requirements for the project (e.g. do not require Python 3.7 if we are supporting Python 3.8 - 3.11 (inclusive)).
3. Make any changes on your fork. Make sure you are aware of the requirements for the project (e.g. do not require Python 3.7 if we are supporting Python 3.8 - 3.13 (inclusive)).
4. Create a pull request from your fork.
5. Pull requests need to be approved and merged by maintainers into the main branch. <br />

Expand Down
2 changes: 1 addition & 1 deletion docs/GettingStarted.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

Before using the AWS Advanced Python Driver, you must install:

- Python 3.8 - 3.11 (inclusive).
- Python 3.8 - 3.13 (inclusive).
- The AWS Advanced Python Driver.
- Your choice of underlying Python driver.
- To use the wrapper with Aurora with PostgreSQL compatibility, install [Psycopg](https://github.com/psycopg/psycopg).
Expand Down
2 changes: 1 addition & 1 deletion docs/development-guide/DevelopmentGuide.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Development Guide

### Setup
Make sure you have Python 3.8 - 3.11 (inclusive) installed, along with your choice of underlying Python driver (see [minimum requirements](../GettingStarted.md#minimum-requirements)).
Make sure you have Python 3.8 - 3.13 (inclusive) installed, along with your choice of underlying Python driver (see [minimum requirements](../GettingStarted.md#minimum-requirements)).

Clone the AWS Advanced Python Driver repository:

Expand Down
2 changes: 2 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ classifiers = [
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
]

[tool.poetry.dependencies]
Expand Down
2 changes: 2 additions & 0 deletions tests/integration/container/utils/target_python_version.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,5 @@
class TargetPythonVersion(Enum):
PYTHON_3_11 = "PYTHON_3_11"
PYTHON_3_8 = "PYTHON_3_8"
PYTHON_3_12 = "PYTHON_3_12"
PYTHON_3_13 = "PYTHON_3_13"
76 changes: 76 additions & 0 deletions tests/integration/host/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,8 @@ tasks.register<Test>("test-python-3.11-mysql") {
doFirst {
systemProperty("exclude-performance", "true")
systemProperty("exclude-python-38", "true")
systemProperty("exclude-python-312", "true")
systemProperty("exclude-python-313", "true")
systemProperty("exclude-multi-az-cluster", "true")
systemProperty("exclude-multi-az-instance", "true")
systemProperty("exclude-bg", "true")
Expand All @@ -83,6 +85,8 @@ tasks.register<Test>("test-python-3.8-mysql") {
doFirst {
systemProperty("exclude-performance", "true")
systemProperty("exclude-python-311", "true")
systemProperty("exclude-python-312", "true")
systemProperty("exclude-python-313", "true")
systemProperty("exclude-multi-az-cluster", "true")
systemProperty("exclude-multi-az-instance", "true")
systemProperty("exclude-bg", "true")
Expand All @@ -97,6 +101,8 @@ tasks.register<Test>("test-python-3.11-pg") {
doFirst {
systemProperty("exclude-performance", "true")
systemProperty("exclude-python-38", "true")
systemProperty("exclude-python-312", "true")
systemProperty("exclude-python-313", "true")
systemProperty("exclude-multi-az-cluster", "true")
systemProperty("exclude-multi-az-instance", "true")
systemProperty("exclude-bg", "true")
Expand All @@ -113,6 +119,76 @@ tasks.register<Test>("test-python-3.8-pg") {
doFirst {
systemProperty("exclude-performance", "true")
systemProperty("exclude-python-311", "true")
systemProperty("exclude-python-312", "true")
systemProperty("exclude-python-313", "true")
systemProperty("exclude-multi-az-cluster", "true")
systemProperty("exclude-multi-az-instance", "true")
systemProperty("exclude-bg", "true")
systemProperty("exclude-mysql-driver", "true")
systemProperty("exclude-mysql-engine", "true")
systemProperty("exclude-mariadb-driver", "true")
systemProperty("exclude-mariadb-engine", "true")
}
}

tasks.register<Test>("test-python-3.12-mysql") {
group = "verification"
filter.includeTestsMatching("integration.host.TestRunner.runTests")
doFirst {
systemProperty("exclude-performance", "true")
systemProperty("exclude-python-38", "true")
systemProperty("exclude-python-311", "true")
systemProperty("exclude-python-313", "true")
systemProperty("exclude-multi-az-cluster", "true")
systemProperty("exclude-multi-az-instance", "true")
systemProperty("exclude-bg", "true")
systemProperty("exclude-pg-driver", "true")
systemProperty("exclude-pg-engine", "true")
}
}

tasks.register<Test>("test-python-3.12-pg") {
group = "verification"
filter.includeTestsMatching("integration.host.TestRunner.runTests")
doFirst {
systemProperty("exclude-performance", "true")
systemProperty("exclude-python-38", "true")
systemProperty("exclude-python-311", "true")
systemProperty("exclude-python-313", "true")
systemProperty("exclude-multi-az-cluster", "true")
systemProperty("exclude-multi-az-instance", "true")
systemProperty("exclude-bg", "true")
systemProperty("exclude-mysql-driver", "true")
systemProperty("exclude-mysql-engine", "true")
systemProperty("exclude-mariadb-driver", "true")
systemProperty("exclude-mariadb-engine", "true")
}
}

tasks.register<Test>("test-python-3.13-mysql") {
group = "verification"
filter.includeTestsMatching("integration.host.TestRunner.runTests")
doFirst {
systemProperty("exclude-performance", "true")
systemProperty("exclude-python-38", "true")
systemProperty("exclude-python-311", "true")
systemProperty("exclude-python-312", "true")
systemProperty("exclude-multi-az-cluster", "true")
systemProperty("exclude-multi-az-instance", "true")
systemProperty("exclude-bg", "true")
systemProperty("exclude-pg-driver", "true")
systemProperty("exclude-pg-engine", "true")
}
}

tasks.register<Test>("test-python-3.13-pg") {
group = "verification"
filter.includeTestsMatching("integration.host.TestRunner.runTests")
doFirst {
systemProperty("exclude-performance", "true")
systemProperty("exclude-python-38", "true")
systemProperty("exclude-python-311", "true")
systemProperty("exclude-python-312", "true")
systemProperty("exclude-multi-az-cluster", "true")
systemProperty("exclude-multi-az-instance", "true")
systemProperty("exclude-bg", "true")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,5 +18,7 @@

public enum TargetPythonVersion {
PYTHON_3_11,
PYTHON_3_8
PYTHON_3_8,
PYTHON_3_12,
PYTHON_3_13
}
Original file line number Diff line number Diff line change
Expand Up @@ -1145,6 +1145,10 @@ private static String getContainerBaseImageName(TestEnvironmentRequest request)
return "python:3.8.18";
case PYTHON_3_11:
return "python:3.11.5";
case PYTHON_3_12:
return "python:3.12";
case PYTHON_3_13:
return "python:3.13";
default:
throw new NotImplementedException(request.getTargetPythonVersion().toString());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,10 @@ public class TestEnvironmentConfiguration {
Boolean.parseBoolean(System.getProperty("exclude-python-38", "false"));
public boolean excludePython311 =
Boolean.parseBoolean(System.getProperty("exclude-python-311", "false"));
public boolean excludePython312 =
Boolean.parseBoolean(System.getProperty("exclude-python-312", "false"));
public boolean excludePython313 =
Boolean.parseBoolean(System.getProperty("exclude-python-313", "false"));

public String testFilter = System.getenv("FILTER");

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,12 @@ public Stream<TestTemplateInvocationContext> provideTestTemplateInvocationContex
if (targetPythonVersion == TargetPythonVersion.PYTHON_3_11 && config.excludePython311) {
continue;
}
if (targetPythonVersion == TargetPythonVersion.PYTHON_3_12 && config.excludePython312) {
continue;
}
if (targetPythonVersion == TargetPythonVersion.PYTHON_3_13 && config.excludePython313) {
continue;
}

for (boolean withBlueGreenFeature : Arrays.asList(true, false)) {
if (!withBlueGreenFeature) {
Expand Down
Loading