Add support for Python 3.12
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index 3127880..8a6d96b 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -11,7 +11,7 @@
     strategy:
       fail-fast: false
       matrix:
-        python-version: ["pypy-2.7", "pypy-3.8", "2.7", "3.7", "3.8", "3.9", "3.10", "3.11"]
+        python-version: ["pypy-2.7", "pypy-3.8", "2.7", "3.7", "3.8", "3.9", "3.10", "3.11", "3.12"]
         os: [ubuntu-latest, macos-latest, windows-latest]
         include:
           # Add new helper variables to existing jobs
@@ -23,6 +23,7 @@
           - {python-version: "3.9", toxenv: "py39"}
           - {python-version: "3.10", toxenv: "py310"}
           - {python-version: "3.11", toxenv: "py311"}
+          - {python-version: "3.12", toxenv: "py312"}
 
     steps:
       - uses: actions/checkout@v3
@@ -31,6 +32,7 @@
         uses: actions/setup-python@v4
         with:
           python-version: ${{ matrix.python-version }}
+          allow-prereleases: true
 
       - name: Get pip cache dir
         id: pip-cache
diff --git a/README.rst b/README.rst
index 76fca80..2af076e 100644
--- a/README.rst
+++ b/README.rst
@@ -29,7 +29,7 @@
 Installation
 ------------
 
-Tested on CPython 2.7, 3.7, 3.8, 3.9, 3.10 and 3.11 and PyPy 2.7 and 3.8.
+Tested on CPython 2.7, 3.7, 3.8, 3.9, 3.10, 3.11 and 3.12 and PyPy 2.7 and 3.8.
 
 No requirements other than the standard library.
 
diff --git a/pyproject.toml b/pyproject.toml
index 4e6a996..21ea5ac 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -38,6 +38,7 @@
     "Programming Language :: Python :: 3.9",
     "Programming Language :: Python :: 3.10",
     "Programming Language :: Python :: 3.11",
+    "Programming Language :: Python :: 3.12",
     "Programming Language :: Python :: Implementation :: CPython",
     "Programming Language :: Python :: Implementation :: PyPy",
     "Topic :: Terminals",
diff --git a/tox.ini b/tox.ini
index 769212a..03d211a 100644
--- a/tox.ini
+++ b/tox.ini
@@ -1,6 +1,6 @@
 [tox]
 isolated_build = true
-envlist = py{27, 37, 38, 39, 310, py, py3}
+envlist = py{27, 37, 38, 39, 310, 311, 312, py, py3}
 
 [testenv]
 deps =