TL;DR: moto 5 deleted the per-service decorators like mock_s3. Replace `from moto import mock_s3` with `from moto import mock_aws`, and swap the @mock_s3 decorator for @mock_aws.

```text
ImportError: cannot import name 'mock_s3' from 'moto'
```

## Fix it

1. Change the import: from moto import mock_aws. Expected: imports cleanly.
2. Change decorators: @mock_aws instead of @mock_s3 (it mocks all services). Expected: tests pass.
3. If you must stay on old decorators short-term: pip install "moto<5". Expected: mock_s3 works again, but you miss fixes.
4. Grep for other removed decorators in the same suite: mock_dynamodb, mock_sqs, etc. all became mock_aws. Expected: none left.

## When this applies
- The import of mock_s3 (or mock_dynamodb, mock_sqs, ...) fails and moto is 5.x.

## When it doesn't
- moto is 4.x: the old decorators exist; something else is wrong.
- The import works but mocks do nothing: check decorator placement and scope.

## Compatibility
- moto >= 5.0. For 1.x-4.x, mock_s3 still exists.

## Why it happens
moto unified dozens of per-service decorators into one mock_aws to simplify maintenance. The old names were removed, not deprecated, in 5.0.

## Edge cases
- mock_aws mocks every service, which can surprise tests that relied on unmocked calls failing; scope tests accordingly.
- Server mode (moto_server) is unaffected by the decorator rename.
