From ea72e9ec77ec34c738cd4ffde9ce16a88073dff2 Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Thu, 8 Jan 2026 16:58:20 -0800 Subject: [PATCH 01/70] m --- .github/workflows/daily_ci.yml | 19 ++++++++++++++++++- .github/workflows/issue-notification.yml | 23 +++++++++++++++++++++++ 2 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/issue-notification.yml diff --git a/.github/workflows/daily_ci.yml b/.github/workflows/daily_ci.yml index a5c5ddc02..b7601f914 100644 --- a/.github/workflows/daily_ci.yml +++ b/.github/workflows/daily_ci.yml @@ -36,4 +36,21 @@ jobs: tests: # Don't run the cron builds on forks if: github.event_name != 'schedule' || github.repository_owner == 'aws' - uses: ./.github/workflows/ci_tests.yaml \ No newline at end of file + uses: ./.github/workflows/ci_tests.yaml + + notify: + needs: + [ + codebuild_batch, + codebuild_tests, + decrypt_oracle, + static_analysis, + test_vector_handler, + tests + ] + if: ${{ failure() }} + uses: aws/aws-cryptographic-material-providers-library/.github/workflows/slack-notification.yml@main + with: + message: "Daily CI failed on `${{ github.repository }}`. View run: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}" + secrets: + SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL_CI }} \ No newline at end of file diff --git a/.github/workflows/issue-notification.yml b/.github/workflows/issue-notification.yml new file mode 100644 index 000000000..6674b9616 --- /dev/null +++ b/.github/workflows/issue-notification.yml @@ -0,0 +1,23 @@ +name: Issue Created Notification +on: + issues: + types: [opened, reopened] + issue_comment: + types: [created] + +jobs: + notify-issue: + if: github.event_name == 'issues' + uses: aws/aws-cryptographic-material-providers-library/.github/workflows/slack-notification.yml@main + with: + message: "New github issue `${{ github.event.issue.title }}`. Link: ${{ github.event.issue.html_url }}" + secrets: + SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL_GHI }} + + notify-comment: + if: github.event_name == 'issue_comment' && !github.event.issue.pull_request + uses: aws/aws-cryptographic-material-providers-library/.github/workflows/slack-notification.yml@main + with: + message: "New comment on issue `${{ github.event.issue.title }}`. Link: ${{ github.event.comment.html_url }}" + secrets: + SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL_GHI }} \ No newline at end of file From 2f35607f53b85adad5804ec6ae42db5a373b6d02 Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Fri, 9 Jan 2026 10:36:18 -0800 Subject: [PATCH 02/70] fix --- .github/workflows/ci_test-vector-handler.yaml | 4 ++-- .github/workflows/ci_tests.yaml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci_test-vector-handler.yaml b/.github/workflows/ci_test-vector-handler.yaml index 433f805f8..b82da4445 100644 --- a/.github/workflows/ci_test-vector-handler.yaml +++ b/.github/workflows/ci_test-vector-handler.yaml @@ -21,7 +21,7 @@ jobs: os: - ubuntu-latest - windows-latest - - macos-13 + - macos-latest python: - 3.8 - 3.x @@ -36,7 +36,7 @@ jobs: # x86 builds are only meaningful for Windows - os: ubuntu-latest architecture: x86 - - os: macos-13 + - os: macos-latest architecture: x86 steps: - uses: aws-actions/configure-aws-credentials@v4 diff --git a/.github/workflows/ci_tests.yaml b/.github/workflows/ci_tests.yaml index acb0b9b33..994d0a4a1 100644 --- a/.github/workflows/ci_tests.yaml +++ b/.github/workflows/ci_tests.yaml @@ -22,7 +22,7 @@ jobs: os: - ubuntu-latest - windows-latest - - macos-13 + - macos-latest python: - 3.8 - 3.9 @@ -50,7 +50,7 @@ jobs: # x86 builds are only meaningful for Windows - os: ubuntu-latest architecture: x86 - - os: macos-13 + - os: macos-latest architecture: x86 # MPL is not supported on <3.11 - python: 3.7 From 28ba48ba323126d757c2cdb0aee1b9ca37719e57 Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Fri, 9 Jan 2026 10:37:06 -0800 Subject: [PATCH 03/70] Revert "m" This reverts commit ea72e9ec77ec34c738cd4ffde9ce16a88073dff2. --- .github/workflows/daily_ci.yml | 19 +------------------ .github/workflows/issue-notification.yml | 23 ----------------------- 2 files changed, 1 insertion(+), 41 deletions(-) delete mode 100644 .github/workflows/issue-notification.yml diff --git a/.github/workflows/daily_ci.yml b/.github/workflows/daily_ci.yml index b7601f914..a5c5ddc02 100644 --- a/.github/workflows/daily_ci.yml +++ b/.github/workflows/daily_ci.yml @@ -36,21 +36,4 @@ jobs: tests: # Don't run the cron builds on forks if: github.event_name != 'schedule' || github.repository_owner == 'aws' - uses: ./.github/workflows/ci_tests.yaml - - notify: - needs: - [ - codebuild_batch, - codebuild_tests, - decrypt_oracle, - static_analysis, - test_vector_handler, - tests - ] - if: ${{ failure() }} - uses: aws/aws-cryptographic-material-providers-library/.github/workflows/slack-notification.yml@main - with: - message: "Daily CI failed on `${{ github.repository }}`. View run: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}" - secrets: - SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL_CI }} \ No newline at end of file + uses: ./.github/workflows/ci_tests.yaml \ No newline at end of file diff --git a/.github/workflows/issue-notification.yml b/.github/workflows/issue-notification.yml deleted file mode 100644 index 6674b9616..000000000 --- a/.github/workflows/issue-notification.yml +++ /dev/null @@ -1,23 +0,0 @@ -name: Issue Created Notification -on: - issues: - types: [opened, reopened] - issue_comment: - types: [created] - -jobs: - notify-issue: - if: github.event_name == 'issues' - uses: aws/aws-cryptographic-material-providers-library/.github/workflows/slack-notification.yml@main - with: - message: "New github issue `${{ github.event.issue.title }}`. Link: ${{ github.event.issue.html_url }}" - secrets: - SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL_GHI }} - - notify-comment: - if: github.event_name == 'issue_comment' && !github.event.issue.pull_request - uses: aws/aws-cryptographic-material-providers-library/.github/workflows/slack-notification.yml@main - with: - message: "New comment on issue `${{ github.event.issue.title }}`. Link: ${{ github.event.comment.html_url }}" - secrets: - SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL_GHI }} \ No newline at end of file From 090a7f61a3e2f96aa7d1a71ba390e3bbbdec5240 Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Mon, 12 Jan 2026 14:43:18 -0800 Subject: [PATCH 04/70] m --- decrypt_oracle/test/requirements.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/decrypt_oracle/test/requirements.txt b/decrypt_oracle/test/requirements.txt index 11be59be6..956d9ec6f 100644 --- a/decrypt_oracle/test/requirements.txt +++ b/decrypt_oracle/test/requirements.txt @@ -1,5 +1,5 @@ mock -pytest>=3.3.1 +pytest>=8.4.2 pytest-cov -pytest-mock +pytest-mock>=3.14.0 requests From faa91e36799d773074c6c391e29085a049dd4501 Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Tue, 13 Jan 2026 11:02:01 -0800 Subject: [PATCH 05/70] m --- .github/workflows/ci_tests.yaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/ci_tests.yaml b/.github/workflows/ci_tests.yaml index 994d0a4a1..0c5fd8200 100644 --- a/.github/workflows/ci_tests.yaml +++ b/.github/workflows/ci_tests.yaml @@ -71,6 +71,11 @@ jobs: git config --global core.longpaths true - uses: actions/checkout@v4 + + - name: Install gettext (macOS Python 3.8 fix) + if: runner.os == 'macOS' && matrix.python == '3.8' + run: brew install gettext + - uses: actions/setup-python@v4 with: python-version: ${{ matrix.python }} From a35b94c576a8c5c984b375edc5c39ed17fe8d3bc Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Tue, 13 Jan 2026 11:07:19 -0800 Subject: [PATCH 06/70] m --- .github/workflows/ci_tests.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci_tests.yaml b/.github/workflows/ci_tests.yaml index 0c5fd8200..e7caca104 100644 --- a/.github/workflows/ci_tests.yaml +++ b/.github/workflows/ci_tests.yaml @@ -73,9 +73,9 @@ jobs: - uses: actions/checkout@v4 - name: Install gettext (macOS Python 3.8 fix) - if: runner.os == 'macOS' && matrix.python == '3.8' + if: runner.os == 'macOS' run: brew install gettext - + - uses: actions/setup-python@v4 with: python-version: ${{ matrix.python }} From 697183e9147e5287168fe48bc04c1929f4c7e273 Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Tue, 13 Jan 2026 11:10:05 -0800 Subject: [PATCH 07/70] m --- .github/workflows/ci_tests.yaml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.github/workflows/ci_tests.yaml b/.github/workflows/ci_tests.yaml index e7caca104..1ce8ab7db 100644 --- a/.github/workflows/ci_tests.yaml +++ b/.github/workflows/ci_tests.yaml @@ -72,10 +72,6 @@ jobs: - uses: actions/checkout@v4 - - name: Install gettext (macOS Python 3.8 fix) - if: runner.os == 'macOS' - run: brew install gettext - - uses: actions/setup-python@v4 with: python-version: ${{ matrix.python }} From 6d368667d31cdc2eb3fdb44fc3542d0638894d43 Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Tue, 13 Jan 2026 11:11:45 -0800 Subject: [PATCH 08/70] m --- .github/workflows/ci_tests.yaml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/.github/workflows/ci_tests.yaml b/.github/workflows/ci_tests.yaml index 1ce8ab7db..a32aa0655 100644 --- a/.github/workflows/ci_tests.yaml +++ b/.github/workflows/ci_tests.yaml @@ -46,6 +46,17 @@ jobs: optional_mpl_dependency: - "" - -mpl + include: + - python-version: '3.11' + os: macos-latest + - python-version: '3.12' + os: macos-latest + - python-version: '3.8' + os: macos-12 # Intel runner + - python-version: '3.9' + os: macos-12 + - python-version: '3.10' + os: macos-12 exclude: # x86 builds are only meaningful for Windows - os: ubuntu-latest From c73885b06e674a730604dfd9d8e5c77f18c4d334 Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Tue, 13 Jan 2026 11:27:28 -0800 Subject: [PATCH 09/70] m --- .github/workflows/ci_tests.yaml | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/.github/workflows/ci_tests.yaml b/.github/workflows/ci_tests.yaml index a32aa0655..954da2235 100644 --- a/.github/workflows/ci_tests.yaml +++ b/.github/workflows/ci_tests.yaml @@ -46,18 +46,16 @@ jobs: optional_mpl_dependency: - "" - -mpl - include: - - python-version: '3.11' + exclude: + # https://github.com/actions/setup-python/issues/948 + - python: 3.7 os: macos-latest - - python-version: '3.12' + - python: 3.8 + os: macos-latest + - python: 3.9 + os: macos-latest + - python: 3.10 os: macos-latest - - python-version: '3.8' - os: macos-12 # Intel runner - - python-version: '3.9' - os: macos-12 - - python-version: '3.10' - os: macos-12 - exclude: # x86 builds are only meaningful for Windows - os: ubuntu-latest architecture: x86 From 5bd41ce6b1f718f6415dd72ab65ef5932de1b2f1 Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Tue, 13 Jan 2026 11:30:29 -0800 Subject: [PATCH 10/70] m --- .github/workflows/ci_tests.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/ci_tests.yaml b/.github/workflows/ci_tests.yaml index 954da2235..de668487a 100644 --- a/.github/workflows/ci_tests.yaml +++ b/.github/workflows/ci_tests.yaml @@ -47,6 +47,7 @@ jobs: - "" - -mpl exclude: + # Python <3.11 incompatible with macOS ARM64 runners # https://github.com/actions/setup-python/issues/948 - python: 3.7 os: macos-latest @@ -56,11 +57,13 @@ jobs: os: macos-latest - python: 3.10 os: macos-latest + # x86 builds are only meaningful for Windows - os: ubuntu-latest architecture: x86 - os: macos-latest architecture: x86 + # MPL is not supported on <3.11 - python: 3.7 optional_mpl_dependency: -mpl From 3cec44bd1c4d5e7512beaf968e7b80e1c0633d20 Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Tue, 13 Jan 2026 11:33:45 -0800 Subject: [PATCH 11/70] m --- dev_requirements/test-requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev_requirements/test-requirements.txt b/dev_requirements/test-requirements.txt index 01d7a2e2b..e33b54930 100644 --- a/dev_requirements/test-requirements.txt +++ b/dev_requirements/test-requirements.txt @@ -1,4 +1,4 @@ mock==4.0.3 -pytest==7.2.1 +pytest>=8.0.0 pytest-cov==4.0.0 pytest-mock==3.6.1 From cfddcb54991c7b8e495e7d5c31449cf41b172fb3 Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Tue, 13 Jan 2026 11:41:47 -0800 Subject: [PATCH 12/70] m --- dev_requirements/test-requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev_requirements/test-requirements.txt b/dev_requirements/test-requirements.txt index e33b54930..01d7a2e2b 100644 --- a/dev_requirements/test-requirements.txt +++ b/dev_requirements/test-requirements.txt @@ -1,4 +1,4 @@ mock==4.0.3 -pytest>=8.0.0 +pytest==7.2.1 pytest-cov==4.0.0 pytest-mock==3.6.1 From 13376081a0c2002eb6c7974c7977ba43c91e61fc Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Tue, 13 Jan 2026 11:53:36 -0800 Subject: [PATCH 13/70] m --- dev_requirements/test-requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev_requirements/test-requirements.txt b/dev_requirements/test-requirements.txt index 01d7a2e2b..fb7547537 100644 --- a/dev_requirements/test-requirements.txt +++ b/dev_requirements/test-requirements.txt @@ -1,4 +1,4 @@ mock==4.0.3 -pytest==7.2.1 +pytest==7.4.0 pytest-cov==4.0.0 pytest-mock==3.6.1 From 322f4ca8650ab14faec503fd18a8033eea76ffd2 Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Tue, 13 Jan 2026 12:00:33 -0800 Subject: [PATCH 14/70] m --- dev_requirements/test-requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev_requirements/test-requirements.txt b/dev_requirements/test-requirements.txt index fb7547537..b5a262621 100644 --- a/dev_requirements/test-requirements.txt +++ b/dev_requirements/test-requirements.txt @@ -1,4 +1,4 @@ mock==4.0.3 -pytest==7.4.0 +pytest>9.0.0 pytest-cov==4.0.0 pytest-mock==3.6.1 From 02003468c0b9efee77ae7090f4d25147b545df8b Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Tue, 13 Jan 2026 12:03:05 -0800 Subject: [PATCH 15/70] m --- dev_requirements/test-requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev_requirements/test-requirements.txt b/dev_requirements/test-requirements.txt index b5a262621..ed6ef0d17 100644 --- a/dev_requirements/test-requirements.txt +++ b/dev_requirements/test-requirements.txt @@ -1,4 +1,4 @@ mock==4.0.3 -pytest>9.0.0 +pytest==8.0.0 pytest-cov==4.0.0 pytest-mock==3.6.1 From 7a950ffab9d75017d30f126e28025cca37ae7f86 Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Tue, 13 Jan 2026 12:24:22 -0800 Subject: [PATCH 16/70] m --- test/unit/test_compatability.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/test/unit/test_compatability.py b/test/unit/test_compatability.py index bd602c7cd..d3c40c168 100644 --- a/test/unit/test_compatability.py +++ b/test/unit/test_compatability.py @@ -5,6 +5,7 @@ import mock import pytest +import warnings from aws_encryption_sdk.compatability import _warn_deprecated_python @@ -16,7 +17,8 @@ def test_happy_version(self): with mock.patch.object(sys, "version_info") as v_info: v_info.major = 3 v_info.minor = 6 - with pytest.warns(None) as record: + with warnings.catch_warnings(record=True) as record: + warnings.simplefilter("always") _warn_deprecated_python() assert len(record) == 0 From 685a84e1de8203fea9036e137dcd3237fdd0d032 Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Tue, 13 Jan 2026 13:51:53 -0800 Subject: [PATCH 17/70] isort remove rc --- decrypt_oracle/tox.ini | 2 +- performance_tests/tox.ini | 2 +- test_vector_handlers/tox.ini | 2 +- tox.ini | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/decrypt_oracle/tox.ini b/decrypt_oracle/tox.ini index 7002877a6..e13916b1d 100644 --- a/decrypt_oracle/tox.ini +++ b/decrypt_oracle/tox.ini @@ -233,7 +233,7 @@ commands = seed-isort-config [testenv:isort] basepython = python3 deps = isort -commands = isort -rc \ +commands = isort \ src \ test \ #doc \ diff --git a/performance_tests/tox.ini b/performance_tests/tox.ini index 8b51f98a5..5c5cfd99c 100644 --- a/performance_tests/tox.ini +++ b/performance_tests/tox.ini @@ -128,7 +128,7 @@ commands = seed-isort-config [testenv:isort] basepython = python3 deps = -r../dev_requirements/linter-requirements.txt -commands = isort -rc \ +commands = isort \ src \ test \ setup.py \ diff --git a/test_vector_handlers/tox.ini b/test_vector_handlers/tox.ini index 76534e829..41a208a3f 100644 --- a/test_vector_handlers/tox.ini +++ b/test_vector_handlers/tox.ini @@ -184,7 +184,7 @@ commands = seed-isort-config [testenv:isort] basepython = python3 deps = -r../dev_requirements/linter-requirements.txt -commands = isort -rc \ +commands = isort \ src \ test \ setup.py \ diff --git a/tox.ini b/tox.ini index 2a1121409..130737f86 100644 --- a/tox.ini +++ b/tox.ini @@ -242,7 +242,7 @@ commands = seed-isort-config [testenv:isort] basepython = python3 deps = -rdev_requirements/linter-requirements.txt -commands = isort -rc \ +commands = isort \ src \ test \ # We do not include examples/test because of the need to modify sys.path for some imports From bed50259167747618db61e79d529534f14a65f34 Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Tue, 13 Jan 2026 14:56:16 -0800 Subject: [PATCH 18/70] use shorter traceback to avoid OOM --- tox.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tox.ini b/tox.ini index 130737f86..3189d4fbf 100644 --- a/tox.ini +++ b/tox.ini @@ -58,7 +58,7 @@ envlist = # coverage :: Runs code coverage, failing the build if coverage is below the configured threshold [testenv:base-command] -commands = pytest --basetemp={envtmpdir} -l {posargs} +commands = pytest --basetemp={envtmpdir} -l {posargs} --tb=short [testenv] passenv = From 58b63cab262a3372b6f2655081e9fef6bff54dcc Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Tue, 13 Jan 2026 15:14:52 -0800 Subject: [PATCH 19/70] Add minimal Unicode crash reproduction test --- .github/workflows/debug-unicode.yml | 27 +++++++++++++++++++++++++++ debug_unicode.py | 22 ++++++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 .github/workflows/debug-unicode.yml create mode 100644 debug_unicode.py diff --git a/.github/workflows/debug-unicode.yml b/.github/workflows/debug-unicode.yml new file mode 100644 index 000000000..8164018c7 --- /dev/null +++ b/.github/workflows/debug-unicode.yml @@ -0,0 +1,27 @@ +name: Debug Unicode Crash + +on: + push: + +jobs: + debug-unicode: + runs-on: windows-latest + strategy: + matrix: + python: ["3.14"] + architecture: [x86, x64] + steps: + - uses: actions/checkout@v4 + + - uses: actions/setup-python@v4 + with: + python-version: ${{ matrix.python }} + architecture: ${{ matrix.architecture }} + + - name: Run minimal Unicode test + run: python debug_unicode.py + + - name: Run with pytest + run: | + pip install pytest + pytest debug_unicode.py -v diff --git a/debug_unicode.py b/debug_unicode.py new file mode 100644 index 000000000..96cac745e --- /dev/null +++ b/debug_unicode.py @@ -0,0 +1,22 @@ +#!/usr/bin/env python3 +"""Minimal reproduction for Windows x86 Unicode crash""" + +import warnings +import sys + +def test_unicode_warning(): + """Test that triggers Unicode in warnings system""" + unicode_string = "\U00010002abc--abc\u79d8\u5bc6\u4ee3\u7801-\u79d8\u5bc6\u4ee3\u7801" + + print(f"Python version: {sys.version}") + print(f"Platform: {sys.platform}") + print(f"Architecture: {sys.maxsize > 2**32}") + print(f"Unicode string: {repr(unicode_string)}") + + # Trigger a warning with Unicode content + warnings.warn(f"Test warning with Unicode: {unicode_string}") + + print("Test completed successfully") + +if __name__ == "__main__": + test_unicode_warning() From d9ce902a61aed64b8b8c6a9386e680ab28ad3ad0 Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Tue, 13 Jan 2026 15:19:37 -0800 Subject: [PATCH 20/70] rm x64 --- .github/workflows/debug-unicode.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/debug-unicode.yml b/.github/workflows/debug-unicode.yml index 8164018c7..c39751395 100644 --- a/.github/workflows/debug-unicode.yml +++ b/.github/workflows/debug-unicode.yml @@ -9,7 +9,7 @@ jobs: strategy: matrix: python: ["3.14"] - architecture: [x86, x64] + architecture: [x86] steps: - uses: actions/checkout@v4 From 2f06323893fb10b4477a73cdef7da8c9753724f3 Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Tue, 13 Jan 2026 15:21:24 -0800 Subject: [PATCH 21/70] m --- .github/workflows/debug-unicode.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/debug-unicode.yml b/.github/workflows/debug-unicode.yml index c39751395..6b88b1fc5 100644 --- a/.github/workflows/debug-unicode.yml +++ b/.github/workflows/debug-unicode.yml @@ -8,7 +8,7 @@ jobs: runs-on: windows-latest strategy: matrix: - python: ["3.14"] + python: ["3.13"] architecture: [x86] steps: - uses: actions/checkout@v4 From 0b30502e0efae2a2a6a6a40a21fff5e1c08f7fe1 Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Tue, 13 Jan 2026 15:23:21 -0800 Subject: [PATCH 22/70] m --- .github/workflows/debug-unicode.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/debug-unicode.yml b/.github/workflows/debug-unicode.yml index 6b88b1fc5..31723cb10 100644 --- a/.github/workflows/debug-unicode.yml +++ b/.github/workflows/debug-unicode.yml @@ -8,7 +8,7 @@ jobs: runs-on: windows-latest strategy: matrix: - python: ["3.13"] + python: ["3.12"] architecture: [x86] steps: - uses: actions/checkout@v4 From 11c5e7b6b8ffa0f9c4606359959192e61687d2be Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Tue, 13 Jan 2026 15:26:32 -0800 Subject: [PATCH 23/70] Fix debug script to avoid console encoding issues --- debug_unicode.py | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/debug_unicode.py b/debug_unicode.py index 96cac745e..f7a95d7ac 100644 --- a/debug_unicode.py +++ b/debug_unicode.py @@ -5,18 +5,25 @@ import sys def test_unicode_warning(): - """Test that triggers Unicode in warnings system""" + """Test that triggers Unicode in warnings system - matches actual test behavior""" unicode_string = "\U00010002abc--abc\u79d8\u5bc6\u4ee3\u7801-\u79d8\u5bc6\u4ee3\u7801" + # Don't print Unicode - just process it like the real test does print(f"Python version: {sys.version}") print(f"Platform: {sys.platform}") - print(f"Architecture: {sys.maxsize > 2**32}") - print(f"Unicode string: {repr(unicode_string)}") + print(f"Architecture: {'x64' if sys.maxsize > 2**32 else 'x86'}") + print(f"Unicode string length: {len(unicode_string)}") - # Trigger a warning with Unicode content - warnings.warn(f"Test warning with Unicode: {unicode_string}") + # Process the Unicode data (like the real test does) + result = unicode_string.encode('utf-8') + decoded = result.decode('utf-8') + assert decoded == unicode_string + + # Trigger a warning with Unicode content (this is what causes the crash) + warnings.warn(f"Test warning: {unicode_string}") print("Test completed successfully") if __name__ == "__main__": test_unicode_warning() + From 61d204cd90eef587d176d94f75dfc7c89a19b3d6 Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Tue, 13 Jan 2026 15:28:02 -0800 Subject: [PATCH 24/70] m --- .github/workflows/debug-unicode.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/debug-unicode.yml b/.github/workflows/debug-unicode.yml index 31723cb10..c39751395 100644 --- a/.github/workflows/debug-unicode.yml +++ b/.github/workflows/debug-unicode.yml @@ -8,7 +8,7 @@ jobs: runs-on: windows-latest strategy: matrix: - python: ["3.12"] + python: ["3.14"] architecture: [x86] steps: - uses: actions/checkout@v4 From 59985609046bcd572621b393af10dc478a863d8b Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Tue, 13 Jan 2026 15:30:28 -0800 Subject: [PATCH 25/70] Run debug test through pytest to reproduce actual crash --- debug_unicode.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/debug_unicode.py b/debug_unicode.py index f7a95d7ac..769c83f78 100644 --- a/debug_unicode.py +++ b/debug_unicode.py @@ -3,6 +3,7 @@ import warnings import sys +import pytest def test_unicode_warning(): """Test that triggers Unicode in warnings system - matches actual test behavior""" @@ -19,11 +20,12 @@ def test_unicode_warning(): decoded = result.decode('utf-8') assert decoded == unicode_string - # Trigger a warning with Unicode content (this is what causes the crash) + # Trigger a warning with Unicode content (this is what causes the crash in pytest) warnings.warn(f"Test warning: {unicode_string}") print("Test completed successfully") if __name__ == "__main__": - test_unicode_warning() + # Run through pytest to trigger the actual crash + pytest.main([__file__, "-v"]) From 09c2bb1edcebb4a7c90d10898fb8b44e68225bd7 Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Tue, 13 Jan 2026 15:32:29 -0800 Subject: [PATCH 26/70] Install pytest before running debug test --- .github/workflows/debug-unicode.yml | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/.github/workflows/debug-unicode.yml b/.github/workflows/debug-unicode.yml index c39751395..ce70b4b5f 100644 --- a/.github/workflows/debug-unicode.yml +++ b/.github/workflows/debug-unicode.yml @@ -18,10 +18,8 @@ jobs: python-version: ${{ matrix.python }} architecture: ${{ matrix.architecture }} + - name: Install pytest + run: pip install pytest + - name: Run minimal Unicode test run: python debug_unicode.py - - - name: Run with pytest - run: | - pip install pytest - pytest debug_unicode.py -v From 876ec93a36dd1a3b30baabfdf3f7fed013a87614 Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Tue, 13 Jan 2026 15:35:00 -0800 Subject: [PATCH 27/70] Remove debug unicode test - unable to reproduce issue --- .github/workflows/debug-unicode.yml | 25 ----------------------- debug_unicode.py | 31 ----------------------------- 2 files changed, 56 deletions(-) delete mode 100644 .github/workflows/debug-unicode.yml delete mode 100644 debug_unicode.py diff --git a/.github/workflows/debug-unicode.yml b/.github/workflows/debug-unicode.yml deleted file mode 100644 index ce70b4b5f..000000000 --- a/.github/workflows/debug-unicode.yml +++ /dev/null @@ -1,25 +0,0 @@ -name: Debug Unicode Crash - -on: - push: - -jobs: - debug-unicode: - runs-on: windows-latest - strategy: - matrix: - python: ["3.14"] - architecture: [x86] - steps: - - uses: actions/checkout@v4 - - - uses: actions/setup-python@v4 - with: - python-version: ${{ matrix.python }} - architecture: ${{ matrix.architecture }} - - - name: Install pytest - run: pip install pytest - - - name: Run minimal Unicode test - run: python debug_unicode.py diff --git a/debug_unicode.py b/debug_unicode.py deleted file mode 100644 index 769c83f78..000000000 --- a/debug_unicode.py +++ /dev/null @@ -1,31 +0,0 @@ -#!/usr/bin/env python3 -"""Minimal reproduction for Windows x86 Unicode crash""" - -import warnings -import sys -import pytest - -def test_unicode_warning(): - """Test that triggers Unicode in warnings system - matches actual test behavior""" - unicode_string = "\U00010002abc--abc\u79d8\u5bc6\u4ee3\u7801-\u79d8\u5bc6\u4ee3\u7801" - - # Don't print Unicode - just process it like the real test does - print(f"Python version: {sys.version}") - print(f"Platform: {sys.platform}") - print(f"Architecture: {'x64' if sys.maxsize > 2**32 else 'x86'}") - print(f"Unicode string length: {len(unicode_string)}") - - # Process the Unicode data (like the real test does) - result = unicode_string.encode('utf-8') - decoded = result.decode('utf-8') - assert decoded == unicode_string - - # Trigger a warning with Unicode content (this is what causes the crash in pytest) - warnings.warn(f"Test warning: {unicode_string}") - - print("Test completed successfully") - -if __name__ == "__main__": - # Run through pytest to trigger the actual crash - pytest.main([__file__, "-v"]) - From 4a29743f88c669681508b752fb2bf0c088cb5f71 Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Tue, 13 Jan 2026 15:36:50 -0800 Subject: [PATCH 28/70] m --- tox.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tox.ini b/tox.ini index 3189d4fbf..130737f86 100644 --- a/tox.ini +++ b/tox.ini @@ -58,7 +58,7 @@ envlist = # coverage :: Runs code coverage, failing the build if coverage is below the configured threshold [testenv:base-command] -commands = pytest --basetemp={envtmpdir} -l {posargs} --tb=short +commands = pytest --basetemp={envtmpdir} -l {posargs} [testenv] passenv = From 790d066ce396c15f84d1c4344cf63fa71a7b4a42 Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Tue, 13 Jan 2026 15:43:11 -0800 Subject: [PATCH 29/70] m --- .github/workflows/ci_tests.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci_tests.yaml b/.github/workflows/ci_tests.yaml index de668487a..5c5491137 100644 --- a/.github/workflows/ci_tests.yaml +++ b/.github/workflows/ci_tests.yaml @@ -114,4 +114,4 @@ jobs: - name: run test env: TOXENV: ${{ matrix.category }}${{ matrix.optional_mpl_dependency }} - run: tox -- -vv + run: tox -- --tb=short From 049b921334c2fa4c02d17a2880dffd06f9527d13 Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Tue, 13 Jan 2026 15:52:13 -0800 Subject: [PATCH 30/70] m --- .github/workflows/ci_tests.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci_tests.yaml b/.github/workflows/ci_tests.yaml index 5c5491137..39a44ef73 100644 --- a/.github/workflows/ci_tests.yaml +++ b/.github/workflows/ci_tests.yaml @@ -94,7 +94,7 @@ jobs: - name: run test env: TOXENV: ${{ matrix.category }}${{ matrix.optional_mpl_dependency }} - run: tox -- -vv + run: tox -- --tb=short upstream-py311: runs-on: ubuntu-latest strategy: From 7f30ccabd16dde1d309812c2d409aced04739567 Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Tue, 13 Jan 2026 16:03:05 -0800 Subject: [PATCH 31/70] m --- test/unit/test_compatability.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/unit/test_compatability.py b/test/unit/test_compatability.py index d3c40c168..11400e241 100644 --- a/test/unit/test_compatability.py +++ b/test/unit/test_compatability.py @@ -2,10 +2,10 @@ # SPDX-License-Identifier: Apache-2.0 """Unit test suite for aws_encryption_sdk.compatability""" import sys +import warnings import mock import pytest -import warnings from aws_encryption_sdk.compatability import _warn_deprecated_python From 39f9d8953d8ba3b0d000373e8b3817545ad9f6ac Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Tue, 13 Jan 2026 16:05:18 -0800 Subject: [PATCH 32/70] 3.13 --- .github/workflows/ci_tests.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci_tests.yaml b/.github/workflows/ci_tests.yaml index 39a44ef73..c5922cb6e 100644 --- a/.github/workflows/ci_tests.yaml +++ b/.github/workflows/ci_tests.yaml @@ -29,7 +29,7 @@ jobs: - "3.10" - "3.11" - "3.12" - - 3.x + - "3.13" architecture: - x64 - x86 @@ -94,7 +94,7 @@ jobs: - name: run test env: TOXENV: ${{ matrix.category }}${{ matrix.optional_mpl_dependency }} - run: tox -- --tb=short + run: tox -- -vv upstream-py311: runs-on: ubuntu-latest strategy: @@ -114,4 +114,4 @@ jobs: - name: run test env: TOXENV: ${{ matrix.category }}${{ matrix.optional_mpl_dependency }} - run: tox -- --tb=short + run: tox -- -vv From 4ba222350fdb429d026090f9e64b056913bba2fb Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Tue, 13 Jan 2026 16:05:31 -0800 Subject: [PATCH 33/70] 3.14 --- .github/workflows/ci_tests.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci_tests.yaml b/.github/workflows/ci_tests.yaml index c5922cb6e..93d592e2e 100644 --- a/.github/workflows/ci_tests.yaml +++ b/.github/workflows/ci_tests.yaml @@ -29,7 +29,7 @@ jobs: - "3.10" - "3.11" - "3.12" - - "3.13" + - "3.14" architecture: - x64 - x86 From b51efb3913f51a1d6111e3748872bd9b7c6a6452 Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Tue, 13 Jan 2026 16:12:13 -0800 Subject: [PATCH 34/70] m --- .github/workflows/reproduce_bug.yaml | 37 ++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 .github/workflows/reproduce_bug.yaml diff --git a/.github/workflows/reproduce_bug.yaml b/.github/workflows/reproduce_bug.yaml new file mode 100644 index 000000000..9d405dbe7 --- /dev/null +++ b/.github/workflows/reproduce_bug.yaml @@ -0,0 +1,37 @@ +name: 🐛 Reproduce Python 3.14.2 x86 Bug + +on: + push: + paths: + - '.github/workflows/reproduce_bug.yaml' + +permissions: + contents: read + +jobs: + reproduce: + runs-on: windows-latest + steps: + - uses: actions/checkout@v4 + + - uses: actions/setup-python@v5 + with: + python-version: "3.14" + architecture: x86 + + - name: Create test file + run: | + echo 'import pytest' > test_bug.py + echo '' >> test_bug.py + echo '@pytest.mark.parametrize("value", [' >> test_bug.py + echo ' "\U00010002abc",' >> test_bug.py + echo ' "abc\u79d8\u5bc6\u4ee3\u7801",' >> test_bug.py + echo '])' >> test_bug.py + echo 'def test_unicode(value):' >> test_bug.py + echo ' assert len(value) > 0' >> test_bug.py + + - name: Install pytest + run: pip install pytest==8.0.0 pytest-cov==4.0.0 pytest-mock==3.6.1 + + - name: Run test (will crash) + run: pytest test_bug.py -vv From 164001f1a2c175f16c867eba55f49f97dfcbbd9c Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Tue, 13 Jan 2026 16:17:02 -0800 Subject: [PATCH 35/70] m --- .github/workflows/reproduce_bug.yaml | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/.github/workflows/reproduce_bug.yaml b/.github/workflows/reproduce_bug.yaml index 9d405dbe7..1f1a203ab 100644 --- a/.github/workflows/reproduce_bug.yaml +++ b/.github/workflows/reproduce_bug.yaml @@ -19,19 +19,12 @@ jobs: python-version: "3.14" architecture: x86 - - name: Create test file + - name: Install dependencies run: | - echo 'import pytest' > test_bug.py - echo '' >> test_bug.py - echo '@pytest.mark.parametrize("value", [' >> test_bug.py - echo ' "\U00010002abc",' >> test_bug.py - echo ' "abc\u79d8\u5bc6\u4ee3\u7801",' >> test_bug.py - echo '])' >> test_bug.py - echo 'def test_unicode(value):' >> test_bug.py - echo ' assert len(value) > 0' >> test_bug.py + python -m pip install --upgrade pip + pip install --upgrade -r dev_requirements/ci-requirements.txt - - name: Install pytest - run: pip install pytest==8.0.0 pytest-cov==4.0.0 pytest-mock==3.6.1 - - - name: Run test (will crash) - run: pytest test_bug.py -vv + - name: Run actual failing test + env: + TOXENV: local + run: tox -- --tb=short test/unit/test_serialize.py::TestSerialize::test_GIVEN_two_distinct_valid_encrypted_data_keys_WHEN_serialize_encrypted_data_keys_THEN_deserialize_equals_inputs -vv From 5aa57589af5199001f30974b55e56adef426a62c Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Tue, 13 Jan 2026 16:26:51 -0800 Subject: [PATCH 36/70] m --- .github/workflows/reproduce_bug.yaml | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/.github/workflows/reproduce_bug.yaml b/.github/workflows/reproduce_bug.yaml index 1f1a203ab..b781bfc64 100644 --- a/.github/workflows/reproduce_bug.yaml +++ b/.github/workflows/reproduce_bug.yaml @@ -19,12 +19,23 @@ jobs: python-version: "3.14" architecture: x86 - - name: Install dependencies + - name: Create standalone test file run: | - python -m pip install --upgrade pip - pip install --upgrade -r dev_requirements/ci-requirements.txt + @" + import pytest + + @pytest.mark.parametrize('key1,key2', [ + ('\U00010002abc', 'abc\u79d8\u5bc6\u4ee3\u7801'), + ('test1', 'test2'), + ('\U00010002', '\u79d8\u5bc6'), + ]) + def test_unicode_params(key1, key2): + assert len(key1) > 0 + assert len(key2) > 0 + "@ | Out-File -FilePath test_standalone.py -Encoding utf8 - - name: Run actual failing test - env: - TOXENV: local - run: tox -- --tb=short test/unit/test_serialize.py::TestSerialize::test_GIVEN_two_distinct_valid_encrypted_data_keys_WHEN_serialize_encrypted_data_keys_THEN_deserialize_equals_inputs -vv + - name: Install pytest + run: pip install pytest==8.0.0 + + - name: Run standalone test (will crash) + run: pytest test_standalone.py -vv From 9b6ce15b88a1e21f7a12abd21036e3c3468f06c1 Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Tue, 13 Jan 2026 16:33:32 -0800 Subject: [PATCH 37/70] m --- .github/workflows/reproduce_bug.yaml | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/.github/workflows/reproduce_bug.yaml b/.github/workflows/reproduce_bug.yaml index b781bfc64..23306cce8 100644 --- a/.github/workflows/reproduce_bug.yaml +++ b/.github/workflows/reproduce_bug.yaml @@ -19,23 +19,28 @@ jobs: python-version: "3.14" architecture: x86 - - name: Create standalone test file + - name: Create multiple test files run: | - @" + # Create 50 test files with Unicode parameters + for ($i=1; $i -le 50; $i++) { + @" import pytest @pytest.mark.parametrize('key1,key2', [ - ('\U00010002abc', 'abc\u79d8\u5bc6\u4ee3\u7801'), - ('test1', 'test2'), - ('\U00010002', '\u79d8\u5bc6'), + ('\U00010002abc$i', 'abc\u79d8\u5bc6\u4ee3\u7801$i'), + ('test1_$i', 'test2_$i'), + ('\U00010002_$i', '\u79d8\u5bc6_$i'), ]) - def test_unicode_params(key1, key2): + def test_unicode_params_$i(key1, key2): assert len(key1) > 0 assert len(key2) > 0 - "@ | Out-File -FilePath test_standalone.py -Encoding utf8 + import warnings + warnings.warn(f'Test warning {key1} {key2}') + "@ | Out-File -FilePath "test_$i.py" -Encoding utf8 + } - name: Install pytest run: pip install pytest==8.0.0 - - name: Run standalone test (will crash) - run: pytest test_standalone.py -vv + - name: Run all tests (will crash) + run: pytest test_*.py -vv From b8cb523b35aa92c0304032db3b396122780764db Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Tue, 13 Jan 2026 16:34:53 -0800 Subject: [PATCH 38/70] m --- .github/workflows/reproduce_bug.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/reproduce_bug.yaml b/.github/workflows/reproduce_bug.yaml index 23306cce8..8098f80aa 100644 --- a/.github/workflows/reproduce_bug.yaml +++ b/.github/workflows/reproduce_bug.yaml @@ -29,7 +29,7 @@ jobs: @pytest.mark.parametrize('key1,key2', [ ('\U00010002abc$i', 'abc\u79d8\u5bc6\u4ee3\u7801$i'), ('test1_$i', 'test2_$i'), - ('\U00010002_$i', '\u79d8\u5bc6_$i'), + ('\U00010002_$i', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), ]) def test_unicode_params_$i(key1, key2): assert len(key1) > 0 From 776fc937db99d8572ecbd45ec53de88b68c32d17 Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Tue, 13 Jan 2026 16:36:48 -0800 Subject: [PATCH 39/70] m --- .github/workflows/reproduce_bug.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/reproduce_bug.yaml b/.github/workflows/reproduce_bug.yaml index 8098f80aa..283bc080a 100644 --- a/.github/workflows/reproduce_bug.yaml +++ b/.github/workflows/reproduce_bug.yaml @@ -43,4 +43,4 @@ jobs: run: pip install pytest==8.0.0 - name: Run all tests (will crash) - run: pytest test_*.py -vv + run: pytest . -vv -k "test_unicode" From 1b3a5f24090d45de1bce8206cfcdaec7b2ccf597 Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Tue, 13 Jan 2026 16:47:14 -0800 Subject: [PATCH 40/70] m --- .github/workflows/reproduce_bug.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/reproduce_bug.yaml b/.github/workflows/reproduce_bug.yaml index 283bc080a..8098f80aa 100644 --- a/.github/workflows/reproduce_bug.yaml +++ b/.github/workflows/reproduce_bug.yaml @@ -43,4 +43,4 @@ jobs: run: pip install pytest==8.0.0 - name: Run all tests (will crash) - run: pytest . -vv -k "test_unicode" + run: pytest test_*.py -vv From b59762ef8e562a65f8a4baab3864fd636786ca38 Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Tue, 13 Jan 2026 16:53:51 -0800 Subject: [PATCH 41/70] Add test file --- test_1.py | 12 ++++++++++++ test_10.py | 12 ++++++++++++ test_11.py | 12 ++++++++++++ test_12.py | 12 ++++++++++++ test_13.py | 12 ++++++++++++ test_14.py | 12 ++++++++++++ test_15.py | 12 ++++++++++++ test_16.py | 12 ++++++++++++ test_17.py | 12 ++++++++++++ test_18.py | 12 ++++++++++++ test_19.py | 12 ++++++++++++ test_2.py | 12 ++++++++++++ test_20.py | 12 ++++++++++++ test_21.py | 12 ++++++++++++ test_22.py | 12 ++++++++++++ test_23.py | 12 ++++++++++++ test_24.py | 12 ++++++++++++ test_25.py | 12 ++++++++++++ test_26.py | 12 ++++++++++++ test_27.py | 12 ++++++++++++ test_28.py | 12 ++++++++++++ test_29.py | 12 ++++++++++++ test_3.py | 12 ++++++++++++ test_30.py | 12 ++++++++++++ test_31.py | 12 ++++++++++++ test_32.py | 12 ++++++++++++ test_33.py | 12 ++++++++++++ test_34.py | 12 ++++++++++++ test_35.py | 12 ++++++++++++ test_36.py | 12 ++++++++++++ test_37.py | 12 ++++++++++++ test_38.py | 12 ++++++++++++ test_39.py | 12 ++++++++++++ test_4.py | 12 ++++++++++++ test_40.py | 12 ++++++++++++ test_41.py | 12 ++++++++++++ test_42.py | 12 ++++++++++++ test_43.py | 12 ++++++++++++ test_44.py | 12 ++++++++++++ test_45.py | 12 ++++++++++++ test_46.py | 12 ++++++++++++ test_47.py | 12 ++++++++++++ test_48.py | 12 ++++++++++++ test_49.py | 12 ++++++++++++ test_5.py | 12 ++++++++++++ test_50.py | 12 ++++++++++++ test_6.py | 12 ++++++++++++ test_7.py | 12 ++++++++++++ test_8.py | 12 ++++++++++++ test_9.py | 12 ++++++++++++ 50 files changed, 600 insertions(+) create mode 100644 test_1.py create mode 100644 test_10.py create mode 100644 test_11.py create mode 100644 test_12.py create mode 100644 test_13.py create mode 100644 test_14.py create mode 100644 test_15.py create mode 100644 test_16.py create mode 100644 test_17.py create mode 100644 test_18.py create mode 100644 test_19.py create mode 100644 test_2.py create mode 100644 test_20.py create mode 100644 test_21.py create mode 100644 test_22.py create mode 100644 test_23.py create mode 100644 test_24.py create mode 100644 test_25.py create mode 100644 test_26.py create mode 100644 test_27.py create mode 100644 test_28.py create mode 100644 test_29.py create mode 100644 test_3.py create mode 100644 test_30.py create mode 100644 test_31.py create mode 100644 test_32.py create mode 100644 test_33.py create mode 100644 test_34.py create mode 100644 test_35.py create mode 100644 test_36.py create mode 100644 test_37.py create mode 100644 test_38.py create mode 100644 test_39.py create mode 100644 test_4.py create mode 100644 test_40.py create mode 100644 test_41.py create mode 100644 test_42.py create mode 100644 test_43.py create mode 100644 test_44.py create mode 100644 test_45.py create mode 100644 test_46.py create mode 100644 test_47.py create mode 100644 test_48.py create mode 100644 test_49.py create mode 100644 test_5.py create mode 100644 test_50.py create mode 100644 test_6.py create mode 100644 test_7.py create mode 100644 test_8.py create mode 100644 test_9.py diff --git a/test_1.py b/test_1.py new file mode 100644 index 000000000..62435ef01 --- /dev/null +++ b/test_1.py @@ -0,0 +1,12 @@ +import pytest + +@pytest.mark.parametrize('key1,key2', [ + ('\U00010002abc1', 'abc\u79d8\u5bc6\u4ee3\u78011'), + ('test1_1', 'test2_1'), + ('\U00010002_1', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), +]) +def test_unicode_params_1(key1, key2): + assert len(key1) > 0 + assert len(key2) > 0 + import warnings + warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_10.py b/test_10.py new file mode 100644 index 000000000..6bb09f865 --- /dev/null +++ b/test_10.py @@ -0,0 +1,12 @@ +import pytest + +@pytest.mark.parametrize('key1,key2', [ + ('\U00010002abc10', 'abc\u79d8\u5bc6\u4ee3\u780110'), + ('test1_10', 'test2_10'), + ('\U00010002_10', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), +]) +def test_unicode_params_10(key1, key2): + assert len(key1) > 0 + assert len(key2) > 0 + import warnings + warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_11.py b/test_11.py new file mode 100644 index 000000000..d738f4d27 --- /dev/null +++ b/test_11.py @@ -0,0 +1,12 @@ +import pytest + +@pytest.mark.parametrize('key1,key2', [ + ('\U00010002abc11', 'abc\u79d8\u5bc6\u4ee3\u780111'), + ('test1_11', 'test2_11'), + ('\U00010002_11', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), +]) +def test_unicode_params_11(key1, key2): + assert len(key1) > 0 + assert len(key2) > 0 + import warnings + warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_12.py b/test_12.py new file mode 100644 index 000000000..2db5ccf0a --- /dev/null +++ b/test_12.py @@ -0,0 +1,12 @@ +import pytest + +@pytest.mark.parametrize('key1,key2', [ + ('\U00010002abc12', 'abc\u79d8\u5bc6\u4ee3\u780112'), + ('test1_12', 'test2_12'), + ('\U00010002_12', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), +]) +def test_unicode_params_12(key1, key2): + assert len(key1) > 0 + assert len(key2) > 0 + import warnings + warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_13.py b/test_13.py new file mode 100644 index 000000000..637d03f52 --- /dev/null +++ b/test_13.py @@ -0,0 +1,12 @@ +import pytest + +@pytest.mark.parametrize('key1,key2', [ + ('\U00010002abc13', 'abc\u79d8\u5bc6\u4ee3\u780113'), + ('test1_13', 'test2_13'), + ('\U00010002_13', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), +]) +def test_unicode_params_13(key1, key2): + assert len(key1) > 0 + assert len(key2) > 0 + import warnings + warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_14.py b/test_14.py new file mode 100644 index 000000000..728c72995 --- /dev/null +++ b/test_14.py @@ -0,0 +1,12 @@ +import pytest + +@pytest.mark.parametrize('key1,key2', [ + ('\U00010002abc14', 'abc\u79d8\u5bc6\u4ee3\u780114'), + ('test1_14', 'test2_14'), + ('\U00010002_14', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), +]) +def test_unicode_params_14(key1, key2): + assert len(key1) > 0 + assert len(key2) > 0 + import warnings + warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_15.py b/test_15.py new file mode 100644 index 000000000..1bb605abf --- /dev/null +++ b/test_15.py @@ -0,0 +1,12 @@ +import pytest + +@pytest.mark.parametrize('key1,key2', [ + ('\U00010002abc15', 'abc\u79d8\u5bc6\u4ee3\u780115'), + ('test1_15', 'test2_15'), + ('\U00010002_15', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), +]) +def test_unicode_params_15(key1, key2): + assert len(key1) > 0 + assert len(key2) > 0 + import warnings + warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_16.py b/test_16.py new file mode 100644 index 000000000..ef4d56466 --- /dev/null +++ b/test_16.py @@ -0,0 +1,12 @@ +import pytest + +@pytest.mark.parametrize('key1,key2', [ + ('\U00010002abc16', 'abc\u79d8\u5bc6\u4ee3\u780116'), + ('test1_16', 'test2_16'), + ('\U00010002_16', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), +]) +def test_unicode_params_16(key1, key2): + assert len(key1) > 0 + assert len(key2) > 0 + import warnings + warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_17.py b/test_17.py new file mode 100644 index 000000000..fb5b37081 --- /dev/null +++ b/test_17.py @@ -0,0 +1,12 @@ +import pytest + +@pytest.mark.parametrize('key1,key2', [ + ('\U00010002abc17', 'abc\u79d8\u5bc6\u4ee3\u780117'), + ('test1_17', 'test2_17'), + ('\U00010002_17', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), +]) +def test_unicode_params_17(key1, key2): + assert len(key1) > 0 + assert len(key2) > 0 + import warnings + warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_18.py b/test_18.py new file mode 100644 index 000000000..8b2f4d295 --- /dev/null +++ b/test_18.py @@ -0,0 +1,12 @@ +import pytest + +@pytest.mark.parametrize('key1,key2', [ + ('\U00010002abc18', 'abc\u79d8\u5bc6\u4ee3\u780118'), + ('test1_18', 'test2_18'), + ('\U00010002_18', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), +]) +def test_unicode_params_18(key1, key2): + assert len(key1) > 0 + assert len(key2) > 0 + import warnings + warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_19.py b/test_19.py new file mode 100644 index 000000000..c8bf200c6 --- /dev/null +++ b/test_19.py @@ -0,0 +1,12 @@ +import pytest + +@pytest.mark.parametrize('key1,key2', [ + ('\U00010002abc19', 'abc\u79d8\u5bc6\u4ee3\u780119'), + ('test1_19', 'test2_19'), + ('\U00010002_19', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), +]) +def test_unicode_params_19(key1, key2): + assert len(key1) > 0 + assert len(key2) > 0 + import warnings + warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_2.py b/test_2.py new file mode 100644 index 000000000..c00e8932e --- /dev/null +++ b/test_2.py @@ -0,0 +1,12 @@ +import pytest + +@pytest.mark.parametrize('key1,key2', [ + ('\U00010002abc2', 'abc\u79d8\u5bc6\u4ee3\u78012'), + ('test1_2', 'test2_2'), + ('\U00010002_2', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), +]) +def test_unicode_params_2(key1, key2): + assert len(key1) > 0 + assert len(key2) > 0 + import warnings + warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_20.py b/test_20.py new file mode 100644 index 000000000..8619653ac --- /dev/null +++ b/test_20.py @@ -0,0 +1,12 @@ +import pytest + +@pytest.mark.parametrize('key1,key2', [ + ('\U00010002abc20', 'abc\u79d8\u5bc6\u4ee3\u780120'), + ('test1_20', 'test2_20'), + ('\U00010002_20', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), +]) +def test_unicode_params_20(key1, key2): + assert len(key1) > 0 + assert len(key2) > 0 + import warnings + warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_21.py b/test_21.py new file mode 100644 index 000000000..9edef2dd8 --- /dev/null +++ b/test_21.py @@ -0,0 +1,12 @@ +import pytest + +@pytest.mark.parametrize('key1,key2', [ + ('\U00010002abc21', 'abc\u79d8\u5bc6\u4ee3\u780121'), + ('test1_21', 'test2_21'), + ('\U00010002_21', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), +]) +def test_unicode_params_21(key1, key2): + assert len(key1) > 0 + assert len(key2) > 0 + import warnings + warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_22.py b/test_22.py new file mode 100644 index 000000000..db604a933 --- /dev/null +++ b/test_22.py @@ -0,0 +1,12 @@ +import pytest + +@pytest.mark.parametrize('key1,key2', [ + ('\U00010002abc22', 'abc\u79d8\u5bc6\u4ee3\u780122'), + ('test1_22', 'test2_22'), + ('\U00010002_22', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), +]) +def test_unicode_params_22(key1, key2): + assert len(key1) > 0 + assert len(key2) > 0 + import warnings + warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_23.py b/test_23.py new file mode 100644 index 000000000..fef3e2f79 --- /dev/null +++ b/test_23.py @@ -0,0 +1,12 @@ +import pytest + +@pytest.mark.parametrize('key1,key2', [ + ('\U00010002abc23', 'abc\u79d8\u5bc6\u4ee3\u780123'), + ('test1_23', 'test2_23'), + ('\U00010002_23', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), +]) +def test_unicode_params_23(key1, key2): + assert len(key1) > 0 + assert len(key2) > 0 + import warnings + warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_24.py b/test_24.py new file mode 100644 index 000000000..7cadbf39e --- /dev/null +++ b/test_24.py @@ -0,0 +1,12 @@ +import pytest + +@pytest.mark.parametrize('key1,key2', [ + ('\U00010002abc24', 'abc\u79d8\u5bc6\u4ee3\u780124'), + ('test1_24', 'test2_24'), + ('\U00010002_24', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), +]) +def test_unicode_params_24(key1, key2): + assert len(key1) > 0 + assert len(key2) > 0 + import warnings + warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_25.py b/test_25.py new file mode 100644 index 000000000..77044403f --- /dev/null +++ b/test_25.py @@ -0,0 +1,12 @@ +import pytest + +@pytest.mark.parametrize('key1,key2', [ + ('\U00010002abc25', 'abc\u79d8\u5bc6\u4ee3\u780125'), + ('test1_25', 'test2_25'), + ('\U00010002_25', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), +]) +def test_unicode_params_25(key1, key2): + assert len(key1) > 0 + assert len(key2) > 0 + import warnings + warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_26.py b/test_26.py new file mode 100644 index 000000000..518d8a4a4 --- /dev/null +++ b/test_26.py @@ -0,0 +1,12 @@ +import pytest + +@pytest.mark.parametrize('key1,key2', [ + ('\U00010002abc26', 'abc\u79d8\u5bc6\u4ee3\u780126'), + ('test1_26', 'test2_26'), + ('\U00010002_26', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), +]) +def test_unicode_params_26(key1, key2): + assert len(key1) > 0 + assert len(key2) > 0 + import warnings + warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_27.py b/test_27.py new file mode 100644 index 000000000..6d9cf43dc --- /dev/null +++ b/test_27.py @@ -0,0 +1,12 @@ +import pytest + +@pytest.mark.parametrize('key1,key2', [ + ('\U00010002abc27', 'abc\u79d8\u5bc6\u4ee3\u780127'), + ('test1_27', 'test2_27'), + ('\U00010002_27', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), +]) +def test_unicode_params_27(key1, key2): + assert len(key1) > 0 + assert len(key2) > 0 + import warnings + warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_28.py b/test_28.py new file mode 100644 index 000000000..26d3534a9 --- /dev/null +++ b/test_28.py @@ -0,0 +1,12 @@ +import pytest + +@pytest.mark.parametrize('key1,key2', [ + ('\U00010002abc28', 'abc\u79d8\u5bc6\u4ee3\u780128'), + ('test1_28', 'test2_28'), + ('\U00010002_28', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), +]) +def test_unicode_params_28(key1, key2): + assert len(key1) > 0 + assert len(key2) > 0 + import warnings + warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_29.py b/test_29.py new file mode 100644 index 000000000..36cc3ebb6 --- /dev/null +++ b/test_29.py @@ -0,0 +1,12 @@ +import pytest + +@pytest.mark.parametrize('key1,key2', [ + ('\U00010002abc29', 'abc\u79d8\u5bc6\u4ee3\u780129'), + ('test1_29', 'test2_29'), + ('\U00010002_29', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), +]) +def test_unicode_params_29(key1, key2): + assert len(key1) > 0 + assert len(key2) > 0 + import warnings + warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_3.py b/test_3.py new file mode 100644 index 000000000..cb755cec6 --- /dev/null +++ b/test_3.py @@ -0,0 +1,12 @@ +import pytest + +@pytest.mark.parametrize('key1,key2', [ + ('\U00010002abc3', 'abc\u79d8\u5bc6\u4ee3\u78013'), + ('test1_3', 'test2_3'), + ('\U00010002_3', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), +]) +def test_unicode_params_3(key1, key2): + assert len(key1) > 0 + assert len(key2) > 0 + import warnings + warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_30.py b/test_30.py new file mode 100644 index 000000000..88254f419 --- /dev/null +++ b/test_30.py @@ -0,0 +1,12 @@ +import pytest + +@pytest.mark.parametrize('key1,key2', [ + ('\U00010002abc30', 'abc\u79d8\u5bc6\u4ee3\u780130'), + ('test1_30', 'test2_30'), + ('\U00010002_30', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), +]) +def test_unicode_params_30(key1, key2): + assert len(key1) > 0 + assert len(key2) > 0 + import warnings + warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_31.py b/test_31.py new file mode 100644 index 000000000..cbeae215a --- /dev/null +++ b/test_31.py @@ -0,0 +1,12 @@ +import pytest + +@pytest.mark.parametrize('key1,key2', [ + ('\U00010002abc31', 'abc\u79d8\u5bc6\u4ee3\u780131'), + ('test1_31', 'test2_31'), + ('\U00010002_31', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), +]) +def test_unicode_params_31(key1, key2): + assert len(key1) > 0 + assert len(key2) > 0 + import warnings + warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_32.py b/test_32.py new file mode 100644 index 000000000..8ab41d3fb --- /dev/null +++ b/test_32.py @@ -0,0 +1,12 @@ +import pytest + +@pytest.mark.parametrize('key1,key2', [ + ('\U00010002abc32', 'abc\u79d8\u5bc6\u4ee3\u780132'), + ('test1_32', 'test2_32'), + ('\U00010002_32', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), +]) +def test_unicode_params_32(key1, key2): + assert len(key1) > 0 + assert len(key2) > 0 + import warnings + warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_33.py b/test_33.py new file mode 100644 index 000000000..e1fa10560 --- /dev/null +++ b/test_33.py @@ -0,0 +1,12 @@ +import pytest + +@pytest.mark.parametrize('key1,key2', [ + ('\U00010002abc33', 'abc\u79d8\u5bc6\u4ee3\u780133'), + ('test1_33', 'test2_33'), + ('\U00010002_33', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), +]) +def test_unicode_params_33(key1, key2): + assert len(key1) > 0 + assert len(key2) > 0 + import warnings + warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_34.py b/test_34.py new file mode 100644 index 000000000..d1cad5eef --- /dev/null +++ b/test_34.py @@ -0,0 +1,12 @@ +import pytest + +@pytest.mark.parametrize('key1,key2', [ + ('\U00010002abc34', 'abc\u79d8\u5bc6\u4ee3\u780134'), + ('test1_34', 'test2_34'), + ('\U00010002_34', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), +]) +def test_unicode_params_34(key1, key2): + assert len(key1) > 0 + assert len(key2) > 0 + import warnings + warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_35.py b/test_35.py new file mode 100644 index 000000000..b93c5cc10 --- /dev/null +++ b/test_35.py @@ -0,0 +1,12 @@ +import pytest + +@pytest.mark.parametrize('key1,key2', [ + ('\U00010002abc35', 'abc\u79d8\u5bc6\u4ee3\u780135'), + ('test1_35', 'test2_35'), + ('\U00010002_35', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), +]) +def test_unicode_params_35(key1, key2): + assert len(key1) > 0 + assert len(key2) > 0 + import warnings + warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_36.py b/test_36.py new file mode 100644 index 000000000..47d326336 --- /dev/null +++ b/test_36.py @@ -0,0 +1,12 @@ +import pytest + +@pytest.mark.parametrize('key1,key2', [ + ('\U00010002abc36', 'abc\u79d8\u5bc6\u4ee3\u780136'), + ('test1_36', 'test2_36'), + ('\U00010002_36', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), +]) +def test_unicode_params_36(key1, key2): + assert len(key1) > 0 + assert len(key2) > 0 + import warnings + warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_37.py b/test_37.py new file mode 100644 index 000000000..12bc9a94d --- /dev/null +++ b/test_37.py @@ -0,0 +1,12 @@ +import pytest + +@pytest.mark.parametrize('key1,key2', [ + ('\U00010002abc37', 'abc\u79d8\u5bc6\u4ee3\u780137'), + ('test1_37', 'test2_37'), + ('\U00010002_37', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), +]) +def test_unicode_params_37(key1, key2): + assert len(key1) > 0 + assert len(key2) > 0 + import warnings + warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_38.py b/test_38.py new file mode 100644 index 000000000..2d68ecd1a --- /dev/null +++ b/test_38.py @@ -0,0 +1,12 @@ +import pytest + +@pytest.mark.parametrize('key1,key2', [ + ('\U00010002abc38', 'abc\u79d8\u5bc6\u4ee3\u780138'), + ('test1_38', 'test2_38'), + ('\U00010002_38', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), +]) +def test_unicode_params_38(key1, key2): + assert len(key1) > 0 + assert len(key2) > 0 + import warnings + warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_39.py b/test_39.py new file mode 100644 index 000000000..d7143b265 --- /dev/null +++ b/test_39.py @@ -0,0 +1,12 @@ +import pytest + +@pytest.mark.parametrize('key1,key2', [ + ('\U00010002abc39', 'abc\u79d8\u5bc6\u4ee3\u780139'), + ('test1_39', 'test2_39'), + ('\U00010002_39', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), +]) +def test_unicode_params_39(key1, key2): + assert len(key1) > 0 + assert len(key2) > 0 + import warnings + warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_4.py b/test_4.py new file mode 100644 index 000000000..9f22f4b2f --- /dev/null +++ b/test_4.py @@ -0,0 +1,12 @@ +import pytest + +@pytest.mark.parametrize('key1,key2', [ + ('\U00010002abc4', 'abc\u79d8\u5bc6\u4ee3\u78014'), + ('test1_4', 'test2_4'), + ('\U00010002_4', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), +]) +def test_unicode_params_4(key1, key2): + assert len(key1) > 0 + assert len(key2) > 0 + import warnings + warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_40.py b/test_40.py new file mode 100644 index 000000000..0fb11f724 --- /dev/null +++ b/test_40.py @@ -0,0 +1,12 @@ +import pytest + +@pytest.mark.parametrize('key1,key2', [ + ('\U00010002abc40', 'abc\u79d8\u5bc6\u4ee3\u780140'), + ('test1_40', 'test2_40'), + ('\U00010002_40', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), +]) +def test_unicode_params_40(key1, key2): + assert len(key1) > 0 + assert len(key2) > 0 + import warnings + warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_41.py b/test_41.py new file mode 100644 index 000000000..c71bfe8ad --- /dev/null +++ b/test_41.py @@ -0,0 +1,12 @@ +import pytest + +@pytest.mark.parametrize('key1,key2', [ + ('\U00010002abc41', 'abc\u79d8\u5bc6\u4ee3\u780141'), + ('test1_41', 'test2_41'), + ('\U00010002_41', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), +]) +def test_unicode_params_41(key1, key2): + assert len(key1) > 0 + assert len(key2) > 0 + import warnings + warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_42.py b/test_42.py new file mode 100644 index 000000000..8a65dddbd --- /dev/null +++ b/test_42.py @@ -0,0 +1,12 @@ +import pytest + +@pytest.mark.parametrize('key1,key2', [ + ('\U00010002abc42', 'abc\u79d8\u5bc6\u4ee3\u780142'), + ('test1_42', 'test2_42'), + ('\U00010002_42', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), +]) +def test_unicode_params_42(key1, key2): + assert len(key1) > 0 + assert len(key2) > 0 + import warnings + warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_43.py b/test_43.py new file mode 100644 index 000000000..ea3422fc0 --- /dev/null +++ b/test_43.py @@ -0,0 +1,12 @@ +import pytest + +@pytest.mark.parametrize('key1,key2', [ + ('\U00010002abc43', 'abc\u79d8\u5bc6\u4ee3\u780143'), + ('test1_43', 'test2_43'), + ('\U00010002_43', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), +]) +def test_unicode_params_43(key1, key2): + assert len(key1) > 0 + assert len(key2) > 0 + import warnings + warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_44.py b/test_44.py new file mode 100644 index 000000000..a41fc1143 --- /dev/null +++ b/test_44.py @@ -0,0 +1,12 @@ +import pytest + +@pytest.mark.parametrize('key1,key2', [ + ('\U00010002abc44', 'abc\u79d8\u5bc6\u4ee3\u780144'), + ('test1_44', 'test2_44'), + ('\U00010002_44', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), +]) +def test_unicode_params_44(key1, key2): + assert len(key1) > 0 + assert len(key2) > 0 + import warnings + warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_45.py b/test_45.py new file mode 100644 index 000000000..608883dcd --- /dev/null +++ b/test_45.py @@ -0,0 +1,12 @@ +import pytest + +@pytest.mark.parametrize('key1,key2', [ + ('\U00010002abc45', 'abc\u79d8\u5bc6\u4ee3\u780145'), + ('test1_45', 'test2_45'), + ('\U00010002_45', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), +]) +def test_unicode_params_45(key1, key2): + assert len(key1) > 0 + assert len(key2) > 0 + import warnings + warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_46.py b/test_46.py new file mode 100644 index 000000000..2b70f4a88 --- /dev/null +++ b/test_46.py @@ -0,0 +1,12 @@ +import pytest + +@pytest.mark.parametrize('key1,key2', [ + ('\U00010002abc46', 'abc\u79d8\u5bc6\u4ee3\u780146'), + ('test1_46', 'test2_46'), + ('\U00010002_46', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), +]) +def test_unicode_params_46(key1, key2): + assert len(key1) > 0 + assert len(key2) > 0 + import warnings + warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_47.py b/test_47.py new file mode 100644 index 000000000..4b239b467 --- /dev/null +++ b/test_47.py @@ -0,0 +1,12 @@ +import pytest + +@pytest.mark.parametrize('key1,key2', [ + ('\U00010002abc47', 'abc\u79d8\u5bc6\u4ee3\u780147'), + ('test1_47', 'test2_47'), + ('\U00010002_47', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), +]) +def test_unicode_params_47(key1, key2): + assert len(key1) > 0 + assert len(key2) > 0 + import warnings + warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_48.py b/test_48.py new file mode 100644 index 000000000..bb12bf69d --- /dev/null +++ b/test_48.py @@ -0,0 +1,12 @@ +import pytest + +@pytest.mark.parametrize('key1,key2', [ + ('\U00010002abc48', 'abc\u79d8\u5bc6\u4ee3\u780148'), + ('test1_48', 'test2_48'), + ('\U00010002_48', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), +]) +def test_unicode_params_48(key1, key2): + assert len(key1) > 0 + assert len(key2) > 0 + import warnings + warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_49.py b/test_49.py new file mode 100644 index 000000000..6c73793a5 --- /dev/null +++ b/test_49.py @@ -0,0 +1,12 @@ +import pytest + +@pytest.mark.parametrize('key1,key2', [ + ('\U00010002abc49', 'abc\u79d8\u5bc6\u4ee3\u780149'), + ('test1_49', 'test2_49'), + ('\U00010002_49', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), +]) +def test_unicode_params_49(key1, key2): + assert len(key1) > 0 + assert len(key2) > 0 + import warnings + warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_5.py b/test_5.py new file mode 100644 index 000000000..d5779dd61 --- /dev/null +++ b/test_5.py @@ -0,0 +1,12 @@ +import pytest + +@pytest.mark.parametrize('key1,key2', [ + ('\U00010002abc5', 'abc\u79d8\u5bc6\u4ee3\u78015'), + ('test1_5', 'test2_5'), + ('\U00010002_5', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), +]) +def test_unicode_params_5(key1, key2): + assert len(key1) > 0 + assert len(key2) > 0 + import warnings + warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_50.py b/test_50.py new file mode 100644 index 000000000..b18459cc0 --- /dev/null +++ b/test_50.py @@ -0,0 +1,12 @@ +import pytest + +@pytest.mark.parametrize('key1,key2', [ + ('\U00010002abc50', 'abc\u79d8\u5bc6\u4ee3\u780150'), + ('test1_50', 'test2_50'), + ('\U00010002_50', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), +]) +def test_unicode_params_50(key1, key2): + assert len(key1) > 0 + assert len(key2) > 0 + import warnings + warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_6.py b/test_6.py new file mode 100644 index 000000000..ba4fb5b50 --- /dev/null +++ b/test_6.py @@ -0,0 +1,12 @@ +import pytest + +@pytest.mark.parametrize('key1,key2', [ + ('\U00010002abc6', 'abc\u79d8\u5bc6\u4ee3\u78016'), + ('test1_6', 'test2_6'), + ('\U00010002_6', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), +]) +def test_unicode_params_6(key1, key2): + assert len(key1) > 0 + assert len(key2) > 0 + import warnings + warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_7.py b/test_7.py new file mode 100644 index 000000000..564170772 --- /dev/null +++ b/test_7.py @@ -0,0 +1,12 @@ +import pytest + +@pytest.mark.parametrize('key1,key2', [ + ('\U00010002abc7', 'abc\u79d8\u5bc6\u4ee3\u78017'), + ('test1_7', 'test2_7'), + ('\U00010002_7', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), +]) +def test_unicode_params_7(key1, key2): + assert len(key1) > 0 + assert len(key2) > 0 + import warnings + warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_8.py b/test_8.py new file mode 100644 index 000000000..b72c46757 --- /dev/null +++ b/test_8.py @@ -0,0 +1,12 @@ +import pytest + +@pytest.mark.parametrize('key1,key2', [ + ('\U00010002abc8', 'abc\u79d8\u5bc6\u4ee3\u78018'), + ('test1_8', 'test2_8'), + ('\U00010002_8', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), +]) +def test_unicode_params_8(key1, key2): + assert len(key1) > 0 + assert len(key2) > 0 + import warnings + warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_9.py b/test_9.py new file mode 100644 index 000000000..05fcf045e --- /dev/null +++ b/test_9.py @@ -0,0 +1,12 @@ +import pytest + +@pytest.mark.parametrize('key1,key2', [ + ('\U00010002abc9', 'abc\u79d8\u5bc6\u4ee3\u78019'), + ('test1_9', 'test2_9'), + ('\U00010002_9', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), +]) +def test_unicode_params_9(key1, key2): + assert len(key1) > 0 + assert len(key2) > 0 + import warnings + warnings.warn(f'Test warning {key1} {key2}') From 526c11f7e58a326a15a297de25e6f9200ca320c3 Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Tue, 13 Jan 2026 16:59:38 -0800 Subject: [PATCH 42/70] m --- .github/workflows/reproduce_bug.yaml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/reproduce_bug.yaml b/.github/workflows/reproduce_bug.yaml index 8098f80aa..3653e7493 100644 --- a/.github/workflows/reproduce_bug.yaml +++ b/.github/workflows/reproduce_bug.yaml @@ -2,8 +2,6 @@ name: 🐛 Reproduce Python 3.14.2 x86 Bug on: push: - paths: - - '.github/workflows/reproduce_bug.yaml' permissions: contents: read From ccb2d0c20e81777a0959897d258a6498f8d90aad Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Tue, 13 Jan 2026 17:01:43 -0800 Subject: [PATCH 43/70] m --- .github/workflows/reproduce_bug.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/reproduce_bug.yaml b/.github/workflows/reproduce_bug.yaml index 3653e7493..2771c0fe1 100644 --- a/.github/workflows/reproduce_bug.yaml +++ b/.github/workflows/reproduce_bug.yaml @@ -41,4 +41,4 @@ jobs: run: pip install pytest==8.0.0 - name: Run all tests (will crash) - run: pytest test_*.py -vv + run: pytest test_1.py -vv From f483073ca55202bd0a004f840c6624f038798f8f Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Tue, 13 Jan 2026 17:07:04 -0800 Subject: [PATCH 44/70] m --- .github/workflows/reproduce_bug.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/reproduce_bug.yaml b/.github/workflows/reproduce_bug.yaml index 2771c0fe1..1b500ef64 100644 --- a/.github/workflows/reproduce_bug.yaml +++ b/.github/workflows/reproduce_bug.yaml @@ -40,5 +40,5 @@ jobs: - name: Install pytest run: pip install pytest==8.0.0 - - name: Run all tests (will crash) - run: pytest test_1.py -vv + - name: Run all test files + run: pytest (Get-ChildItem test_*.py).Name -vv From a8744b424ca627ad448a9d949e1406a93b9433bb Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Tue, 13 Jan 2026 17:09:52 -0800 Subject: [PATCH 45/70] m --- .github/workflows/reproduce_bug.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/reproduce_bug.yaml b/.github/workflows/reproduce_bug.yaml index 1b500ef64..e30d1c403 100644 --- a/.github/workflows/reproduce_bug.yaml +++ b/.github/workflows/reproduce_bug.yaml @@ -20,7 +20,7 @@ jobs: - name: Create multiple test files run: | # Create 50 test files with Unicode parameters - for ($i=1; $i -le 50; $i++) { + for ($i=1; $i -le 500; $i++) { @" import pytest From 5d9c0758fb9e0a49bd1bc07201577ff071ce17f3 Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Tue, 13 Jan 2026 17:10:23 -0800 Subject: [PATCH 46/70] m --- test_1.py | 12 ------------ test_10.py | 12 ------------ test_11.py | 12 ------------ test_12.py | 12 ------------ test_13.py | 12 ------------ test_14.py | 12 ------------ test_15.py | 12 ------------ test_16.py | 12 ------------ test_17.py | 12 ------------ test_18.py | 12 ------------ test_19.py | 12 ------------ test_2.py | 12 ------------ test_20.py | 12 ------------ test_21.py | 12 ------------ test_22.py | 12 ------------ test_23.py | 12 ------------ test_24.py | 12 ------------ test_25.py | 12 ------------ test_26.py | 12 ------------ test_27.py | 12 ------------ test_28.py | 12 ------------ test_29.py | 12 ------------ test_3.py | 12 ------------ test_30.py | 12 ------------ test_31.py | 12 ------------ test_32.py | 12 ------------ test_33.py | 12 ------------ test_34.py | 12 ------------ test_35.py | 12 ------------ test_36.py | 12 ------------ test_37.py | 12 ------------ test_38.py | 12 ------------ test_39.py | 12 ------------ test_4.py | 12 ------------ test_40.py | 12 ------------ test_41.py | 12 ------------ test_42.py | 12 ------------ test_43.py | 12 ------------ test_44.py | 12 ------------ test_45.py | 12 ------------ test_46.py | 12 ------------ test_47.py | 12 ------------ test_48.py | 12 ------------ test_49.py | 12 ------------ test_5.py | 12 ------------ test_50.py | 12 ------------ test_6.py | 12 ------------ test_7.py | 12 ------------ test_8.py | 12 ------------ test_9.py | 12 ------------ 50 files changed, 600 deletions(-) delete mode 100644 test_1.py delete mode 100644 test_10.py delete mode 100644 test_11.py delete mode 100644 test_12.py delete mode 100644 test_13.py delete mode 100644 test_14.py delete mode 100644 test_15.py delete mode 100644 test_16.py delete mode 100644 test_17.py delete mode 100644 test_18.py delete mode 100644 test_19.py delete mode 100644 test_2.py delete mode 100644 test_20.py delete mode 100644 test_21.py delete mode 100644 test_22.py delete mode 100644 test_23.py delete mode 100644 test_24.py delete mode 100644 test_25.py delete mode 100644 test_26.py delete mode 100644 test_27.py delete mode 100644 test_28.py delete mode 100644 test_29.py delete mode 100644 test_3.py delete mode 100644 test_30.py delete mode 100644 test_31.py delete mode 100644 test_32.py delete mode 100644 test_33.py delete mode 100644 test_34.py delete mode 100644 test_35.py delete mode 100644 test_36.py delete mode 100644 test_37.py delete mode 100644 test_38.py delete mode 100644 test_39.py delete mode 100644 test_4.py delete mode 100644 test_40.py delete mode 100644 test_41.py delete mode 100644 test_42.py delete mode 100644 test_43.py delete mode 100644 test_44.py delete mode 100644 test_45.py delete mode 100644 test_46.py delete mode 100644 test_47.py delete mode 100644 test_48.py delete mode 100644 test_49.py delete mode 100644 test_5.py delete mode 100644 test_50.py delete mode 100644 test_6.py delete mode 100644 test_7.py delete mode 100644 test_8.py delete mode 100644 test_9.py diff --git a/test_1.py b/test_1.py deleted file mode 100644 index 62435ef01..000000000 --- a/test_1.py +++ /dev/null @@ -1,12 +0,0 @@ -import pytest - -@pytest.mark.parametrize('key1,key2', [ - ('\U00010002abc1', 'abc\u79d8\u5bc6\u4ee3\u78011'), - ('test1_1', 'test2_1'), - ('\U00010002_1', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), -]) -def test_unicode_params_1(key1, key2): - assert len(key1) > 0 - assert len(key2) > 0 - import warnings - warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_10.py b/test_10.py deleted file mode 100644 index 6bb09f865..000000000 --- a/test_10.py +++ /dev/null @@ -1,12 +0,0 @@ -import pytest - -@pytest.mark.parametrize('key1,key2', [ - ('\U00010002abc10', 'abc\u79d8\u5bc6\u4ee3\u780110'), - ('test1_10', 'test2_10'), - ('\U00010002_10', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), -]) -def test_unicode_params_10(key1, key2): - assert len(key1) > 0 - assert len(key2) > 0 - import warnings - warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_11.py b/test_11.py deleted file mode 100644 index d738f4d27..000000000 --- a/test_11.py +++ /dev/null @@ -1,12 +0,0 @@ -import pytest - -@pytest.mark.parametrize('key1,key2', [ - ('\U00010002abc11', 'abc\u79d8\u5bc6\u4ee3\u780111'), - ('test1_11', 'test2_11'), - ('\U00010002_11', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), -]) -def test_unicode_params_11(key1, key2): - assert len(key1) > 0 - assert len(key2) > 0 - import warnings - warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_12.py b/test_12.py deleted file mode 100644 index 2db5ccf0a..000000000 --- a/test_12.py +++ /dev/null @@ -1,12 +0,0 @@ -import pytest - -@pytest.mark.parametrize('key1,key2', [ - ('\U00010002abc12', 'abc\u79d8\u5bc6\u4ee3\u780112'), - ('test1_12', 'test2_12'), - ('\U00010002_12', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), -]) -def test_unicode_params_12(key1, key2): - assert len(key1) > 0 - assert len(key2) > 0 - import warnings - warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_13.py b/test_13.py deleted file mode 100644 index 637d03f52..000000000 --- a/test_13.py +++ /dev/null @@ -1,12 +0,0 @@ -import pytest - -@pytest.mark.parametrize('key1,key2', [ - ('\U00010002abc13', 'abc\u79d8\u5bc6\u4ee3\u780113'), - ('test1_13', 'test2_13'), - ('\U00010002_13', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), -]) -def test_unicode_params_13(key1, key2): - assert len(key1) > 0 - assert len(key2) > 0 - import warnings - warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_14.py b/test_14.py deleted file mode 100644 index 728c72995..000000000 --- a/test_14.py +++ /dev/null @@ -1,12 +0,0 @@ -import pytest - -@pytest.mark.parametrize('key1,key2', [ - ('\U00010002abc14', 'abc\u79d8\u5bc6\u4ee3\u780114'), - ('test1_14', 'test2_14'), - ('\U00010002_14', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), -]) -def test_unicode_params_14(key1, key2): - assert len(key1) > 0 - assert len(key2) > 0 - import warnings - warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_15.py b/test_15.py deleted file mode 100644 index 1bb605abf..000000000 --- a/test_15.py +++ /dev/null @@ -1,12 +0,0 @@ -import pytest - -@pytest.mark.parametrize('key1,key2', [ - ('\U00010002abc15', 'abc\u79d8\u5bc6\u4ee3\u780115'), - ('test1_15', 'test2_15'), - ('\U00010002_15', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), -]) -def test_unicode_params_15(key1, key2): - assert len(key1) > 0 - assert len(key2) > 0 - import warnings - warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_16.py b/test_16.py deleted file mode 100644 index ef4d56466..000000000 --- a/test_16.py +++ /dev/null @@ -1,12 +0,0 @@ -import pytest - -@pytest.mark.parametrize('key1,key2', [ - ('\U00010002abc16', 'abc\u79d8\u5bc6\u4ee3\u780116'), - ('test1_16', 'test2_16'), - ('\U00010002_16', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), -]) -def test_unicode_params_16(key1, key2): - assert len(key1) > 0 - assert len(key2) > 0 - import warnings - warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_17.py b/test_17.py deleted file mode 100644 index fb5b37081..000000000 --- a/test_17.py +++ /dev/null @@ -1,12 +0,0 @@ -import pytest - -@pytest.mark.parametrize('key1,key2', [ - ('\U00010002abc17', 'abc\u79d8\u5bc6\u4ee3\u780117'), - ('test1_17', 'test2_17'), - ('\U00010002_17', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), -]) -def test_unicode_params_17(key1, key2): - assert len(key1) > 0 - assert len(key2) > 0 - import warnings - warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_18.py b/test_18.py deleted file mode 100644 index 8b2f4d295..000000000 --- a/test_18.py +++ /dev/null @@ -1,12 +0,0 @@ -import pytest - -@pytest.mark.parametrize('key1,key2', [ - ('\U00010002abc18', 'abc\u79d8\u5bc6\u4ee3\u780118'), - ('test1_18', 'test2_18'), - ('\U00010002_18', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), -]) -def test_unicode_params_18(key1, key2): - assert len(key1) > 0 - assert len(key2) > 0 - import warnings - warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_19.py b/test_19.py deleted file mode 100644 index c8bf200c6..000000000 --- a/test_19.py +++ /dev/null @@ -1,12 +0,0 @@ -import pytest - -@pytest.mark.parametrize('key1,key2', [ - ('\U00010002abc19', 'abc\u79d8\u5bc6\u4ee3\u780119'), - ('test1_19', 'test2_19'), - ('\U00010002_19', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), -]) -def test_unicode_params_19(key1, key2): - assert len(key1) > 0 - assert len(key2) > 0 - import warnings - warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_2.py b/test_2.py deleted file mode 100644 index c00e8932e..000000000 --- a/test_2.py +++ /dev/null @@ -1,12 +0,0 @@ -import pytest - -@pytest.mark.parametrize('key1,key2', [ - ('\U00010002abc2', 'abc\u79d8\u5bc6\u4ee3\u78012'), - ('test1_2', 'test2_2'), - ('\U00010002_2', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), -]) -def test_unicode_params_2(key1, key2): - assert len(key1) > 0 - assert len(key2) > 0 - import warnings - warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_20.py b/test_20.py deleted file mode 100644 index 8619653ac..000000000 --- a/test_20.py +++ /dev/null @@ -1,12 +0,0 @@ -import pytest - -@pytest.mark.parametrize('key1,key2', [ - ('\U00010002abc20', 'abc\u79d8\u5bc6\u4ee3\u780120'), - ('test1_20', 'test2_20'), - ('\U00010002_20', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), -]) -def test_unicode_params_20(key1, key2): - assert len(key1) > 0 - assert len(key2) > 0 - import warnings - warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_21.py b/test_21.py deleted file mode 100644 index 9edef2dd8..000000000 --- a/test_21.py +++ /dev/null @@ -1,12 +0,0 @@ -import pytest - -@pytest.mark.parametrize('key1,key2', [ - ('\U00010002abc21', 'abc\u79d8\u5bc6\u4ee3\u780121'), - ('test1_21', 'test2_21'), - ('\U00010002_21', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), -]) -def test_unicode_params_21(key1, key2): - assert len(key1) > 0 - assert len(key2) > 0 - import warnings - warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_22.py b/test_22.py deleted file mode 100644 index db604a933..000000000 --- a/test_22.py +++ /dev/null @@ -1,12 +0,0 @@ -import pytest - -@pytest.mark.parametrize('key1,key2', [ - ('\U00010002abc22', 'abc\u79d8\u5bc6\u4ee3\u780122'), - ('test1_22', 'test2_22'), - ('\U00010002_22', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), -]) -def test_unicode_params_22(key1, key2): - assert len(key1) > 0 - assert len(key2) > 0 - import warnings - warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_23.py b/test_23.py deleted file mode 100644 index fef3e2f79..000000000 --- a/test_23.py +++ /dev/null @@ -1,12 +0,0 @@ -import pytest - -@pytest.mark.parametrize('key1,key2', [ - ('\U00010002abc23', 'abc\u79d8\u5bc6\u4ee3\u780123'), - ('test1_23', 'test2_23'), - ('\U00010002_23', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), -]) -def test_unicode_params_23(key1, key2): - assert len(key1) > 0 - assert len(key2) > 0 - import warnings - warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_24.py b/test_24.py deleted file mode 100644 index 7cadbf39e..000000000 --- a/test_24.py +++ /dev/null @@ -1,12 +0,0 @@ -import pytest - -@pytest.mark.parametrize('key1,key2', [ - ('\U00010002abc24', 'abc\u79d8\u5bc6\u4ee3\u780124'), - ('test1_24', 'test2_24'), - ('\U00010002_24', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), -]) -def test_unicode_params_24(key1, key2): - assert len(key1) > 0 - assert len(key2) > 0 - import warnings - warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_25.py b/test_25.py deleted file mode 100644 index 77044403f..000000000 --- a/test_25.py +++ /dev/null @@ -1,12 +0,0 @@ -import pytest - -@pytest.mark.parametrize('key1,key2', [ - ('\U00010002abc25', 'abc\u79d8\u5bc6\u4ee3\u780125'), - ('test1_25', 'test2_25'), - ('\U00010002_25', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), -]) -def test_unicode_params_25(key1, key2): - assert len(key1) > 0 - assert len(key2) > 0 - import warnings - warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_26.py b/test_26.py deleted file mode 100644 index 518d8a4a4..000000000 --- a/test_26.py +++ /dev/null @@ -1,12 +0,0 @@ -import pytest - -@pytest.mark.parametrize('key1,key2', [ - ('\U00010002abc26', 'abc\u79d8\u5bc6\u4ee3\u780126'), - ('test1_26', 'test2_26'), - ('\U00010002_26', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), -]) -def test_unicode_params_26(key1, key2): - assert len(key1) > 0 - assert len(key2) > 0 - import warnings - warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_27.py b/test_27.py deleted file mode 100644 index 6d9cf43dc..000000000 --- a/test_27.py +++ /dev/null @@ -1,12 +0,0 @@ -import pytest - -@pytest.mark.parametrize('key1,key2', [ - ('\U00010002abc27', 'abc\u79d8\u5bc6\u4ee3\u780127'), - ('test1_27', 'test2_27'), - ('\U00010002_27', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), -]) -def test_unicode_params_27(key1, key2): - assert len(key1) > 0 - assert len(key2) > 0 - import warnings - warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_28.py b/test_28.py deleted file mode 100644 index 26d3534a9..000000000 --- a/test_28.py +++ /dev/null @@ -1,12 +0,0 @@ -import pytest - -@pytest.mark.parametrize('key1,key2', [ - ('\U00010002abc28', 'abc\u79d8\u5bc6\u4ee3\u780128'), - ('test1_28', 'test2_28'), - ('\U00010002_28', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), -]) -def test_unicode_params_28(key1, key2): - assert len(key1) > 0 - assert len(key2) > 0 - import warnings - warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_29.py b/test_29.py deleted file mode 100644 index 36cc3ebb6..000000000 --- a/test_29.py +++ /dev/null @@ -1,12 +0,0 @@ -import pytest - -@pytest.mark.parametrize('key1,key2', [ - ('\U00010002abc29', 'abc\u79d8\u5bc6\u4ee3\u780129'), - ('test1_29', 'test2_29'), - ('\U00010002_29', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), -]) -def test_unicode_params_29(key1, key2): - assert len(key1) > 0 - assert len(key2) > 0 - import warnings - warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_3.py b/test_3.py deleted file mode 100644 index cb755cec6..000000000 --- a/test_3.py +++ /dev/null @@ -1,12 +0,0 @@ -import pytest - -@pytest.mark.parametrize('key1,key2', [ - ('\U00010002abc3', 'abc\u79d8\u5bc6\u4ee3\u78013'), - ('test1_3', 'test2_3'), - ('\U00010002_3', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), -]) -def test_unicode_params_3(key1, key2): - assert len(key1) > 0 - assert len(key2) > 0 - import warnings - warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_30.py b/test_30.py deleted file mode 100644 index 88254f419..000000000 --- a/test_30.py +++ /dev/null @@ -1,12 +0,0 @@ -import pytest - -@pytest.mark.parametrize('key1,key2', [ - ('\U00010002abc30', 'abc\u79d8\u5bc6\u4ee3\u780130'), - ('test1_30', 'test2_30'), - ('\U00010002_30', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), -]) -def test_unicode_params_30(key1, key2): - assert len(key1) > 0 - assert len(key2) > 0 - import warnings - warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_31.py b/test_31.py deleted file mode 100644 index cbeae215a..000000000 --- a/test_31.py +++ /dev/null @@ -1,12 +0,0 @@ -import pytest - -@pytest.mark.parametrize('key1,key2', [ - ('\U00010002abc31', 'abc\u79d8\u5bc6\u4ee3\u780131'), - ('test1_31', 'test2_31'), - ('\U00010002_31', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), -]) -def test_unicode_params_31(key1, key2): - assert len(key1) > 0 - assert len(key2) > 0 - import warnings - warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_32.py b/test_32.py deleted file mode 100644 index 8ab41d3fb..000000000 --- a/test_32.py +++ /dev/null @@ -1,12 +0,0 @@ -import pytest - -@pytest.mark.parametrize('key1,key2', [ - ('\U00010002abc32', 'abc\u79d8\u5bc6\u4ee3\u780132'), - ('test1_32', 'test2_32'), - ('\U00010002_32', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), -]) -def test_unicode_params_32(key1, key2): - assert len(key1) > 0 - assert len(key2) > 0 - import warnings - warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_33.py b/test_33.py deleted file mode 100644 index e1fa10560..000000000 --- a/test_33.py +++ /dev/null @@ -1,12 +0,0 @@ -import pytest - -@pytest.mark.parametrize('key1,key2', [ - ('\U00010002abc33', 'abc\u79d8\u5bc6\u4ee3\u780133'), - ('test1_33', 'test2_33'), - ('\U00010002_33', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), -]) -def test_unicode_params_33(key1, key2): - assert len(key1) > 0 - assert len(key2) > 0 - import warnings - warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_34.py b/test_34.py deleted file mode 100644 index d1cad5eef..000000000 --- a/test_34.py +++ /dev/null @@ -1,12 +0,0 @@ -import pytest - -@pytest.mark.parametrize('key1,key2', [ - ('\U00010002abc34', 'abc\u79d8\u5bc6\u4ee3\u780134'), - ('test1_34', 'test2_34'), - ('\U00010002_34', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), -]) -def test_unicode_params_34(key1, key2): - assert len(key1) > 0 - assert len(key2) > 0 - import warnings - warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_35.py b/test_35.py deleted file mode 100644 index b93c5cc10..000000000 --- a/test_35.py +++ /dev/null @@ -1,12 +0,0 @@ -import pytest - -@pytest.mark.parametrize('key1,key2', [ - ('\U00010002abc35', 'abc\u79d8\u5bc6\u4ee3\u780135'), - ('test1_35', 'test2_35'), - ('\U00010002_35', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), -]) -def test_unicode_params_35(key1, key2): - assert len(key1) > 0 - assert len(key2) > 0 - import warnings - warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_36.py b/test_36.py deleted file mode 100644 index 47d326336..000000000 --- a/test_36.py +++ /dev/null @@ -1,12 +0,0 @@ -import pytest - -@pytest.mark.parametrize('key1,key2', [ - ('\U00010002abc36', 'abc\u79d8\u5bc6\u4ee3\u780136'), - ('test1_36', 'test2_36'), - ('\U00010002_36', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), -]) -def test_unicode_params_36(key1, key2): - assert len(key1) > 0 - assert len(key2) > 0 - import warnings - warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_37.py b/test_37.py deleted file mode 100644 index 12bc9a94d..000000000 --- a/test_37.py +++ /dev/null @@ -1,12 +0,0 @@ -import pytest - -@pytest.mark.parametrize('key1,key2', [ - ('\U00010002abc37', 'abc\u79d8\u5bc6\u4ee3\u780137'), - ('test1_37', 'test2_37'), - ('\U00010002_37', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), -]) -def test_unicode_params_37(key1, key2): - assert len(key1) > 0 - assert len(key2) > 0 - import warnings - warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_38.py b/test_38.py deleted file mode 100644 index 2d68ecd1a..000000000 --- a/test_38.py +++ /dev/null @@ -1,12 +0,0 @@ -import pytest - -@pytest.mark.parametrize('key1,key2', [ - ('\U00010002abc38', 'abc\u79d8\u5bc6\u4ee3\u780138'), - ('test1_38', 'test2_38'), - ('\U00010002_38', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), -]) -def test_unicode_params_38(key1, key2): - assert len(key1) > 0 - assert len(key2) > 0 - import warnings - warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_39.py b/test_39.py deleted file mode 100644 index d7143b265..000000000 --- a/test_39.py +++ /dev/null @@ -1,12 +0,0 @@ -import pytest - -@pytest.mark.parametrize('key1,key2', [ - ('\U00010002abc39', 'abc\u79d8\u5bc6\u4ee3\u780139'), - ('test1_39', 'test2_39'), - ('\U00010002_39', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), -]) -def test_unicode_params_39(key1, key2): - assert len(key1) > 0 - assert len(key2) > 0 - import warnings - warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_4.py b/test_4.py deleted file mode 100644 index 9f22f4b2f..000000000 --- a/test_4.py +++ /dev/null @@ -1,12 +0,0 @@ -import pytest - -@pytest.mark.parametrize('key1,key2', [ - ('\U00010002abc4', 'abc\u79d8\u5bc6\u4ee3\u78014'), - ('test1_4', 'test2_4'), - ('\U00010002_4', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), -]) -def test_unicode_params_4(key1, key2): - assert len(key1) > 0 - assert len(key2) > 0 - import warnings - warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_40.py b/test_40.py deleted file mode 100644 index 0fb11f724..000000000 --- a/test_40.py +++ /dev/null @@ -1,12 +0,0 @@ -import pytest - -@pytest.mark.parametrize('key1,key2', [ - ('\U00010002abc40', 'abc\u79d8\u5bc6\u4ee3\u780140'), - ('test1_40', 'test2_40'), - ('\U00010002_40', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), -]) -def test_unicode_params_40(key1, key2): - assert len(key1) > 0 - assert len(key2) > 0 - import warnings - warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_41.py b/test_41.py deleted file mode 100644 index c71bfe8ad..000000000 --- a/test_41.py +++ /dev/null @@ -1,12 +0,0 @@ -import pytest - -@pytest.mark.parametrize('key1,key2', [ - ('\U00010002abc41', 'abc\u79d8\u5bc6\u4ee3\u780141'), - ('test1_41', 'test2_41'), - ('\U00010002_41', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), -]) -def test_unicode_params_41(key1, key2): - assert len(key1) > 0 - assert len(key2) > 0 - import warnings - warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_42.py b/test_42.py deleted file mode 100644 index 8a65dddbd..000000000 --- a/test_42.py +++ /dev/null @@ -1,12 +0,0 @@ -import pytest - -@pytest.mark.parametrize('key1,key2', [ - ('\U00010002abc42', 'abc\u79d8\u5bc6\u4ee3\u780142'), - ('test1_42', 'test2_42'), - ('\U00010002_42', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), -]) -def test_unicode_params_42(key1, key2): - assert len(key1) > 0 - assert len(key2) > 0 - import warnings - warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_43.py b/test_43.py deleted file mode 100644 index ea3422fc0..000000000 --- a/test_43.py +++ /dev/null @@ -1,12 +0,0 @@ -import pytest - -@pytest.mark.parametrize('key1,key2', [ - ('\U00010002abc43', 'abc\u79d8\u5bc6\u4ee3\u780143'), - ('test1_43', 'test2_43'), - ('\U00010002_43', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), -]) -def test_unicode_params_43(key1, key2): - assert len(key1) > 0 - assert len(key2) > 0 - import warnings - warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_44.py b/test_44.py deleted file mode 100644 index a41fc1143..000000000 --- a/test_44.py +++ /dev/null @@ -1,12 +0,0 @@ -import pytest - -@pytest.mark.parametrize('key1,key2', [ - ('\U00010002abc44', 'abc\u79d8\u5bc6\u4ee3\u780144'), - ('test1_44', 'test2_44'), - ('\U00010002_44', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), -]) -def test_unicode_params_44(key1, key2): - assert len(key1) > 0 - assert len(key2) > 0 - import warnings - warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_45.py b/test_45.py deleted file mode 100644 index 608883dcd..000000000 --- a/test_45.py +++ /dev/null @@ -1,12 +0,0 @@ -import pytest - -@pytest.mark.parametrize('key1,key2', [ - ('\U00010002abc45', 'abc\u79d8\u5bc6\u4ee3\u780145'), - ('test1_45', 'test2_45'), - ('\U00010002_45', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), -]) -def test_unicode_params_45(key1, key2): - assert len(key1) > 0 - assert len(key2) > 0 - import warnings - warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_46.py b/test_46.py deleted file mode 100644 index 2b70f4a88..000000000 --- a/test_46.py +++ /dev/null @@ -1,12 +0,0 @@ -import pytest - -@pytest.mark.parametrize('key1,key2', [ - ('\U00010002abc46', 'abc\u79d8\u5bc6\u4ee3\u780146'), - ('test1_46', 'test2_46'), - ('\U00010002_46', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), -]) -def test_unicode_params_46(key1, key2): - assert len(key1) > 0 - assert len(key2) > 0 - import warnings - warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_47.py b/test_47.py deleted file mode 100644 index 4b239b467..000000000 --- a/test_47.py +++ /dev/null @@ -1,12 +0,0 @@ -import pytest - -@pytest.mark.parametrize('key1,key2', [ - ('\U00010002abc47', 'abc\u79d8\u5bc6\u4ee3\u780147'), - ('test1_47', 'test2_47'), - ('\U00010002_47', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), -]) -def test_unicode_params_47(key1, key2): - assert len(key1) > 0 - assert len(key2) > 0 - import warnings - warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_48.py b/test_48.py deleted file mode 100644 index bb12bf69d..000000000 --- a/test_48.py +++ /dev/null @@ -1,12 +0,0 @@ -import pytest - -@pytest.mark.parametrize('key1,key2', [ - ('\U00010002abc48', 'abc\u79d8\u5bc6\u4ee3\u780148'), - ('test1_48', 'test2_48'), - ('\U00010002_48', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), -]) -def test_unicode_params_48(key1, key2): - assert len(key1) > 0 - assert len(key2) > 0 - import warnings - warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_49.py b/test_49.py deleted file mode 100644 index 6c73793a5..000000000 --- a/test_49.py +++ /dev/null @@ -1,12 +0,0 @@ -import pytest - -@pytest.mark.parametrize('key1,key2', [ - ('\U00010002abc49', 'abc\u79d8\u5bc6\u4ee3\u780149'), - ('test1_49', 'test2_49'), - ('\U00010002_49', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), -]) -def test_unicode_params_49(key1, key2): - assert len(key1) > 0 - assert len(key2) > 0 - import warnings - warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_5.py b/test_5.py deleted file mode 100644 index d5779dd61..000000000 --- a/test_5.py +++ /dev/null @@ -1,12 +0,0 @@ -import pytest - -@pytest.mark.parametrize('key1,key2', [ - ('\U00010002abc5', 'abc\u79d8\u5bc6\u4ee3\u78015'), - ('test1_5', 'test2_5'), - ('\U00010002_5', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), -]) -def test_unicode_params_5(key1, key2): - assert len(key1) > 0 - assert len(key2) > 0 - import warnings - warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_50.py b/test_50.py deleted file mode 100644 index b18459cc0..000000000 --- a/test_50.py +++ /dev/null @@ -1,12 +0,0 @@ -import pytest - -@pytest.mark.parametrize('key1,key2', [ - ('\U00010002abc50', 'abc\u79d8\u5bc6\u4ee3\u780150'), - ('test1_50', 'test2_50'), - ('\U00010002_50', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), -]) -def test_unicode_params_50(key1, key2): - assert len(key1) > 0 - assert len(key2) > 0 - import warnings - warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_6.py b/test_6.py deleted file mode 100644 index ba4fb5b50..000000000 --- a/test_6.py +++ /dev/null @@ -1,12 +0,0 @@ -import pytest - -@pytest.mark.parametrize('key1,key2', [ - ('\U00010002abc6', 'abc\u79d8\u5bc6\u4ee3\u78016'), - ('test1_6', 'test2_6'), - ('\U00010002_6', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), -]) -def test_unicode_params_6(key1, key2): - assert len(key1) > 0 - assert len(key2) > 0 - import warnings - warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_7.py b/test_7.py deleted file mode 100644 index 564170772..000000000 --- a/test_7.py +++ /dev/null @@ -1,12 +0,0 @@ -import pytest - -@pytest.mark.parametrize('key1,key2', [ - ('\U00010002abc7', 'abc\u79d8\u5bc6\u4ee3\u78017'), - ('test1_7', 'test2_7'), - ('\U00010002_7', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), -]) -def test_unicode_params_7(key1, key2): - assert len(key1) > 0 - assert len(key2) > 0 - import warnings - warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_8.py b/test_8.py deleted file mode 100644 index b72c46757..000000000 --- a/test_8.py +++ /dev/null @@ -1,12 +0,0 @@ -import pytest - -@pytest.mark.parametrize('key1,key2', [ - ('\U00010002abc8', 'abc\u79d8\u5bc6\u4ee3\u78018'), - ('test1_8', 'test2_8'), - ('\U00010002_8', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), -]) -def test_unicode_params_8(key1, key2): - assert len(key1) > 0 - assert len(key2) > 0 - import warnings - warnings.warn(f'Test warning {key1} {key2}') diff --git a/test_9.py b/test_9.py deleted file mode 100644 index 05fcf045e..000000000 --- a/test_9.py +++ /dev/null @@ -1,12 +0,0 @@ -import pytest - -@pytest.mark.parametrize('key1,key2', [ - ('\U00010002abc9', 'abc\u79d8\u5bc6\u4ee3\u78019'), - ('test1_9', 'test2_9'), - ('\U00010002_9', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), -]) -def test_unicode_params_9(key1, key2): - assert len(key1) > 0 - assert len(key2) > 0 - import warnings - warnings.warn(f'Test warning {key1} {key2}') From 52a21157d9d62d623e40517f025be715b9d205e4 Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Tue, 13 Jan 2026 17:17:50 -0800 Subject: [PATCH 47/70] m --- .github/workflows/reproduce_bug.yaml | 32 ++++++++-------------------- 1 file changed, 9 insertions(+), 23 deletions(-) diff --git a/.github/workflows/reproduce_bug.yaml b/.github/workflows/reproduce_bug.yaml index e30d1c403..c4d89ce8c 100644 --- a/.github/workflows/reproduce_bug.yaml +++ b/.github/workflows/reproduce_bug.yaml @@ -16,29 +16,15 @@ jobs: with: python-version: "3.14" architecture: x86 - - - name: Create multiple test files + + - name: Install dependencies run: | - # Create 50 test files with Unicode parameters - for ($i=1; $i -le 500; $i++) { - @" - import pytest - - @pytest.mark.parametrize('key1,key2', [ - ('\U00010002abc$i', 'abc\u79d8\u5bc6\u4ee3\u7801$i'), - ('test1_$i', 'test2_$i'), - ('\U00010002_$i', '\u79d8\u5bc6\u4ee3\u7801-abc\U00010002-\U00010002abc\u79d8\u5bc6\u4ee3\u7801123\U00010002-\u79d8\u5bc6\u4ee3\u7801abc\U00010002'), - ]) - def test_unicode_params_$i(key1, key2): - assert len(key1) > 0 - assert len(key2) > 0 - import warnings - warnings.warn(f'Test warning {key1} {key2}') - "@ | Out-File -FilePath "test_$i.py" -Encoding utf8 - } + python -m pip install --upgrade pip + pip install --upgrade -r dev_requirements/ci-requirements.txt + + - name: Run actual failing test + env: + TOXENV: local + run: tox -- --tb=short test/unit/test_serialize.py::TestSerialize::test_GIVEN_two_distinct_valid_encrypted_data_keys_WHEN_serialize_encrypted_data_keys_THEN_deserialize_equals_inputs -vv - - name: Install pytest - run: pip install pytest==8.0.0 - - name: Run all test files - run: pytest (Get-ChildItem test_*.py).Name -vv From 1d0fe14a2d9d9a10934048d69b8c98ac241608e6 Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Tue, 13 Jan 2026 17:22:32 -0800 Subject: [PATCH 48/70] m --- .github/workflows/reproduce_bug.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/reproduce_bug.yaml b/.github/workflows/reproduce_bug.yaml index c4d89ce8c..d0f31cbb8 100644 --- a/.github/workflows/reproduce_bug.yaml +++ b/.github/workflows/reproduce_bug.yaml @@ -22,9 +22,9 @@ jobs: python -m pip install --upgrade pip pip install --upgrade -r dev_requirements/ci-requirements.txt - - name: Run actual failing test + - name: Run single parametrized test case env: TOXENV: local - run: tox -- --tb=short test/unit/test_serialize.py::TestSerialize::test_GIVEN_two_distinct_valid_encrypted_data_keys_WHEN_serialize_encrypted_data_keys_THEN_deserialize_equals_inputs -vv + run: tox -- --tb=short "test/unit/test_serialize.py::TestSerialize::test_GIVEN_two_distinct_valid_encrypted_data_keys_WHEN_serialize_encrypted_data_keys_THEN_deserialize_equals_inputs[\U00010002abc--\U00010002-]" -vv From ac0eb041a54c8dec69601ae35edf5329ad884e62 Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Tue, 13 Jan 2026 17:22:43 -0800 Subject: [PATCH 49/70] m --- .github/workflows/reproduce_bug.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/reproduce_bug.yaml b/.github/workflows/reproduce_bug.yaml index d0f31cbb8..103b36312 100644 --- a/.github/workflows/reproduce_bug.yaml +++ b/.github/workflows/reproduce_bug.yaml @@ -25,6 +25,6 @@ jobs: - name: Run single parametrized test case env: TOXENV: local - run: tox -- --tb=short "test/unit/test_serialize.py::TestSerialize::test_GIVEN_two_distinct_valid_encrypted_data_keys_WHEN_serialize_encrypted_data_keys_THEN_deserialize_equals_inputs[\U00010002abc--\U00010002-]" -vv + run: tox -- --tb=short -n 1 test/unit/test_serialize.py::TestSerialize::test_GIVEN_two_distinct_valid_encrypted_data_keys_WHEN_serialize_encrypted_data_keys_THEN_deserialize_equals_inputs -vv From f0e81610a57134943938c0999db20c929a3cc47a Mon Sep 17 00:00:00 2001 From: Rishav karanjit Date: Tue, 13 Jan 2026 18:19:49 -0800 Subject: [PATCH 50/70] Update reproduce_bug.yaml --- .github/workflows/reproduce_bug.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/reproduce_bug.yaml b/.github/workflows/reproduce_bug.yaml index 103b36312..c6ef1cf97 100644 --- a/.github/workflows/reproduce_bug.yaml +++ b/.github/workflows/reproduce_bug.yaml @@ -25,6 +25,6 @@ jobs: - name: Run single parametrized test case env: TOXENV: local - run: tox -- --tb=short -n 1 test/unit/test_serialize.py::TestSerialize::test_GIVEN_two_distinct_valid_encrypted_data_keys_WHEN_serialize_encrypted_data_keys_THEN_deserialize_equals_inputs -vv + run: tox -- --tb=short test/unit/test_serialize.py::TestSerialize::test_GIVEN_two_distinct_valid_encrypted_data_keys_WHEN_serialize_encrypted_data_keys_THEN_deserialize_equals_inputs -vv From 8eef63615666ef1959bda0c44160af4954d0e3a7 Mon Sep 17 00:00:00 2001 From: Rishav karanjit Date: Tue, 13 Jan 2026 18:23:57 -0800 Subject: [PATCH 51/70] Update test_serialize.py --- test/unit/test_serialize.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/unit/test_serialize.py b/test/unit/test_serialize.py index 1df4d1bd7..a586b1148 100644 --- a/test/unit/test_serialize.py +++ b/test/unit/test_serialize.py @@ -19,7 +19,7 @@ pytestmark = [pytest.mark.unit, pytest.mark.local] -provider_input_strings = ["", "abc", "𐀂", "abc𐀂", "𐀂abc", "秘密代码", "abc秘密代码", "秘密代码abc", "秘密代码abc𐀂", "𐀂abc秘密代码123𐀂"] +provider_input_strings = [ "𐀂abc秘密代码123𐀂"] @pytest.mark.parametrize( From 0ffc4d9d1d92f8b068956f4330b2514497fffc3a Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Wed, 14 Jan 2026 09:49:14 -0800 Subject: [PATCH 52/70] Revert "Update test_serialize.py" This reverts commit 8eef63615666ef1959bda0c44160af4954d0e3a7. --- test/unit/test_serialize.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/unit/test_serialize.py b/test/unit/test_serialize.py index a586b1148..1df4d1bd7 100644 --- a/test/unit/test_serialize.py +++ b/test/unit/test_serialize.py @@ -19,7 +19,7 @@ pytestmark = [pytest.mark.unit, pytest.mark.local] -provider_input_strings = [ "𐀂abc秘密代码123𐀂"] +provider_input_strings = ["", "abc", "𐀂", "abc𐀂", "𐀂abc", "秘密代码", "abc秘密代码", "秘密代码abc", "秘密代码abc𐀂", "𐀂abc秘密代码123𐀂"] @pytest.mark.parametrize( From 4f796d6769b2256b2aec2ab431ff2903b289c580 Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Wed, 14 Jan 2026 10:12:19 -0800 Subject: [PATCH 53/70] m --- test/unit/test_serialize.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/unit/test_serialize.py b/test/unit/test_serialize.py index 1df4d1bd7..debe7ced5 100644 --- a/test/unit/test_serialize.py +++ b/test/unit/test_serialize.py @@ -19,7 +19,7 @@ pytestmark = [pytest.mark.unit, pytest.mark.local] -provider_input_strings = ["", "abc", "𐀂", "abc𐀂", "𐀂abc", "秘密代码", "abc秘密代码", "秘密代码abc", "秘密代码abc𐀂", "𐀂abc秘密代码123𐀂"] +provider_input_strings = ["abc秘密代码", "秘密代码abc", "秘密代码abc𐀂", "𐀂abc秘密代码123𐀂"] @pytest.mark.parametrize( From cc04401f77db120a954d34be19f700c7f7552e61 Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Wed, 14 Jan 2026 10:32:34 -0800 Subject: [PATCH 54/70] Change to batch --- test/unit/test_serialize.py | 61 +++++++++++++++++++++++++++++++++---- 1 file changed, 55 insertions(+), 6 deletions(-) diff --git a/test/unit/test_serialize.py b/test/unit/test_serialize.py index debe7ced5..4499f20ad 100644 --- a/test/unit/test_serialize.py +++ b/test/unit/test_serialize.py @@ -19,7 +19,10 @@ pytestmark = [pytest.mark.unit, pytest.mark.local] -provider_input_strings = ["abc秘密代码", "秘密代码abc", "秘密代码abc𐀂", "𐀂abc秘密代码123𐀂"] +provider_input_strings = ["", "abc", "𐀂", "abc𐀂", "𐀂abc", "秘密代码", "abc秘密代码", "秘密代码abc", "秘密代码abc𐀂", "𐀂abc秘密代码123𐀂"] + +provider_input_strings_batch1 = ["", "abc", "𐀂", "abc𐀂", "𐀂abc"] +provider_input_strings_batch2 = ["秘密代码", "abc秘密代码", "秘密代码abc", "秘密代码abc𐀂", "𐀂abc秘密代码123𐀂"] @pytest.mark.parametrize( @@ -121,16 +124,62 @@ def test_GIVEN_valid_encrypted_data_key_WHEN_serialize_encrypted_data_key_THEN_d assert deserialized_edk.key_provider.key_info == encrypted_data_key.key_provider.key_info assert deserialized_edk.encrypted_data_key == encrypted_data_key.encrypted_data_key - @pytest.mark.parametrize("edk_1_provider_id", provider_input_strings) - @pytest.mark.parametrize("edk_1_provider_info", provider_input_strings) - @pytest.mark.parametrize("edk_2_provider_id", provider_input_strings) - @pytest.mark.parametrize("edk_2_provider_info", provider_input_strings) - def test_GIVEN_two_distinct_valid_encrypted_data_keys_WHEN_serialize_encrypted_data_keys_THEN_deserialize_equals_inputs( # noqa pylint: disable=line-too-long + @pytest.mark.parametrize("edk_1_provider_id", provider_input_strings_batch1) + @pytest.mark.parametrize("edk_1_provider_info", provider_input_strings_batch1) + @pytest.mark.parametrize("edk_2_provider_id", provider_input_strings_batch1) + @pytest.mark.parametrize("edk_2_provider_info", provider_input_strings_batch1) + def test_GIVEN_two_distinct_valid_encrypted_data_keys_WHEN_serialize_encrypted_data_keys_THEN_deserialize_equals_inputs_batch1( + self, + edk_1_provider_id, + edk_1_provider_info, + edk_2_provider_id, + edk_2_provider_info, + ): + self.test_GIVEN_two_distinct_valid_encrypted_data_keys_WHEN_serialize_encrypted_data_keys_THEN_deserialize_equals_inputs( + edk_1_provider_id, + edk_1_provider_info, + edk_2_provider_id, + edk_2_provider_info) + + @pytest.mark.parametrize("edk_1_provider_id", provider_input_strings_batch2) + @pytest.mark.parametrize("edk_1_provider_info", provider_input_strings_batch2) + @pytest.mark.parametrize("edk_2_provider_id", provider_input_strings_batch2) + @pytest.mark.parametrize("edk_2_provider_info", provider_input_strings_batch2) + def test_GIVEN_two_distinct_valid_encrypted_data_keys_WHEN_serialize_encrypted_data_keys_THEN_deserialize_equals_inputs_batch2( self, edk_1_provider_id, edk_1_provider_info, edk_2_provider_id, edk_2_provider_info, + ): + self.test_GIVEN_two_distinct_valid_encrypted_data_keys_WHEN_serialize_encrypted_data_keys_THEN_deserialize_equals_inputs( + edk_1_provider_id, + edk_1_provider_info, + edk_2_provider_id, + edk_2_provider_info) + + @pytest.mark.parametrize("edk_1_provider_id", provider_input_strings_batch1) + @pytest.mark.parametrize("edk_1_provider_info", provider_input_strings_batch1) + @pytest.mark.parametrize("edk_2_provider_id", provider_input_strings_batch2) + @pytest.mark.parametrize("edk_2_provider_info", provider_input_strings_batch2) + def test_GIVEN_two_distinct_valid_encrypted_data_keys_WHEN_serialize_encrypted_data_keys_THEN_deserialize_equals_inputs_batch3( + self, + edk_1_provider_id, + edk_1_provider_info, + edk_2_provider_id, + edk_2_provider_info, + ): + self.test_GIVEN_two_distinct_valid_encrypted_data_keys_WHEN_serialize_encrypted_data_keys_THEN_deserialize_equals_inputs( + edk_1_provider_id, + edk_1_provider_info, + edk_2_provider_id, + edk_2_provider_info) + + def test_GIVEN_two_distinct_valid_encrypted_data_keys_WHEN_serialize_encrypted_data_keys_THEN_deserialize_equals_inputs( # noqa pylint: disable=line-too-long + edk_1_provider_id, + edk_1_provider_info, + edk_2_provider_id, + edk_2_provider_info, ): # pylint: disable=too-many-locals # Given: Two distinct valid encrypted data keys From 63ab15e91a068d8efcf7cb7f4f65bf922ddea915 Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Wed, 14 Jan 2026 10:32:40 -0800 Subject: [PATCH 55/70] m --- .github/workflows/reproduce_bug.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/reproduce_bug.yaml b/.github/workflows/reproduce_bug.yaml index c6ef1cf97..13a14a345 100644 --- a/.github/workflows/reproduce_bug.yaml +++ b/.github/workflows/reproduce_bug.yaml @@ -25,6 +25,6 @@ jobs: - name: Run single parametrized test case env: TOXENV: local - run: tox -- --tb=short test/unit/test_serialize.py::TestSerialize::test_GIVEN_two_distinct_valid_encrypted_data_keys_WHEN_serialize_encrypted_data_keys_THEN_deserialize_equals_inputs -vv + run: tox -- --tb=short test/unit/test_serialize.py::TestSerialize::test_GIVEN_two_distinct_valid_encrypted_data_keys_WHEN_serialize_encrypted_data_keys_THEN_deserialize_equals_inputs_batch1 -vv From 7bddad2fd32c641a746d2ebf52e0125c25596d4e Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Wed, 14 Jan 2026 10:37:13 -0800 Subject: [PATCH 56/70] m --- test/unit/test_serialize.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/unit/test_serialize.py b/test/unit/test_serialize.py index 4499f20ad..2541b7e84 100644 --- a/test/unit/test_serialize.py +++ b/test/unit/test_serialize.py @@ -175,7 +175,8 @@ def test_GIVEN_two_distinct_valid_encrypted_data_keys_WHEN_serialize_encrypted_d edk_2_provider_id, edk_2_provider_info) - def test_GIVEN_two_distinct_valid_encrypted_data_keys_WHEN_serialize_encrypted_data_keys_THEN_deserialize_equals_inputs( # noqa pylint: disable=line-too-long + def test_GIVEN_two_distinct_valid_encrypted_data_keys_WHEN_serialize_encrypted_data_keys_THEN_deserialize_equals_inputs( + self, # noqa pylint: disable=line-too-long edk_1_provider_id, edk_1_provider_info, edk_2_provider_id, From fc113fa87167d790c5090abac104f53d5e5a4b91 Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Wed, 14 Jan 2026 10:42:47 -0800 Subject: [PATCH 57/70] m --- test/unit/test_serialize.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/test/unit/test_serialize.py b/test/unit/test_serialize.py index 2541b7e84..fd4ef21ff 100644 --- a/test/unit/test_serialize.py +++ b/test/unit/test_serialize.py @@ -135,7 +135,7 @@ def test_GIVEN_two_distinct_valid_encrypted_data_keys_WHEN_serialize_encrypted_d edk_2_provider_id, edk_2_provider_info, ): - self.test_GIVEN_two_distinct_valid_encrypted_data_keys_WHEN_serialize_encrypted_data_keys_THEN_deserialize_equals_inputs( + self._helper_test_GIVEN_two_distinct_valid_encrypted_data_keys_WHEN_serialize_encrypted_data_keys_THEN_deserialize_equals_inputs( edk_1_provider_id, edk_1_provider_info, edk_2_provider_id, @@ -152,7 +152,7 @@ def test_GIVEN_two_distinct_valid_encrypted_data_keys_WHEN_serialize_encrypted_d edk_2_provider_id, edk_2_provider_info, ): - self.test_GIVEN_two_distinct_valid_encrypted_data_keys_WHEN_serialize_encrypted_data_keys_THEN_deserialize_equals_inputs( + self._helper_test_GIVEN_two_distinct_valid_encrypted_data_keys_WHEN_serialize_encrypted_data_keys_THEN_deserialize_equals_inputs( edk_1_provider_id, edk_1_provider_info, edk_2_provider_id, @@ -169,13 +169,13 @@ def test_GIVEN_two_distinct_valid_encrypted_data_keys_WHEN_serialize_encrypted_d edk_2_provider_id, edk_2_provider_info, ): - self.test_GIVEN_two_distinct_valid_encrypted_data_keys_WHEN_serialize_encrypted_data_keys_THEN_deserialize_equals_inputs( + self._helper_test_GIVEN_two_distinct_valid_encrypted_data_keys_WHEN_serialize_encrypted_data_keys_THEN_deserialize_equals_inputs( edk_1_provider_id, edk_1_provider_info, edk_2_provider_id, edk_2_provider_info) - def test_GIVEN_two_distinct_valid_encrypted_data_keys_WHEN_serialize_encrypted_data_keys_THEN_deserialize_equals_inputs( + def _helper_test_GIVEN_two_distinct_valid_encrypted_data_keys_WHEN_serialize_encrypted_data_keys_THEN_deserialize_equals_inputs( self, # noqa pylint: disable=line-too-long edk_1_provider_id, edk_1_provider_info, From d5ca72d984fde681b5c3509ea1a637509984c842 Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Wed, 14 Jan 2026 11:05:05 -0800 Subject: [PATCH 58/70] m --- .github/workflows/ci_codebuild-tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci_codebuild-tests.yml b/.github/workflows/ci_codebuild-tests.yml index a0078cd86..b3680bbcc 100644 --- a/.github/workflows/ci_codebuild-tests.yml +++ b/.github/workflows/ci_codebuild-tests.yml @@ -47,7 +47,7 @@ jobs: role-duration-seconds: 7200 - name: Run python-${{ matrix.python.python_version }} ${{ matrix.codebuild_file_name }} uses: aws-actions/aws-codebuild-run-build@v1 - timeout-minutes: 120 + timeout-minutes: 180 with: project-name: python-esdk buildspec-override: codebuild/py${{ matrix.python.python_version }}/${{ matrix.codebuild_file_name }} From 219e782421d0bb428d8a1e0b6b3732dba169788e Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Wed, 14 Jan 2026 11:10:13 -0800 Subject: [PATCH 59/70] m --- test/unit/test_serialize.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/test/unit/test_serialize.py b/test/unit/test_serialize.py index fd4ef21ff..2b8ac049d 100644 --- a/test/unit/test_serialize.py +++ b/test/unit/test_serialize.py @@ -128,14 +128,14 @@ def test_GIVEN_valid_encrypted_data_key_WHEN_serialize_encrypted_data_key_THEN_d @pytest.mark.parametrize("edk_1_provider_info", provider_input_strings_batch1) @pytest.mark.parametrize("edk_2_provider_id", provider_input_strings_batch1) @pytest.mark.parametrize("edk_2_provider_info", provider_input_strings_batch1) - def test_GIVEN_two_distinct_valid_encrypted_data_keys_WHEN_serialize_encrypted_data_keys_THEN_deserialize_equals_inputs_batch1( + def test_GIVEN_two_distinct_valid_encrypted_data_keys_WHEN_serialize_encrypted_data_keys_THEN_deserialize_equals_inputs_batch1( # noqa pylint: disable=line-too-long self, edk_1_provider_id, edk_1_provider_info, edk_2_provider_id, edk_2_provider_info, ): - self._helper_test_GIVEN_two_distinct_valid_encrypted_data_keys_WHEN_serialize_encrypted_data_keys_THEN_deserialize_equals_inputs( + self._helper_test_GIVEN_two_distinct_valid_encrypted_data_keys_WHEN_serialize_encrypted_data_keys_THEN_deserialize_equals_inputs( # noqa pylint: disable=line-too-long edk_1_provider_id, edk_1_provider_info, edk_2_provider_id, @@ -145,14 +145,14 @@ def test_GIVEN_two_distinct_valid_encrypted_data_keys_WHEN_serialize_encrypted_d @pytest.mark.parametrize("edk_1_provider_info", provider_input_strings_batch2) @pytest.mark.parametrize("edk_2_provider_id", provider_input_strings_batch2) @pytest.mark.parametrize("edk_2_provider_info", provider_input_strings_batch2) - def test_GIVEN_two_distinct_valid_encrypted_data_keys_WHEN_serialize_encrypted_data_keys_THEN_deserialize_equals_inputs_batch2( + def test_GIVEN_two_distinct_valid_encrypted_data_keys_WHEN_serialize_encrypted_data_keys_THEN_deserialize_equals_inputs_batch2( # noqa pylint: disable=line-too-long self, edk_1_provider_id, edk_1_provider_info, edk_2_provider_id, edk_2_provider_info, ): - self._helper_test_GIVEN_two_distinct_valid_encrypted_data_keys_WHEN_serialize_encrypted_data_keys_THEN_deserialize_equals_inputs( + self._helper_test_GIVEN_two_distinct_valid_encrypted_data_keys_WHEN_serialize_encrypted_data_keys_THEN_deserialize_equals_inputs( # noqa pylint: disable=line-too-long edk_1_provider_id, edk_1_provider_info, edk_2_provider_id, @@ -162,21 +162,21 @@ def test_GIVEN_two_distinct_valid_encrypted_data_keys_WHEN_serialize_encrypted_d @pytest.mark.parametrize("edk_1_provider_info", provider_input_strings_batch1) @pytest.mark.parametrize("edk_2_provider_id", provider_input_strings_batch2) @pytest.mark.parametrize("edk_2_provider_info", provider_input_strings_batch2) - def test_GIVEN_two_distinct_valid_encrypted_data_keys_WHEN_serialize_encrypted_data_keys_THEN_deserialize_equals_inputs_batch3( + def test_GIVEN_two_distinct_valid_encrypted_data_keys_WHEN_serialize_encrypted_data_keys_THEN_deserialize_equals_inputs_batch3( # noqa pylint: disable=line-too-long self, edk_1_provider_id, edk_1_provider_info, edk_2_provider_id, edk_2_provider_info, ): - self._helper_test_GIVEN_two_distinct_valid_encrypted_data_keys_WHEN_serialize_encrypted_data_keys_THEN_deserialize_equals_inputs( + self._helper_test_GIVEN_two_distinct_valid_encrypted_data_keys_WHEN_serialize_encrypted_data_keys_THEN_deserialize_equals_inputs( # noqa pylint: disable=line-too-long edk_1_provider_id, edk_1_provider_info, edk_2_provider_id, edk_2_provider_info) - def _helper_test_GIVEN_two_distinct_valid_encrypted_data_keys_WHEN_serialize_encrypted_data_keys_THEN_deserialize_equals_inputs( - self, # noqa pylint: disable=line-too-long + def _helper_test_GIVEN_two_distinct_valid_encrypted_data_keys_WHEN_serialize_encrypted_data_keys_THEN_deserialize_equals_inputs( # noqa pylint: disable=line-too-long + self, edk_1_provider_id, edk_1_provider_info, edk_2_provider_id, From 34c55e72cfb2f946a06bc169b60d9689778b3a9b Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Wed, 14 Jan 2026 11:12:07 -0800 Subject: [PATCH 60/70] rm reproduce bug --- .github/workflows/reproduce_bug.yaml | 30 ---------------------------- 1 file changed, 30 deletions(-) delete mode 100644 .github/workflows/reproduce_bug.yaml diff --git a/.github/workflows/reproduce_bug.yaml b/.github/workflows/reproduce_bug.yaml deleted file mode 100644 index 13a14a345..000000000 --- a/.github/workflows/reproduce_bug.yaml +++ /dev/null @@ -1,30 +0,0 @@ -name: 🐛 Reproduce Python 3.14.2 x86 Bug - -on: - push: - -permissions: - contents: read - -jobs: - reproduce: - runs-on: windows-latest - steps: - - uses: actions/checkout@v4 - - - uses: actions/setup-python@v5 - with: - python-version: "3.14" - architecture: x86 - - - name: Install dependencies - run: | - python -m pip install --upgrade pip - pip install --upgrade -r dev_requirements/ci-requirements.txt - - - name: Run single parametrized test case - env: - TOXENV: local - run: tox -- --tb=short test/unit/test_serialize.py::TestSerialize::test_GIVEN_two_distinct_valid_encrypted_data_keys_WHEN_serialize_encrypted_data_keys_THEN_deserialize_equals_inputs_batch1 -vv - - From 63f2f2ded4d7304c8bde50b04144fe15d819049b Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Wed, 14 Jan 2026 11:24:46 -0800 Subject: [PATCH 61/70] formatting --- test/unit/test_serialize.py | 259 +++++++++++++++++++++++++----------- 1 file changed, 179 insertions(+), 80 deletions(-) diff --git a/test/unit/test_serialize.py b/test/unit/test_serialize.py index 2b8ac049d..1d38818c3 100644 --- a/test/unit/test_serialize.py +++ b/test/unit/test_serialize.py @@ -19,10 +19,27 @@ pytestmark = [pytest.mark.unit, pytest.mark.local] -provider_input_strings = ["", "abc", "𐀂", "abc𐀂", "𐀂abc", "秘密代码", "abc秘密代码", "秘密代码abc", "秘密代码abc𐀂", "𐀂abc秘密代码123𐀂"] +provider_input_strings = [ + "", + "abc", + "𐀂", + "abc𐀂", + "𐀂abc", + "秘密代码", + "abc秘密代码", + "秘密代码abc", + "秘密代码abc𐀂", + "𐀂abc秘密代码123𐀂", +] provider_input_strings_batch1 = ["", "abc", "𐀂", "abc𐀂", "𐀂abc"] -provider_input_strings_batch2 = ["秘密代码", "abc秘密代码", "秘密代码abc", "秘密代码abc𐀂", "𐀂abc秘密代码123𐀂"] +provider_input_strings_batch2 = [ + "秘密代码", + "abc秘密代码", + "秘密代码abc", + "秘密代码abc𐀂", + "𐀂abc秘密代码123𐀂", +] @pytest.mark.parametrize( @@ -61,7 +78,9 @@ def apply_fixtures(self): __lt__=MagicMock(return_value=False), __gt__=MagicMock(return_value=False) ) - self.mock_key_provider = MasterKeyInfo(provider_id=VALUES["provider_id"], key_info=VALUES["key_info"]) + self.mock_key_provider = MasterKeyInfo( + provider_id=VALUES["provider_id"], key_info=VALUES["key_info"] + ) self.mock_wrapping_algorithm = MagicMock() self.mock_wrapping_algorithm.algorithm = self.mock_algorithm # Set up encryption_context patch @@ -69,9 +88,13 @@ def apply_fixtures(self): "aws_encryption_sdk.internal.formatting.serialize.aws_encryption_sdk.internal.formatting.encryption_context" ) self.mock_serialize_acc = self.mock_serialize_acc_patcher.start() - self.mock_serialize_acc.serialize_encryption_context.return_value = VALUES["serialized_encryption_context"] + self.mock_serialize_acc.serialize_encryption_context.return_value = VALUES[ + "serialized_encryption_context" + ] # Set up crypto patch - self.mock_encrypt_patcher = patch("aws_encryption_sdk.internal.formatting.serialize.encrypt") + self.mock_encrypt_patcher = patch( + "aws_encryption_sdk.internal.formatting.serialize.encrypt" + ) self.mock_encrypt = self.mock_encrypt_patcher.start() # Set up validate_frame_length patch self.mock_valid_frame_length_patcher = patch( @@ -120,9 +143,17 @@ def test_GIVEN_valid_encrypted_data_key_WHEN_serialize_encrypted_data_key_THEN_d assert len(deserialized) == 1 deserialized_edk = list(deserialized)[0] assert deserialized_edk.key_provider == encrypted_data_key.key_provider - assert deserialized_edk.key_provider.provider_id == encrypted_data_key.key_provider.provider_id - assert deserialized_edk.key_provider.key_info == encrypted_data_key.key_provider.key_info - assert deserialized_edk.encrypted_data_key == encrypted_data_key.encrypted_data_key + assert ( + deserialized_edk.key_provider.provider_id + == encrypted_data_key.key_provider.provider_id + ) + assert ( + deserialized_edk.key_provider.key_info + == encrypted_data_key.key_provider.key_info + ) + assert ( + deserialized_edk.encrypted_data_key == encrypted_data_key.encrypted_data_key + ) @pytest.mark.parametrize("edk_1_provider_id", provider_input_strings_batch1) @pytest.mark.parametrize("edk_1_provider_info", provider_input_strings_batch1) @@ -136,15 +167,16 @@ def test_GIVEN_two_distinct_valid_encrypted_data_keys_WHEN_serialize_encrypted_d edk_2_provider_info, ): self._helper_test_GIVEN_two_distinct_valid_encrypted_data_keys_WHEN_serialize_encrypted_data_keys_THEN_deserialize_equals_inputs( # noqa pylint: disable=line-too-long - edk_1_provider_id, - edk_1_provider_info, - edk_2_provider_id, - edk_2_provider_info) - + edk_1_provider_id, + edk_1_provider_info, + edk_2_provider_id, + edk_2_provider_info, + ) + @pytest.mark.parametrize("edk_1_provider_id", provider_input_strings_batch2) @pytest.mark.parametrize("edk_1_provider_info", provider_input_strings_batch2) @pytest.mark.parametrize("edk_2_provider_id", provider_input_strings_batch2) - @pytest.mark.parametrize("edk_2_provider_info", provider_input_strings_batch2) + @pytest.mark.parametrize("edk_2_provider_info", provider_input_strings_batch2) def test_GIVEN_two_distinct_valid_encrypted_data_keys_WHEN_serialize_encrypted_data_keys_THEN_deserialize_equals_inputs_batch2( # noqa pylint: disable=line-too-long self, edk_1_provider_id, @@ -153,10 +185,11 @@ def test_GIVEN_two_distinct_valid_encrypted_data_keys_WHEN_serialize_encrypted_d edk_2_provider_info, ): self._helper_test_GIVEN_two_distinct_valid_encrypted_data_keys_WHEN_serialize_encrypted_data_keys_THEN_deserialize_equals_inputs( # noqa pylint: disable=line-too-long - edk_1_provider_id, - edk_1_provider_info, - edk_2_provider_id, - edk_2_provider_info) + edk_1_provider_id, + edk_1_provider_info, + edk_2_provider_id, + edk_2_provider_info, + ) @pytest.mark.parametrize("edk_1_provider_id", provider_input_strings_batch1) @pytest.mark.parametrize("edk_1_provider_info", provider_input_strings_batch1) @@ -170,10 +203,11 @@ def test_GIVEN_two_distinct_valid_encrypted_data_keys_WHEN_serialize_encrypted_d edk_2_provider_info, ): self._helper_test_GIVEN_two_distinct_valid_encrypted_data_keys_WHEN_serialize_encrypted_data_keys_THEN_deserialize_equals_inputs( # noqa pylint: disable=line-too-long - edk_1_provider_id, - edk_1_provider_info, - edk_2_provider_id, - edk_2_provider_info) + edk_1_provider_id, + edk_1_provider_info, + edk_2_provider_id, + edk_2_provider_info, + ) def _helper_test_GIVEN_two_distinct_valid_encrypted_data_keys_WHEN_serialize_encrypted_data_keys_THEN_deserialize_equals_inputs( # noqa pylint: disable=line-too-long self, @@ -184,14 +218,20 @@ def _helper_test_GIVEN_two_distinct_valid_encrypted_data_keys_WHEN_serialize_enc ): # pylint: disable=too-many-locals # Given: Two distinct valid encrypted data keys - edk_1_key_provider = MasterKeyInfo(provider_id=edk_1_provider_id, key_info=edk_1_provider_info) + edk_1_key_provider = MasterKeyInfo( + provider_id=edk_1_provider_id, key_info=edk_1_provider_info + ) encrypted_data_key_1 = EncryptedDataKey( - key_provider=edk_1_key_provider, encrypted_data_key=VALUES["encrypted_data_key"] + key_provider=edk_1_key_provider, + encrypted_data_key=VALUES["encrypted_data_key"], ) - edk_2_key_provider = MasterKeyInfo(provider_id=edk_2_provider_id, key_info=edk_2_provider_info) + edk_2_key_provider = MasterKeyInfo( + provider_id=edk_2_provider_id, key_info=edk_2_provider_info + ) encrypted_data_key_2 = EncryptedDataKey( - key_provider=edk_2_key_provider, encrypted_data_key=VALUES["encrypted_data_key"] + key_provider=edk_2_key_provider, + encrypted_data_key=VALUES["encrypted_data_key"], ) # Must be distinct @@ -224,8 +264,11 @@ def _helper_test_GIVEN_two_distinct_valid_encrypted_data_keys_WHEN_serialize_enc deserialized_edk_other = deserialized_edk_list[1] assert ( - (deserialized_edk_some == encrypted_data_key_1 and deserialized_edk_other == encrypted_data_key_2) - or (deserialized_edk_some == encrypted_data_key_2 and deserialized_edk_other == encrypted_data_key_1) + deserialized_edk_some == encrypted_data_key_1 + and deserialized_edk_other == encrypted_data_key_2 + ) or ( + deserialized_edk_some == encrypted_data_key_2 + and deserialized_edk_other == encrypted_data_key_1 ) def test_GIVEN_invalid_encrypted_data_key_WHEN_serialize_THEN_raises_UnicodeEncodeError( @@ -239,10 +282,13 @@ def test_GIVEN_invalid_encrypted_data_key_WHEN_serialize_THEN_raises_UnicodeEnco # Then: raises UnicodeEncodeError with pytest.raises(UnicodeEncodeError): - key_provider = MasterKeyInfo(provider_id=invalid_provider_string, key_info=invalid_provider_string) + key_provider = MasterKeyInfo( + provider_id=invalid_provider_string, key_info=invalid_provider_string + ) encrypted_data_key = EncryptedDataKey( - key_provider=key_provider, encrypted_data_key=VALUES["encrypted_data_key"] + key_provider=key_provider, + encrypted_data_key=VALUES["encrypted_data_key"], ) # When: serialize_encrypted_data_key @@ -252,10 +298,13 @@ def test_GIVEN_invalid_encrypted_data_key_WHEN_serialize_THEN_raises_UnicodeEnco # Then: raises UnicodeEncodeError with pytest.raises(UnicodeEncodeError): - key_provider = MasterKeyInfo(provider_id=invalid_provider_string, key_info="abc") + key_provider = MasterKeyInfo( + provider_id=invalid_provider_string, key_info="abc" + ) encrypted_data_key = EncryptedDataKey( - key_provider=key_provider, encrypted_data_key=VALUES["encrypted_data_key"] + key_provider=key_provider, + encrypted_data_key=VALUES["encrypted_data_key"], ) # When: serialize_encrypted_data_key @@ -265,10 +314,13 @@ def test_GIVEN_invalid_encrypted_data_key_WHEN_serialize_THEN_raises_UnicodeEnco # Then: raises UnicodeEncodeError with pytest.raises(UnicodeEncodeError): - key_provider = MasterKeyInfo(provider_id="abc", key_info=invalid_provider_string) + key_provider = MasterKeyInfo( + provider_id="abc", key_info=invalid_provider_string + ) encrypted_data_key = EncryptedDataKey( - key_provider=key_provider, encrypted_data_key=VALUES["encrypted_data_key"] + key_provider=key_provider, + encrypted_data_key=VALUES["encrypted_data_key"], ) # When: serialize_encrypted_data_key @@ -286,7 +338,9 @@ def test_serialize_header_v1(self): self.mock_serialize_acc.serialize_encryption_context.assert_called_once_with( VALUES["updated_encryption_context"] ) - self.mock_signer.update.assert_called_once_with(VALUES["serialized_header_small_frame"]) + self.mock_signer.update.assert_called_once_with( + VALUES["serialized_header_small_frame"] + ) assert test == VALUES["serialized_header_small_frame"] def test_serialize_header_v1_no_signer(self): @@ -307,7 +361,9 @@ def test_serialize_header_v2(self): self.mock_serialize_acc.serialize_encryption_context.assert_called_once_with( VALUES["updated_encryption_context"] ) - self.mock_signer.update.assert_called_once_with(VALUES["serialized_header_v2_committing"]) + self.mock_signer.update.assert_called_once_with( + VALUES["serialized_header_v2_committing"] + ) assert test == VALUES["serialized_header_v2_committing"] def test_serialize_header_v2_no_signer(self): @@ -338,7 +394,9 @@ def test_serialize_header_auth_v1(self, mock_header_auth_iv): associated_data=VALUES["serialized_header"], iv=mock_header_auth_iv.return_value, ) - self.mock_signer.update.assert_called_once_with(VALUES["serialized_header_auth"]) + self.mock_signer.update.assert_called_once_with( + VALUES["serialized_header_auth"] + ) assert test == VALUES["serialized_header_auth"] def test_serialize_header_auth_v1_no_signer(self): @@ -379,7 +437,9 @@ def test_GIVEN_required_ec_bytes_WHEN_serialize_header_auth_v1_THEN_aad_has_requ associated_data=VALUES["serialized_header"] + self.mock_required_ec_bytes, iv=mock_header_auth_iv.return_value, ) - self.mock_signer.update.assert_called_once_with(VALUES["serialized_header_auth"]) + self.mock_signer.update.assert_called_once_with( + VALUES["serialized_header_auth"] + ) assert test == VALUES["serialized_header_auth"] @patch("aws_encryption_sdk.internal.formatting.serialize.header_auth_iv") @@ -402,7 +462,9 @@ def test_serialize_header_auth_v2(self, mock_header_auth_iv): associated_data=VALUES["serialized_header_v2_committing"], iv=mock_header_auth_iv.return_value, ) - self.mock_signer.update.assert_called_once_with(VALUES["serialized_header_auth_v2"]) + self.mock_signer.update.assert_called_once_with( + VALUES["serialized_header_auth_v2"] + ) assert test == VALUES["serialized_header_auth_v2"] def test_serialize_header_auth_v2_no_signer(self): @@ -439,23 +501,30 @@ def test_GIVEN_required_ec_bytes_WHEN_serialize_header_auth_v2_THEN_aad_has_requ algorithm=self.mock_algorithm, key=sentinel.encryption_key, plaintext=b"", - associated_data=VALUES["serialized_header_v2_committing"] + self.mock_required_ec_bytes, + associated_data=VALUES["serialized_header_v2_committing"] + + self.mock_required_ec_bytes, iv=mock_header_auth_iv.return_value, ) - self.mock_signer.update.assert_called_once_with(VALUES["serialized_header_auth_v2"]) + self.mock_signer.update.assert_called_once_with( + VALUES["serialized_header_auth_v2"] + ) assert test == VALUES["serialized_header_auth_v2"] def test_serialize_non_framed_open(self): """Validate that the serialize_non_framed_open function behaves as expected. """ - test = aws_encryption_sdk.internal.formatting.serialize.serialize_non_framed_open( - algorithm=self.mock_algorithm, - iv=VALUES["final_frame_base"].iv, - plaintext_length=len(VALUES["data_128"]), - signer=self.mock_signer, + test = ( + aws_encryption_sdk.internal.formatting.serialize.serialize_non_framed_open( + algorithm=self.mock_algorithm, + iv=VALUES["final_frame_base"].iv, + plaintext_length=len(VALUES["data_128"]), + signer=self.mock_signer, + ) + ) + self.mock_signer.update.assert_called_once_with( + VALUES["serialized_non_framed_start"] ) - self.mock_signer.update.assert_called_once_with(VALUES["serialized_non_framed_start"]) assert test == VALUES["serialized_non_framed_start"] def test_serialize_non_framed_open_no_signer(self): @@ -464,17 +533,23 @@ def test_serialize_non_framed_open_no_signer(self): no signer. """ aws_encryption_sdk.internal.formatting.serialize.serialize_non_framed_open( - algorithm=self.mock_algorithm, iv=VALUES["final_frame_base"].iv, plaintext_length=len(VALUES["data_128"]) + algorithm=self.mock_algorithm, + iv=VALUES["final_frame_base"].iv, + plaintext_length=len(VALUES["data_128"]), ) def test_serialize_non_framed_close(self): """Validate that the serialize_non_framed_close function behaves as expected. """ - test = aws_encryption_sdk.internal.formatting.serialize.serialize_non_framed_close( - tag=VALUES["final_frame_base"].tag, signer=self.mock_signer + test = ( + aws_encryption_sdk.internal.formatting.serialize.serialize_non_framed_close( + tag=VALUES["final_frame_base"].tag, signer=self.mock_signer + ) + ) + self.mock_signer.update.assert_called_once_with( + VALUES["serialized_non_framed_close"] ) - self.mock_signer.update.assert_called_once_with(VALUES["serialized_non_framed_close"]) assert test == VALUES["serialized_non_framed_close"] def test_serialize_non_framed_close_no_signer(self): @@ -482,7 +557,9 @@ def test_serialize_non_framed_close_no_signer(self): function behaves as expected when called with no signer. """ - aws_encryption_sdk.internal.formatting.serialize.serialize_non_framed_close(tag=VALUES["final_frame_base"].tag) + aws_encryption_sdk.internal.formatting.serialize.serialize_non_framed_close( + tag=VALUES["final_frame_base"].tag + ) @patch("aws_encryption_sdk.internal.formatting.serialize.frame_iv") def test_encrypt_and_serialize_frame(self, mock_frame_iv): @@ -492,15 +569,17 @@ def test_encrypt_and_serialize_frame(self, mock_frame_iv): self.mock_serialize_acc.assemble_content_aad.return_value = VALUES["frame_aac"] self.mock_encrypt.return_value = VALUES["frame_base"] source_plaintext = VALUES["data_128"] * 2 - test_serialized, test_remainder = aws_encryption_sdk.internal.formatting.serialize.serialize_frame( - algorithm=self.mock_algorithm, - plaintext=source_plaintext, - message_id=VALUES["message_id"], - data_encryption_key=sentinel.encryption_key, - frame_length=VALUES["small_frame_length"], - sequence_number=self.mock_valid_sequence_number, - is_final_frame=False, - signer=self.mock_signer, + test_serialized, test_remainder = ( + aws_encryption_sdk.internal.formatting.serialize.serialize_frame( + algorithm=self.mock_algorithm, + plaintext=source_plaintext, + message_id=VALUES["message_id"], + data_encryption_key=sentinel.encryption_key, + frame_length=VALUES["small_frame_length"], + sequence_number=self.mock_valid_sequence_number, + is_final_frame=False, + signer=self.mock_signer, + ) ) self.mock_serialize_acc.assemble_content_aad.assert_called_once_with( message_id=VALUES["message_id"], @@ -508,7 +587,9 @@ def test_encrypt_and_serialize_frame(self, mock_frame_iv): seq_num=self.mock_valid_sequence_number, length=VALUES["small_frame_length"], ) - mock_frame_iv.assert_called_once_with(self.mock_algorithm, self.mock_valid_sequence_number) + mock_frame_iv.assert_called_once_with( + self.mock_algorithm, self.mock_valid_sequence_number + ) self.mock_encrypt.assert_called_once_with( algorithm=self.mock_algorithm, key=sentinel.encryption_key, @@ -542,17 +623,21 @@ def test_encrypt_and_serialize_frame_final(self, mock_frame_iv): """Validate that the _encrypt_and_serialize_frame function behaves as expected for a final frame. """ - self.mock_serialize_acc.assemble_content_aad.return_value = VALUES["final_frame_aac"] + self.mock_serialize_acc.assemble_content_aad.return_value = VALUES[ + "final_frame_aac" + ] self.mock_encrypt.return_value = VALUES["final_frame_base"] - test_serialized, test_remainder = aws_encryption_sdk.internal.formatting.serialize.serialize_frame( - algorithm=self.mock_algorithm, - plaintext=VALUES["data_128"], - message_id=VALUES["message_id"], - data_encryption_key=sentinel.encryption_key, - frame_length=len(VALUES["data_128"]), - sequence_number=self.mock_valid_sequence_number, - is_final_frame=True, - signer=self.mock_signer, + test_serialized, test_remainder = ( + aws_encryption_sdk.internal.formatting.serialize.serialize_frame( + algorithm=self.mock_algorithm, + plaintext=VALUES["data_128"], + message_id=VALUES["message_id"], + data_encryption_key=sentinel.encryption_key, + frame_length=len(VALUES["data_128"]), + sequence_number=self.mock_valid_sequence_number, + is_final_frame=True, + signer=self.mock_signer, + ) ) self.mock_serialize_acc.assemble_content_aad.assert_called_once_with( message_id=VALUES["message_id"], @@ -560,7 +645,9 @@ def test_encrypt_and_serialize_frame_final(self, mock_frame_iv): seq_num=self.mock_valid_sequence_number, length=len(VALUES["data_128"]), ) - mock_frame_iv.assert_called_once_with(self.mock_algorithm, self.mock_valid_sequence_number) + mock_frame_iv.assert_called_once_with( + self.mock_algorithm, self.mock_valid_sequence_number + ) self.mock_encrypt.assert_called_once_with( algorithm=self.mock_algorithm, key=sentinel.encryption_key, @@ -568,7 +655,9 @@ def test_encrypt_and_serialize_frame_final(self, mock_frame_iv): associated_data=VALUES["final_frame_aac"], iv=mock_frame_iv.return_value, ) - self.mock_signer.update.assert_called_once_with(VALUES["serialized_final_frame"]) + self.mock_signer.update.assert_called_once_with( + VALUES["serialized_final_frame"] + ) assert test_serialized == VALUES["serialized_final_frame"] assert test_remainder == b"" @@ -577,7 +666,9 @@ def test_encrypt_and_serialize_frame_final_no_signer(self): function behaves as expected for a final frame when called with no signer. """ - self.mock_serialize_acc.assemble_content_aad.return_value = VALUES["final_frame_aac"] + self.mock_serialize_acc.assemble_content_aad.return_value = VALUES[ + "final_frame_aac" + ] self.mock_encrypt.return_value = VALUES["final_frame_base"] aws_encryption_sdk.internal.formatting.serialize.serialize_frame( algorithm=self.mock_algorithm, @@ -593,7 +684,9 @@ def test_serialize_footer_with_signer(self): """Validate that the serialize_footer function behaves as expected when called with a signer. """ - test = aws_encryption_sdk.internal.formatting.serialize.serialize_footer(self.mock_signer) + test = aws_encryption_sdk.internal.formatting.serialize.serialize_footer( + self.mock_signer + ) self.mock_signer.finalize.assert_called_with() assert test == VALUES["serialized_footer"] @@ -609,11 +702,14 @@ def test_serialize_wrapped_key_asymmetric(self): key_provider=self.mock_key_provider, wrapping_algorithm=self.mock_wrapping_algorithm, wrapping_key_id=VALUES["wrapped_keys"]["raw"]["key_info"], - encrypted_wrapped_key=EncryptedData(iv=None, ciphertext=VALUES["data_128"], tag=None), + encrypted_wrapped_key=EncryptedData( + iv=None, ciphertext=VALUES["data_128"], tag=None + ), ) assert test == EncryptedDataKey( key_provider=MasterKeyInfo( - provider_id=VALUES["provider_id"], key_info=VALUES["wrapped_keys"]["raw"]["key_info"] + provider_id=VALUES["provider_id"], + key_info=VALUES["wrapped_keys"]["raw"]["key_info"], ), encrypted_data_key=VALUES["data_128"], ) @@ -623,11 +719,14 @@ def test_serialize_wrapped_key_symmetric(self): key_provider=self.mock_key_provider, wrapping_algorithm=self.mock_wrapping_algorithm, wrapping_key_id=VALUES["wrapped_keys"]["raw"]["key_info"], - encrypted_wrapped_key=VALUES["wrapped_keys"]["structures"]["wrapped_encrypted_data"], + encrypted_wrapped_key=VALUES["wrapped_keys"]["structures"][ + "wrapped_encrypted_data" + ], ) assert test == EncryptedDataKey( key_provider=MasterKeyInfo( - provider_id=VALUES["provider_id"], key_info=VALUES["wrapped_keys"]["serialized"]["key_info"] + provider_id=VALUES["provider_id"], + key_info=VALUES["wrapped_keys"]["serialized"]["key_info"], ), encrypted_data_key=VALUES["wrapped_keys"]["serialized"]["key_ciphertext"], ) From c098caf939261138a010e9c54e8f3272777d0ad5 Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Wed, 14 Jan 2026 11:48:54 -0800 Subject: [PATCH 62/70] m --- .github/workflows/ci_codebuild-tests.yml | 2 +- .github/workflows/ci_tests.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci_codebuild-tests.yml b/.github/workflows/ci_codebuild-tests.yml index b3680bbcc..aa0726d1f 100644 --- a/.github/workflows/ci_codebuild-tests.yml +++ b/.github/workflows/ci_codebuild-tests.yml @@ -47,7 +47,7 @@ jobs: role-duration-seconds: 7200 - name: Run python-${{ matrix.python.python_version }} ${{ matrix.codebuild_file_name }} uses: aws-actions/aws-codebuild-run-build@v1 - timeout-minutes: 180 + timeout-minutes: 150 with: project-name: python-esdk buildspec-override: codebuild/py${{ matrix.python.python_version }}/${{ matrix.codebuild_file_name }} diff --git a/.github/workflows/ci_tests.yaml b/.github/workflows/ci_tests.yaml index 93d592e2e..de668487a 100644 --- a/.github/workflows/ci_tests.yaml +++ b/.github/workflows/ci_tests.yaml @@ -29,7 +29,7 @@ jobs: - "3.10" - "3.11" - "3.12" - - "3.14" + - 3.x architecture: - x64 - x86 From e571487c095b1ffd6a54487fa73820036bd4ee75 Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Wed, 14 Jan 2026 12:56:18 -0800 Subject: [PATCH 63/70] m --- .github/workflows/daily_ci.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/daily_ci.yml b/.github/workflows/daily_ci.yml index a5c5ddc02..0465f824d 100644 --- a/.github/workflows/daily_ci.yml +++ b/.github/workflows/daily_ci.yml @@ -4,6 +4,9 @@ name: Daily CI on: schedule: - cron: "00 15 * * 1-5" + pull_request: + paths: + - ".github/workflows/daily_ci.yml" # To test this workflow on PR stage only when there is a change. jobs: codebuild_batch: From 8bd2a4ab6a9e53561c0cc7ef50483bec6e6f0117 Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Wed, 14 Jan 2026 13:04:18 -0800 Subject: [PATCH 64/70] m --- .github/workflows/daily_ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/daily_ci.yml b/.github/workflows/daily_ci.yml index 0465f824d..0796cce9e 100644 --- a/.github/workflows/daily_ci.yml +++ b/.github/workflows/daily_ci.yml @@ -6,7 +6,7 @@ on: - cron: "00 15 * * 1-5" pull_request: paths: - - ".github/workflows/daily_ci.yml" # To test this workflow on PR stage only when there is a change. + - ".github/workflows/daily_ci.yml" jobs: codebuild_batch: From e01ce9aca7c3af9145e06009aa5e47d061572252 Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Wed, 14 Jan 2026 13:05:50 -0800 Subject: [PATCH 65/70] m --- .github/workflows/daily_ci.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/daily_ci.yml b/.github/workflows/daily_ci.yml index 0796cce9e..a5c5ddc02 100644 --- a/.github/workflows/daily_ci.yml +++ b/.github/workflows/daily_ci.yml @@ -4,9 +4,6 @@ name: Daily CI on: schedule: - cron: "00 15 * * 1-5" - pull_request: - paths: - - ".github/workflows/daily_ci.yml" jobs: codebuild_batch: From ef8f62afba61e8c2e5ed5632fb10f52960b64050 Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Wed, 14 Jan 2026 13:08:26 -0800 Subject: [PATCH 66/70] m --- .github/workflows/pull.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/pull.yml b/.github/workflows/pull.yml index 6b4c1b7ab..298acc4c9 100644 --- a/.github/workflows/pull.yml +++ b/.github/workflows/pull.yml @@ -3,6 +3,10 @@ name: Pull Request Workflow on: pull_request: +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + permissions: id-token: write contents: read From 0259a0b54e454e7c7196d9f5c38ece02ad18f634 Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Wed, 14 Jan 2026 13:12:44 -0800 Subject: [PATCH 67/70] m --- .github/workflows/ci_codebuild-tests.yml | 4 ++++ .github/workflows/ci_codebuild_batch.yml | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/.github/workflows/ci_codebuild-tests.yml b/.github/workflows/ci_codebuild-tests.yml index aa0726d1f..8bceccbfd 100644 --- a/.github/workflows/ci_codebuild-tests.yml +++ b/.github/workflows/ci_codebuild-tests.yml @@ -13,6 +13,10 @@ on: CI_AWS_ROLE_ARN: required: true +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + permissions: id-token: write contents: read diff --git a/.github/workflows/ci_codebuild_batch.yml b/.github/workflows/ci_codebuild_batch.yml index 243638f65..76609a95f 100644 --- a/.github/workflows/ci_codebuild_batch.yml +++ b/.github/workflows/ci_codebuild_batch.yml @@ -7,6 +7,10 @@ on: CI_AWS_ROLE_ARN: required: true +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + permissions: id-token: write contents: read From 00602d0e14a5b6ecba9bd2ea412e9489b0f503c9 Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Wed, 14 Jan 2026 13:19:17 -0800 Subject: [PATCH 68/70] empty commit From c811ca138b63bfadec50d8ea4abd817e5dfac8c4 Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Wed, 14 Jan 2026 15:37:33 -0800 Subject: [PATCH 69/70] m --- .github/workflows/ci_codebuild-tests.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/ci_codebuild-tests.yml b/.github/workflows/ci_codebuild-tests.yml index 8bceccbfd..192957a9e 100644 --- a/.github/workflows/ci_codebuild-tests.yml +++ b/.github/workflows/ci_codebuild-tests.yml @@ -1,7 +1,6 @@ name: AWS CodeBuild CI on: - pull_request: push: # Run once a day schedule: From 0f3115de0579e4c18a40ed66aeba66a4830e32ae Mon Sep 17 00:00:00 2001 From: rishav-karanjit Date: Wed, 14 Jan 2026 15:47:20 -0800 Subject: [PATCH 70/70] m --- .github/workflows/ci_codebuild-tests.yml | 4 ---- .github/workflows/ci_codebuild_batch.yml | 4 ---- .github/workflows/pull.yml | 4 +++- 3 files changed, 3 insertions(+), 9 deletions(-) diff --git a/.github/workflows/ci_codebuild-tests.yml b/.github/workflows/ci_codebuild-tests.yml index 192957a9e..323a8ca48 100644 --- a/.github/workflows/ci_codebuild-tests.yml +++ b/.github/workflows/ci_codebuild-tests.yml @@ -12,10 +12,6 @@ on: CI_AWS_ROLE_ARN: required: true -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - permissions: id-token: write contents: read diff --git a/.github/workflows/ci_codebuild_batch.yml b/.github/workflows/ci_codebuild_batch.yml index 76609a95f..243638f65 100644 --- a/.github/workflows/ci_codebuild_batch.yml +++ b/.github/workflows/ci_codebuild_batch.yml @@ -7,10 +7,6 @@ on: CI_AWS_ROLE_ARN: required: true -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - permissions: id-token: write contents: read diff --git a/.github/workflows/pull.yml b/.github/workflows/pull.yml index 298acc4c9..01caa4904 100644 --- a/.github/workflows/pull.yml +++ b/.github/workflows/pull.yml @@ -3,7 +3,9 @@ name: Pull Request Workflow on: pull_request: -concurrency: +# Concurrency control helps avoid CodeBuild throttling. +# When new commits are pushed, the previous workflow run is cancelled. +concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true