From 27a19e6174783b3aea6d51e51d9aa98b0c29b7a1 Mon Sep 17 00:00:00 2001
From: Jacob Fiola <jacob.fiola@alteryx.com>
Date: Sun, 28 Jan 2024 19:53:03 -0700
Subject: [PATCH] add support for python 3.11 and 3.12 (#32)

---
 .github/workflows/quality-checks.yml | 32 +++++++++++++++++++++++++++-
 pyproject.toml                       | 10 ++++-----
 requirements.txt                     |  4 ++--
 3 files changed, 38 insertions(+), 8 deletions(-)

diff --git a/.github/workflows/quality-checks.yml b/.github/workflows/quality-checks.yml
index be7a7ce..3ce1232 100644
--- a/.github/workflows/quality-checks.yml
+++ b/.github/workflows/quality-checks.yml
@@ -39,7 +39,7 @@ jobs:
           python-version: "3.10"
       - run: pip install -r requirements-dev.txt
       - run: pydocstyle src
-  unit-test:
+  unit-test-python-310:
     if: "!contains(github.event.head_commit.message, '[ci skip]')"
     needs: [black-lint, flake8-lint, pydocstyle-lint]
     runs-on: ubuntu-latest
@@ -54,4 +54,34 @@ jobs:
       - run: pip install -r requirements-dev.txt
       - run: pip install -e .
       - run: coverage run -a -m pytest tests/unit
+  unit-test-python-311:
+    if: "!contains(github.event.head_commit.message, '[ci skip]')"
+    needs: [ black-lint, flake8-lint, pydocstyle-lint ]
+    runs-on: ubuntu-latest
+    steps:
+      - name: Check out source repository
+        uses: actions/checkout@v3
+      - name: Set up Python environment
+        uses: actions/setup-python@v4
+        with:
+          python-version: "3.11"
+      - run: pip install -r requirements.txt
+      - run: pip install -r requirements-dev.txt
+      - run: pip install -e .
+      - run: coverage run -a -m pytest tests/unit
+  unit-test-python-312:
+    if: "!contains(github.event.head_commit.message, '[ci skip]')"
+    needs: [ black-lint, flake8-lint, pydocstyle-lint ]
+    runs-on: ubuntu-latest
+    steps:
+      - name: Check out source repository
+        uses: actions/checkout@v3
+      - name: Set up Python environment
+        uses: actions/setup-python@v4
+        with:
+          python-version: "3.12"
+      - run: pip install -r requirements.txt
+      - run: pip install -r requirements-dev.txt
+      - run: pip install -e .
+      - run: coverage run -a -m pytest tests/unit
 
diff --git a/pyproject.toml b/pyproject.toml
index 78dd9fa..f636edf 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -28,16 +28,16 @@ maintainers = [
 ]
 keywords = ["load testing", "performance", "locust", "grasshopper"]
 license = {file = "LICENSE"}
-requires-python = ">=3.9,<4"
+requires-python = ">=3.10,<4"
 dependencies = [
-    "gevent ~=21.12.0",
+    "gevent ~=23.9.1",
     "influxdb ~= 5.3.1",
-    "locust ~= 2.12.2",
+    "locust ~= 2.21.0",
     "locust-influxdb-listener ~= 1.0.2",
     "pytest ~= 6.2.5",
-    "termcolor ~= 1.1.0",
     "pyyaml >= 5.4.1",
-    "tag-matcher ~= 0.0.5"
+    "tag-matcher ~= 0.0.5",
+    "termcolor ~= 1.1.0",
 ]
 
 [project.urls]
diff --git a/requirements.txt b/requirements.txt
index 7f7605b..0739cd0 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,6 +1,6 @@
-gevent==21.12.0
+gevent==23.9.1
 influxdb==5.3.1
-locust==2.12.2
+locust==2.21.0
 locust-influxdb-listener==1.0.2
 pytest>=6.2.5
 pyyaml>=5.4.1