Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: getmoto/moto
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 5.0.26
Choose a base ref
...
head repository: getmoto/moto
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: master
Choose a head ref

Commits on Jan 5, 2025

  1. Admin: Post-release steps

    Moto Admin committed Jan 5, 2025
    Copy the full SHA
    7536c08 View commit details

Commits on Jan 8, 2025

  1. Copy the full SHA
    db72e95 View commit details

Commits on Jan 10, 2025

  1. Copy the full SHA
    92b2c5c View commit details
  2. Copy the full SHA
    c60f261 View commit details

Commits on Jan 11, 2025

  1. Copy the full SHA
    d8d4e28 View commit details

Commits on Jan 12, 2025

  1. Copy the full SHA
    07cb7f7 View commit details

Commits on Jan 13, 2025

  1. Copy the full SHA
    8d01234 View commit details
  2. Copy the full SHA
    63c691b View commit details
  3. Copy the full SHA
    c5458d1 View commit details
  4. Copy the full SHA
    41d7963 View commit details

Commits on Jan 14, 2025

  1. RDS: refactoring .get() calls in test cases (#8483)

    * Replace .get() with direct dictionary access
    
    ...in those places where we know the key must exist.
    
    * Remove pointless .get() calls
    
    ...where the calling code doesn't even care about the result.
    
    * Simplify assert statements
    
    ...by removing the top level dictionary and thus avoiding line
    breaks.
    snordhausen authored Jan 14, 2025
    Copy the full SHA
    7953966 View commit details
  2. Copy the full SHA
    da8aac8 View commit details

Commits on Jan 15, 2025

  1. Copy the full SHA
    67b915f View commit details
  2. Copy the full SHA
    0bd01b2 View commit details
  3. Copy the full SHA
    d228659 View commit details

Commits on Jan 16, 2025

  1. Ensure compatibility with latest botocore S3 client customizations (#…

    …8495)
    
    New "default integrity protections" introduced in the AWS SDK for Python v1.36.0 necessitated the following changes:
    
    * Minor tweaks to S3 request processing to handle the new encoding format.
    * Minor tweaks to request processing during `proxy` and `recording` mode.
    * Test suite updates as a result of changes to the default request behavior for some S3 endpoints.
    
    Backward compatibility with earlier AWS SDK for Python versions has been maintained.
    bpandola authored Jan 16, 2025
    Copy the full SHA
    cfaa898 View commit details

Commits on Jan 18, 2025

  1. Copy the full SHA
    4c1321a View commit details

Commits on Jan 19, 2025

  1. Copy the full SHA
    cc56c64 View commit details
  2. Copy the full SHA
    1028231 View commit details
  3. Copy the full SHA
    7d80859 View commit details
  4. Copy the full SHA
    a3472d3 View commit details
  5. Copy the full SHA
    209e4e1 View commit details
  6. Copy the full SHA
    62dd9bc View commit details
  7. Copy the full SHA
    c6030c9 View commit details
  8. Pre-Release: Up Version Number

    Moto Admin committed Jan 19, 2025
    Copy the full SHA
    9c877b0 View commit details
  9. Admin: Post-release steps

    Moto Admin committed Jan 19, 2025
    Copy the full SHA
    874adb8 View commit details

Commits on Jan 20, 2025

  1. Resolve pytest warning (#8507)

    Pytest will attempt to collect test cases from any class whose name starts with "test",
    so we have to explicitly mark this class as not a test.
    bpandola authored Jan 20, 2025
    Copy the full SHA
    58c4f56 View commit details
  2. Copy the full SHA
    2b2e1bb View commit details
  3. Copy the full SHA
    a330996 View commit details
  4. Copy the full SHA
    69a3669 View commit details
  5. Copy the full SHA
    786a8ad View commit details

Commits on Jan 27, 2025

  1. Copy the full SHA
    4f565fb View commit details
  2. Copy the full SHA
    c1979d6 View commit details
  3. Copy the full SHA
    b790642 View commit details
  4. Copy the full SHA
    16abebb View commit details

Commits on Jan 28, 2025

  1. Copy the full SHA
    0167a19 View commit details
  2. Copy the full SHA
    11addde View commit details
  3. Copy the full SHA
    6ad9786 View commit details
  4. Organizations: return organization roots for requests made by other a…

    …ccounts within the organization (#8531)
    k-a-il authored Jan 28, 2025
    Copy the full SHA
    8007aef View commit details

Commits on Jan 31, 2025

  1. Copy the full SHA
    859900d View commit details
  2. Copy the full SHA
    024067f View commit details

Commits on Feb 1, 2025

  1. Copy the full SHA
    714f9fd View commit details
  2. Copy the full SHA
    834aa5f View commit details
  3. Copy the full SHA
    b1b2e80 View commit details
  4. Copy the full SHA
    c0f397e View commit details
  5. Copy the full SHA
    723b1bb View commit details

Commits on Feb 2, 2025

  1. [Elasticache] CreateUser:Engine parameter is case-insensitive (#8539)

    ---------
    
    Co-authored-by: Brian Pandola <bpandola@gmail.com>
    armichaud and bpandola authored Feb 2, 2025
    Copy the full SHA
    c98a33a View commit details
  2. Copy the full SHA
    33f5d9c View commit details
  3. Copy the full SHA
    05c4080 View commit details
  4. Copy the full SHA
    8bc37d8 View commit details
Showing 411 changed files with 110,820 additions and 42,844 deletions.
120 changes: 112 additions & 8 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -1,22 +1,126 @@
{
"name": "moto",
"image": "mcr.microsoft.com/devcontainers/python:0-3.11",
"remoteUser": "root",
"image": "mcr.microsoft.com/devcontainers/python:3.11",
"features": {
"ghcr.io/devcontainers/features/docker-in-docker:2": {}
"ghcr.io/devcontainers/features/docker-in-docker:2": {},
"ghcr.io/devcontainers/features/github-cli:1": {}
},
"portsAttributes": {
"5000": {
"onAutoForward": "silent",
"elevateIfNeeded": true,
"protocol": "http",
"requireLocalPort": false
}
},
"postCreateCommand": "python -m venv .venv",
"postStartCommand": ". .venv/bin/activate && make init",
"customizations": {
"vscode": {
"extensions": ["ms-vscode.makefile-tools", "ms-python.python", "ms-python.black-formatter"],
"extensions": [
"ms-vscode.makefile-tools",
"ms-python.python",
"ms-python.black-formatter"
],
"settings": {
"editor.formatOnSave": true,
"python.defaultInterpreterPath": "${workspaceFolder}/.venv",
"python.formatting.provider": "none",
"[python]": {
"editor.defaultFormatter": "ms-python.black-formatter"
},
"tasks": {
"version": "2.0.0",
"tasks": [
{
"label": "Open Port 5000",
"type": "shell",
"command": "bash",
"args": [
"-c",
"until gh codespace ports visibility 5000:public --codespace ${CODESPACE_NAME} 2>/dev/null; do sleep 1; done"
],
"presentation": {
"reveal": "silent",
"focus": false
}
},
{
"label": "Kill MotoServer",
"type": "shell",
"command": "pkill -f '${workspaceFolder}/moto/server.py'",
"problemMatcher": [],
"presentation": {
"reveal": "silent",
"focus": false
}
}
]
},
"launch": {
"version": "0.2.0",
"configurations": [
{
"name": "Run MotoServer",
"type": "debugpy",
"request": "launch",
"program": "${workspaceFolder}/moto/server.py",
"args": [
"--reload"
],
"console": "internalConsole",
"presentation": {
"order": 11
}
},
{
"name": "Run MotoServer Tests",
"type": "debugpy",
"request": "launch",
"module": "pytest",
"console": "integratedTerminal",
"preLaunchTask": "Open Port 5000",
"postDebugTask": "Kill MotoServer",
"env": {
"TEST_SERVER_MODE": "true",
"TEST_SERVER_MODE_ENDPOINT": "https://${env:CODESPACE_NAME}-5000.${env:GITHUB_CODESPACES_PORT_FORWARDING_DOMAIN}"
},
"presentation": {
"order": 12
},
"args": [
"-sv",
"--cov=moto",
"--cov-report=xml",
"${workspaceFolder}/tests/",
"-k",
"${input:pytestFilter}"
]
}
],
"inputs": [
{
"id": "pytestFilter",
"type": "promptString",
"description": "pytest -k filter (leave empty to run all tests)",
"default": ""
}
],
"compounds": [
{
"name": "MotoServer Tests",
"configurations": [
"Run MotoServer Tests",
"Run MotoServer"
],
"presentation": {
"order": 1
},
"stopAll": true
}
]
}
}
}
},
"postCreateCommand": "python -m venv .venv",
"postStartCommand": ". .venv/bin/activate && make init"
}
}
}
13 changes: 11 additions & 2 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -8,7 +8,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [ 3.8, 3.9, "3.10", "3.11", "3.12", "3.13" ]
python-version: [ 3.9, "3.10", "3.11", "3.12", "3.13" ]

steps:
- uses: actions/checkout@v4
@@ -42,7 +42,7 @@ jobs:
strategy:
fail-fast: false
matrix:
python-version: [3.8, 3.9, "3.10", "3.11", "3.12", "3.13"]
python-version: [3.9, "3.10", "3.11", "3.12", "3.13"]
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
@@ -72,6 +72,10 @@ jobs:
mkdir .mypy_cache
make lint
cpptest:
needs: lint
uses: ./.github/workflows/tests_sdk_cpp.yml

javatest:
needs: lint
uses: ./.github/workflows/tests_sdk_java.yml
@@ -108,3 +112,8 @@ jobs:
needs: [lint]
if: "!contains(github.event.pull_request.labels.*.name, 'java')"
uses: ./.github/workflows/tests_proxymode.yml

testcdk:
needs: [lint]
if: "!contains(github.event.pull_request.labels.*.name, 'java')"
uses: ./.github/workflows/tests_cdk.yml
4 changes: 2 additions & 2 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -29,10 +29,10 @@ jobs:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Python 3.8
- name: Set up Python 3.12
uses: actions/setup-python@v5
with:
python-version: 3.8
python-version: 3.12
- name: Install dependencies
run: |
python -m pip install --upgrade pip
45 changes: 45 additions & 0 deletions .github/workflows/tests_cdk.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
name: Unit tests in Server Mode
on: [workflow_call]

jobs:
cdk_start:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version: ["3.12"]

steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Start MotoServer
run: |
pip install build
python -m build
docker run --rm -t --name motoserver -e TEST_SERVER_MODE=true -e MOTO_EC2_LOAD_DEFAULT_AMIS=false -e AWS_SECRET_ACCESS_KEY=server_secret -e AWS_ACCESS_KEY_ID=server_key -v `pwd`:/moto -p 5000:5000 -v /var/run/docker.sock:/var/run/docker.sock python:${{ matrix.python-version }}-slim /moto/scripts/ci_moto_server.sh &
python scripts/ci_wait_for_server.py
- name: Install CDK
id: install-cdk
run: |
sudo npm install -g aws-cdk
- name: Init CDK APP
run: |
mkdir ~/.aws && touch ~/.aws/credentials && echo -e "[default]\naws_access_key_id = test\naws_secret_access_key = test" > ~/.aws/credentials
mkdir cdk_example_app
cd cdk_example_app
cdk init app --language python
source .venv/bin/activate
pip install -r requirements.txt
pip install -r requirements-dev.txt
- name: Bootstrap CDK
env:
AWS_ENDPOINT_URL: "http://localhost:5000"
run: |
pwd
ls -la
cd cdk_example_app
source .venv/bin/activate
cdk bootstrap -v
2 changes: 1 addition & 1 deletion .github/workflows/tests_decoratormode.yml
Original file line number Diff line number Diff line change
@@ -7,7 +7,7 @@ jobs:
strategy:
fail-fast: false
matrix:
python-version: [3.8, 3.9, "3.10", "3.11", "3.12", "3.13"]
python-version: [3.9, "3.10", "3.11", "3.12", "3.13"]

steps:
- uses: actions/checkout@v4
39 changes: 39 additions & 0 deletions .github/workflows/tests_sdk_cpp.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
name: C++ SDK test
on: [workflow_call]

jobs:
test:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Python 3.12
uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Start MotoServer
run: |
pip install build
python -m build
docker run --rm -t --name motoserver -e TEST_SERVER_MODE=true -e AWS_SECRET_ACCESS_KEY=server_secret -e AWS_ACCESS_KEY_ID=server_key -v `pwd`:/moto -p 5000:5000 -v /var/run/docker.sock:/var/run/docker.sock python:3.10-slim /moto/scripts/ci_moto_server.sh &
python scripts/ci_wait_for_server.py
- name: Check build cache
id: build-cache
uses: actions/cache@v4
with:
path: other_langs/tests_cpp/build/hello_s3
key: cpp-build-${{ hashFiles('other_langs/tests_cpp/hello_s3.cpp') }}

- name: Build Project
if: steps.build-cache.outputs.cache-hit != 'true'
working-directory: other_langs/tests_cpp
run: |
make build
- name: Run tests
working-directory: other_langs/tests_cpp
run: |
make test
4 changes: 2 additions & 2 deletions .github/workflows/tests_sdk_dotnet.yml
Original file line number Diff line number Diff line change
@@ -9,10 +9,10 @@ jobs:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Python 3.8
- name: Set up Python 3.12
uses: actions/setup-python@v5
with:
python-version: "3.8"
python-version: "3.12"
- name: Start MotoServer
run: |
pip install build
4 changes: 2 additions & 2 deletions .github/workflows/tests_sdk_java.yml
Original file line number Diff line number Diff line change
@@ -9,10 +9,10 @@ jobs:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Python 3.8
- name: Set up Python 3.12
uses: actions/setup-python@v5
with:
python-version: "3.10"
python-version: "3.12"
- name: Start MotoServer
run: |
pip install build
6 changes: 3 additions & 3 deletions .github/workflows/tests_sdk_ruby.yml
Original file line number Diff line number Diff line change
@@ -13,13 +13,13 @@ jobs:
steps:
- uses: actions/checkout@v4
- name: Set up Ruby ${{ matrix.ruby-version }}
uses: ruby/setup-ruby@4a9ddd6f338a97768b8006bf671dfbad383215f4
uses: ruby/setup-ruby@32110d4e311bd8996b2a82bf2a43b714ccc91777
with:
ruby-version: ${{ matrix.ruby-version }}
- name: Set up Python 3.8
- name: Set up Python 3.12
uses: actions/setup-python@v5
with:
python-version: "3.10"
python-version: "3.12"
- name: Start MotoServer
run: |
pip install build
2 changes: 1 addition & 1 deletion .github/workflows/tests_servermode.yml
Original file line number Diff line number Diff line change
@@ -7,7 +7,7 @@ jobs:
strategy:
fail-fast: false
matrix:
python-version: [3.8, 3.9, "3.10", "3.11", "3.12"]
python-version: [3.9, "3.10", "3.11", "3.12", "3.13"]

steps:
- uses: actions/checkout@v4
4 changes: 2 additions & 2 deletions .github/workflows/tests_terraform_examples.yml
Original file line number Diff line number Diff line change
@@ -34,10 +34,10 @@ jobs:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Python 3.8
- name: Set up Python 3.12
uses: actions/setup-python@v5
with:
python-version: "3.8"
python-version: "3.12"
- name: Start MotoServer
run: |
pip install build
Loading