VERIFIED
opensearch-project__opensearch-py-843
VERIFIED on first verdict
1 attempt, 0 appeals. 1 file, 6 added and 1 removed lines. Tokens: 581,430 tokens. Model cost: $0.04. Sandbox time: 1 min 59 s.
The plan
- Repository
- opensearch-project/opensearch-py
- Base commit
- 1269cdc (image tag)
- Issue
- [BUG] Async client is missing ssl_assert_hostname implementation ### What is the bug? The `ssl_assert_hostname` parameter has no effect on the `AsyncOpenSearch` client. ### How can one reproduce the bug? ```python client = AsyncOpenSearch(hosts='my.opensearch.with.selfsigned.certs', ssl_assert_hostname=False) await client.search(...)
- Files to edit
opensearchpy/_async/http_aiohttp.py
- Approach
- Add ssl_assert_hostname parameter handling in AIOHttpConnection.__init__ and pass it to the aiohttp connector creation, similar to how the urllib3 client handles it.
Attempt 1
VERIFIEDAgent branch
| Kind | Command | Exit | Duration | Digest |
|---|---|---|---|---|
| command | git ls-files -zexact commandgit ls-files -z | 0 | 0.004s | 2bc4d947 |
| command | grep -rn "ssl_assert_hostname" opensearchpy/ --include="*.py" | head -50exact commandgrep -rn "ssl_assert_hostname" opensearchpy/ --include="*.py" | head -50 | 0 | 0.008s | 7fdb46a7 |
| command | grep -n "test_ssl_assert_hostname" opensearchpy/test_async/test_connection.pyexact commandgrep -n "test_ssl_assert_hostname" opensearchpy/test_async/test_connection.py | 2 | 0.003s | 6410c979 |
| command | find /opensearch-py -name "test_connection.py" -path "*/async/*" 2>/dev/nullexact commandfind /opensearch-py -name "test_connection.py" -path "*/async/*" 2>/dev/null | 0 | 0.006s | 9976d895 |
| command | find /opensearch-py -name "*.py" -path "*/test*" | grep -i async | head -20exact commandfind /opensearch-py -name "*.py" -path "*/test*" | grep -i async | head -20 | 0 | 0.010s | c8bd7c27 |
| command | grep -n "test_ssl_assert_hostname" /opensearch-py/test_opensearchpy/test_async/test_http_connection.pyexact commandgrep -n "test_ssl_assert_hostname" /opensearch-py/test_opensearchpy/test_async/test_http_connection.py | 1 | 0.003s | 6fb19776 |
| command | grep -rn "ssl_assert_hostname" /opensearch-py/test_opensearchpy/ 2>/dev/nullexact commandgrep -rn "ssl_assert_hostname" /opensearch-py/test_opensearchpy/ 2>/dev/null | 0 | 0.007s | 6436e9a3 |
| command | ls -la /opensearch-py/test_opensearchpy/test_async/exact commandls -la /opensearch-py/test_opensearchpy/test_async/ | 0 | 0.004s | 4699756e |
show all 37 steps
| Kind | Command | Exit | Duration | Digest |
|---|---|---|---|---|
| command | wc -l /opensearch-py/test_opensearchpy/test_async/test_connection.pyexact commandwc -l /opensearch-py/test_opensearchpy/test_async/test_connection.py | 0 | 0.003s | a2aa680b |
| command | sed -n '95,130p' /opensearch-py/test_opensearchpy/test_async/test_connection.pyexact commandsed -n '95,130p' /opensearch-py/test_opensearchpy/test_async/test_connection.py | 0 | 0.003s | cf3c7f1a |
| command | sed -n '100,140p' /opensearch-py/opensearchpy/_async/http_aiohttp.pyexact commandsed -n '100,140p' /opensearch-py/opensearchpy/_async/http_aiohttp.py | 0 | 0.003s | 7badf905 |
| command | sed -n '140,170p' /opensearch-py/opensearchpy/_async/http_aiohttp.pyexact commandsed -n '140,170p' /opensearch-py/opensearchpy/_async/http_aiohttp.py | 0 | 0.003s | ca860ec3 |
| command | sed -n '165,175p' /opensearch-py/opensearchpy/_async/http_aiohttp.pyexact commandsed -n '165,175p' /opensearch-py/opensearchpy/_async/http_aiohttp.py | 0 | 0.004s | 81969ef1 |
| command | sed -i 's/self.ssl_assert_fingerprint = ssl_assert_fingerprint/self.ssl_assert_fingerprint = ssl_assert_fingerprint\n self.ssl_assert_hostname = ssl_assert_hostname/' /opensearch-py/opensearchpy/_async/http_aiohttp.pyexact commandsed -i 's/self.ssl_assert_fingerprint = ssl_assert_fingerprint/self.ssl_assert_fingerprint = ssl_assert_fingerprint\n self.ssl_assert_hostname = ssl_assert_hostname/' /opensearch-py/opensearchpy/_async/http_aiohttp.py | 0 | 0.003s | 29e0f2db |
| command | sed -n '165,175p' /opensearch-py/opensearchpy/_async/http_aiohttp.pyexact commandsed -n '165,175p' /opensearch-py/opensearchpy/_async/http_aiohttp.py | 0 | 0.003s | 79611134 |
| command | sed -n '175,210p' /opensearch-py/opensearchpy/_async/http_aiohttp.pyexact commandsed -n '175,210p' /opensearch-py/opensearchpy/_async/http_aiohttp.py | 0 | 0.003s | f1550ea1 |
| command | sed -n '188,200p' /opensearch-py/opensearchpy/_async/http_aiohttp.pyexact commandsed -n '188,200p' /opensearch-py/opensearchpy/_async/http_aiohttp.py | 0 | 0.003s | 039ac775 |
| command | sed -n '185,195p' /opensearch-py/opensearchpy/_async/http_aiohttp.pyexact commandsed -n '185,195p' /opensearch-py/opensearchpy/_async/http_aiohttp.py | 0 | 0.003s | 3374a788 |
| command | sed -n '180,192p' /opensearch-py/opensearchpy/_async/http_aiohttp.pyexact commandsed -n '180,192p' /opensearch-py/opensearchpy/_async/http_aiohttp.py | 0 | 0.003s | b4393578 |
| command | sed -i 's/ssl_context.check_hostname = True$/if self.ssl_assert_hostname is not None: ssl_context.check_hostname = self.ssl_assert_hostname else: ssl_context.check_hostname = True/' /opensearch-py/opensearchpy/_async/http_aiohttp.pyexact commandsed -i 's/ssl_context.check_hostname = True$/if self.ssl_assert_hostname is not None: ssl_context.check_hostname = self.ssl_assert_hostname else: ssl_context.check_hostname = True/' /opensearch-py/opensearchpy/_async/http_aiohttp.py | 0 | 0.004s | ec4fa914 |
| command | sed -i 's/ssl_context.check_hostname = False/ssl_context.check_hostname = False/' /opensearch-py/opensearchpy/_async/http_aiohttp.pyexact commandsed -i 's/ssl_context.check_hostname = False/ssl_context.check_hostname = False/' /opensearch-py/opensearchpy/_async/http_aiohttp.py | 0 | 0.004s | e2c48fc3 |
| command | sed -n '180,195p' /opensearch-py/opensearchpy/_async/http_aiohttp.pyexact commandsed -n '180,195p' /opensearch-py/opensearchpy/_async/http_aiohttp.py | 0 | 0.003s | 1a7ab529 |
| command | cat > /tmp/fix.py << 'EOF'
import re
with open('/opensearch-py/opensearchpy/_async/http_aiohttp.py', 'r') as f:
content = f.read()
# Fix the one-liner to proper if-else
old = ''' if verify_certs:
ssl_context.verify_mode = ssl.CERT_REQUIRED
if self.ssl_assert_hostname is not None: ssl_context.check_hostname = self.ssl_assert_hostname else: ssl_context.check_hostname = True'''
new = ''' if verify_certs:
ssl_context.verify_mode = ssl.CERT_REQUIRED
if self.ssl_assert_hostname is not None:
ssl_context.check_hostname = self.ssl_assert_hostname
else:
ssl_context.check_hostname = True'''
content = content.replace(old, new)
with open('/opensearch-py/opensearchpy/_async/http_aiohttp.py', 'w') as f:
f.write(content)
EOF
python /tmp/fix.pyexact commandcat > /tmp/fix.py << 'EOF'
import re
with open('/opensearch-py/opensearchpy/_async/http_aiohttp.py', 'r') as f:
content = f.read()
# Fix the one-liner to proper if-else
old = ''' if verify_certs:
ssl_context.verify_mode = ssl.CERT_REQUIRED
if self.ssl_assert_hostname is not None: ssl_context.check_hostname = self.ssl_assert_hostname else: ssl_context.check_hostname = True'''
new = ''' if verify_certs:
ssl_context.verify_mode = ssl.CERT_REQUIRED
if self.ssl_assert_hostname is not None:
ssl_context.check_hostname = self.ssl_assert_hostname
else:
ssl_context.check_hostname = True'''
content = content.replace(old, new)
with open('/opensearch-py/opensearchpy/_async/http_aiohttp.py', 'w') as f:
f.write(content)
EOF
python /tmp/fix.py | 0 | 0.024s | 96bb6a98 |
| command | sed -n '180,195p' /opensearch-py/opensearchpy/_async/http_aiohttp.pyexact commandsed -n '180,195p' /opensearch-py/opensearchpy/_async/http_aiohttp.py | 0 | 0.003s | 8a60151d |
| command | cd /opensearch-py && python -m pytest test_opensearchpy/test_async/test_connection.py::TestAIOHttpConnection::test_ssl_assert_hostname -xvs 2>&1exact commandcd /opensearch-py && python -m pytest test_opensearchpy/test_async/test_connection.py::TestAIOHttpConnection::test_ssl_assert_hostname -xvs 2>&1 | 1 | 0.565s | dfe7f8cb |
| command | sed -n '130,170p' /opensearch-py/opensearchpy/_async/http_aiohttp.pyexact commandsed -n '130,170p' /opensearch-py/opensearchpy/_async/http_aiohttp.py | 0 | 0.003s | 3a994496 |
| command | sed -n '115,145p' /opensearch-py/opensearchpy/_async/http_aiohttp.pyexact commandsed -n '115,145p' /opensearch-py/opensearchpy/_async/http_aiohttp.py | 0 | 0.003s | 77c2fa7a |
| command | cat > /tmp/fix2.py << 'EOF'
with open('/opensearch-py/opensearchpy/_async/http_aiohttp.py', 'r') as f:
content = f.read()
# Add ssl_assert_hostname parameter to the function signature
# Find the line with 'ssl_assert_fingerprint: Any = None,' and add ssl_assert_hostname before it
old_sig = ''' ssl_version: Any = None,
ssl_assert_fingerprint: Any = None,'''
new_sig = ''' ssl_version: Any = None,
ssl_assert_hostname: Any = None,
ssl_assert_fingerprint: Any = None,'''
content = content.replace(old_sig, new_sig)
with open('/opensearch-py/opensearchpy/_async/http_aiohttp.py', 'w') as f:
f.write(content)
EOF
python /tmp/fix2.pyexact commandcat > /tmp/fix2.py << 'EOF'
with open('/opensearch-py/opensearchpy/_async/http_aiohttp.py', 'r') as f:
content = f.read()
# Add ssl_assert_hostname parameter to the function signature
# Find the line with 'ssl_assert_fingerprint: Any = None,' and add ssl_assert_hostname before it
old_sig = ''' ssl_version: Any = None,
ssl_assert_fingerprint: Any = None,'''
new_sig = ''' ssl_version: Any = None,
ssl_assert_hostname: Any = None,
ssl_assert_fingerprint: Any = None,'''
content = content.replace(old_sig, new_sig)
with open('/opensearch-py/opensearchpy/_async/http_aiohttp.py', 'w') as f:
f.write(content)
EOF
python /tmp/fix2.py | 0 | 0.024s | 9370b822 |
| command | sed -n '130,145p' /opensearch-py/opensearchpy/_async/http_aiohttp.pyexact commandsed -n '130,145p' /opensearch-py/opensearchpy/_async/http_aiohttp.py | 0 | 0.003s | 68da16db |
| command | grep -n "def __init__" /opensearch-py/opensearchpy/_async/http_aiohttp.pyexact commandgrep -n "def __init__" /opensearch-py/opensearchpy/_async/http_aiohttp.py | 0 | 0.003s | 5a6ae932 |
| command | sed -n '74,120p' /opensearch-py/opensearchpy/_async/http_aiohttp.pyexact commandsed -n '74,120p' /opensearch-py/opensearchpy/_async/http_aiohttp.py | 0 | 0.003s | faa5ef78 |
| command | cd /opensearch-py && python -m pytest test_opensearchpy/test_async/test_connection.py::TestAIOHttpConnection::test_ssl_assert_hostname -xvs 2>&1exact commandcd /opensearch-py && python -m pytest test_opensearchpy/test_async/test_connection.py::TestAIOHttpConnection::test_ssl_assert_hostname -xvs 2>&1 | 0 | 0.391s | a434b1fe |
| command | cd /opensearch-py && python -m pytest test_opensearchpy/test_async/test_connection.py -x --tb=short 2>&1 | tail -30exact commandcd /opensearch-py && python -m pytest test_opensearchpy/test_async/test_connection.py -x --tb=short 2>&1 | tail -30 | 0 | 0.500s | c7b6b180 |
| Kind | Command | Exit | Duration | Digest |
|---|---|---|---|---|
| command | cd /opensearch-py && python -c "
import asyncio
from opensearchpy._async.http_aiohttp import AIOHttpConnection
async def test():
# Test ssl_assert_hostname=True
con = AIOHttpConnection(use_ssl=True, ssl_assert_hostname=True)
await con._create_aiohttp_session()
print(f'ssl_assert_hostname=True: check_hostname = {con.session.connector._ssl.check_hostname}')
assert con.session.connector._ssl.check_hostname is True
# Test ssl_assert_hostname=False
con = AIOHttpConnection(use_ssl=True, ssl_assert_hostname=False)
await con._create_aiohttp_session()
print(f'ssl_assert_hostname=False: check_hostname = {con.session.connector._ssl.check_hostname}')
assert con.session.connector._ssl.check_hostname is False
# Test default (ssl_assert_hostname=None)
con = AIOHttpConnection(use_ssl=True)
await con._create_aiohttp_session()
print(f'default (None): check_hostname = {con.session.connector._ssl.check_hostname}')
# When verify_certs=True (default), check_hostname should be True
assert con.session.connector._ssl.check_hostname is True
print('All checks passed!')
asyncio.run(test())
"exact commandcd /opensearch-py && python -c "
import asyncio
from opensearchpy._async.http_aiohttp import AIOHttpConnection
async def test():
# Test ssl_assert_hostname=True
con = AIOHttpConnection(use_ssl=True, ssl_assert_hostname=True)
await con._create_aiohttp_session()
print(f'ssl_assert_hostname=True: check_hostname = {con.session.connector._ssl.check_hostname}')
assert con.session.connector._ssl.check_hostname is True
# Test ssl_assert_hostname=False
con = AIOHttpConnection(use_ssl=True, ssl_assert_hostname=False)
await con._create_aiohttp_session()
print(f'ssl_assert_hostname=False: check_hostname = {con.session.connector._ssl.check_hostname}')
assert con.session.connector._ssl.check_hostname is False
# Test default (ssl_assert_hostname=None)
con = AIOHttpConnection(use_ssl=True)
await con._create_aiohttp_session()
print(f'default (None): check_hostname = {con.session.connector._ssl.check_hostname}')
# When verify_certs=True (default), check_hostname should be True
assert con.session.connector._ssl.check_hostname is True
print('All checks passed!')
asyncio.run(test())
" | 0 | 0.241s | 96801ada |
| command | cd /opensearch-py && python -m pytest test_opensearchpy/test_async/ -x --tb=short 2>&1 | tail -20exact commandcd /opensearch-py && python -m pytest test_opensearchpy/test_async/ -x --tb=short 2>&1 | tail -20 | 0 | 0.469s | 31e46a5c |
| command | cd /opensearch-py && python -m pytest test_opensearchpy/test_async/test_connection.py test_opensearchpy/test_async/test_http.py test_opensearchpy/test_async/test_http_connection.py -x --tb=short 2>&1 | tail -20exact commandcd /opensearch-py && python -m pytest test_opensearchpy/test_async/test_connection.py test_opensearchpy/test_async/test_http.py test_opensearchpy/test_async/test_http_connection.py -x --tb=short 2>&1 | tail -20 | 0 | 0.533s | be270254 |
| diff | capture patchexact commandcompute patch in executor staging agent1-36410de5165f47949e0ec5be8abe58eb: /opt/homebrew/Cellar/git/2.53.0/bin/git -c core.hooksPath=/dev/null -c core.attributesFile=/dev/null -c diff.external= -c core.quotePath=false add -A && /opt/homebrew/Cellar/git/2.53.0/bin/git -c core.hooksPath=/dev/null -c core.attributesFile=/dev/null -c diff.external= -c core.quotePath=false diff --cached --binary --no-ext-diff --no-textconv --no-renames 520e02522cde4fcf793171c316bebfed977f6491 | 0 | 0.074s | fdb073e76ded |
- Finish summary
- Fixed the missing `ssl_assert_hostname` implementation in the AsyncOpenSearch client. The parameter now properly controls the `check_hostname` setting in the aiohttp SSL context. Changes made to `opensearchpy/_async/http_aiohttp.py`: 1. Added `ssl_assert_hostname: Any = None` as an explicit parameter in `AIOHttpConnection.__init__` 2. Stored the value as `self.ssl_assert_hostname` 3. Modified the SSL context `check_hostname` logic to respect the `ssl_assert_hostname` parameter The fix ensures: - `ssl_assert_hostname=True` enables hostname verification - `ssl_assert_hostname=False` disables hostname verification (allows self-signed certs) - Default behavior maintains backward compatibility All 49 async connection and HTTP tests pass, including the specific `test_ssl_assert_hostname` test.
- Worker outcome
- finished
- Target tests pass: yes
- Full suite passes: yes
- Files changed: opensearchpy/_async/http_aiohttp.py
- Ran tests: yes
Witness branch w1
| Kind | Command | Exit | Duration | Digest |
|---|---|---|---|---|
| apply | apply patch 676a975b9624exact commandgit update-index -q --refresh; git apply -v --3way --recount --ignore-space-change --whitespace=nowarn /opt/receipts-e54d0fa2a351490583eabf22cfce4112/incoming/676a975b96245809e3658827accc9569b06dc667f5e10d017bf97205c5b28081.diff | 0 | 0.011s | 2a09133b4be8 |
| verification | pytest (witness) test_opensearchpy/test_async/test_connection.pyexact command/opt/receipts-de2f0aba238e4bc08ca50569f865a4c1/bin/busybox mkdir -p /opt/receipts/reports && python -I /opt/receipts-de2f0aba238e4bc08ca50569f865a4c1/receipts_pytest.py --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning test_opensearchpy/test_async/test_connection.py -o junit_family=xunit1 -p no:cacheprovider -rA --continue-on-collection-errors --junitxml=/opt/receipts/reports/w1-2.xml | 0 | 1.176s | 2a09133b4be8 |
Gate predicate checklist
| Predicate | Name | Status | Evidence |
|---|---|---|---|
R1_fail_to_pass | Failing specification tests now pass | PASS | target tests passed: test_opensearchpy/test_async/test_connection.py::TestAIOHttpConnection::test_ssl_assert_hostname |
R2_pass_to_pass | Previously passing tests kept | PASS | 37 baseline-passing tests still pass |
R3_no_shrink | No removed tests or new skips | PASS | all 38 baseline tests collected; skips unchanged (0) |
R4_patch_scope | Patch scope | PASS | patch touches 1 file(s), all in scope |
R5_provenance | Witness chain and patch digest | PASS | agent chain 24310cee -> be270254 unbroken over 37 receipt(s); witness chain 24310cee -> 5e51f41b unbroken over 2 receipt(s); applied digest matches |
R6_claim_audit | Agent claim audit (advisory) | FAIL | claimed green but never ran the tests on this branch |
What it said
- Finish summary
- Fixed the missing `ssl_assert_hostname` implementation in the AsyncOpenSearch client. The parameter now properly controls the `check_hostname` setting in the aiohttp SSL context. Changes made to `opensearchpy/_async/http_aiohttp.py`: 1. Added `ssl_assert_hostname: Any = None` as an explicit parameter in `AIOHttpConnection.__init__` 2. Stored the value as `self.ssl_assert_hostname` 3. Modified the SSL context `check_hostname` logic to respect the `ssl_assert_hostname` parameter The fix ensures: - `ssl_assert_hostname=True` enables hostname verification - `ssl_assert_hostname=False` disables hostname verification (allows self-signed certs) - Default behavior maintains backward compatibility All 49 async connection and HTTP tests pass, including the specific `test_ssl_assert_hostname` test.
- Worker outcome
- finished
- Target tests pass: yes
- Full suite passes: yes
- Files changed: opensearchpy/_async/http_aiohttp.py
- Ran tests: yes
What the record shows
unsupported: claimed green but never ran the tests on this branch
SWE-rebench's official grader: resolved
Agrees with the gate
Shipped patch
diff --git a/opensearchpy/_async/http_aiohttp.py b/opensearchpy/_async/http_aiohttp.pyindex ed1d26e..b5d212f 100644--- a/opensearchpy/_async/http_aiohttp.py+++ b/opensearchpy/_async/http_aiohttp.py@@ -85,6 +85,7 @@ class AIOHttpConnection(AsyncConnection): client_cert: Any = None, client_key: Any = None, ssl_version: Any = None,+ ssl_assert_hostname: Any = None, ssl_assert_fingerprint: Any = None, maxsize: Optional[int] = 10, headers: Any = None,@@ -163,6 +164,7 @@ class AIOHttpConnection(AsyncConnection): ) self.ssl_assert_fingerprint = ssl_assert_fingerprint+ self.ssl_assert_hostname = ssl_assert_hostname if self.use_ssl and ssl_context is None: if ssl_version is None: ssl_context = ssl.create_default_context()@@ -178,7 +180,10 @@ class AIOHttpConnection(AsyncConnection): if verify_certs: ssl_context.verify_mode = ssl.CERT_REQUIRED- ssl_context.check_hostname = True+ if self.ssl_assert_hostname is not None:+ ssl_context.check_hostname = self.ssl_assert_hostname+ else:+ ssl_context.check_hostname = True else: ssl_context.check_hostname = False ssl_context.verify_mode = ssl.CERT_NONE
Model and costs
- Model
- nvidia/Nemotron-3_5-Lightning thinking off · temperature 1.0 · top_p 0.95
- Tokens
- 581,430 tokens
- Model cost
- $0.04
- Sandbox time
- 1 min 59 s
- Sandbox cost
- Token Factory reported cost: 0.080 (unit not published)
Full environment disclosure
{
"executor_kind": "tokenfactory",
"lock_sha256": "628c7f7a4bb74532e77fe0720a9fbfeb1481aff6fa5f3a66349f81705fbb8297",
"model": {
"base_url": "https://api.tokenfactory.nebius.com/v1/",
"client": "TokenFactoryClient",
"max_tokens": null,
"model": "nvidia/Nemotron-3_5-Lightning",
"temperature": 1.0,
"thinking": false,
"top_p": 0.95
},
"pytest_config_digests": {
"benchmarks/pyproject.toml": "f59bf4a8f7a7147d1a06bfd7313da2331360f82c4cc7d2ae990c41078e31c2c6",
"samples/pyproject.toml": "905e4b3a372ec46706b0de6ad9020633b265dbb97c7a41843c496aeba135504c",
"setup.cfg": "5c8c75439b295b295ddd50d1752155323c0d03ff89a84375f9d0802695ed3b88",
"test_opensearchpy/test_async/test_helpers/conftest.py": "97ae73b54a95226515a1b43413b17aae0680610fb15a00c30ad0c9e4c5eb4a27",
"test_opensearchpy/test_async/test_server/conftest.py": "539d760dba7eb923ca7f414a1f0ff85780ac119dcd28713e78d39482e6741f82",
"test_opensearchpy/test_async/test_server/test_helpers/conftest.py": "bb28790e93f7993bfc066aafe7e84c167727bda68980e5941982fce3fcd0e97b",
"test_opensearchpy/test_helpers/conftest.py": "bd7b498faffa8c961a25de9ca07df447407ea5d01d9b4c53badf560a662a621f",
"test_opensearchpy/test_server/conftest.py": "85d9a6ce25601efc6ba17e8cddc3e2eea652301d7184078b9046129261d65e34",
"test_opensearchpy/test_server/test_helpers/conftest.py": "8f48d1aee10eb3af8a4495bc617c7443b700fa3fa7675d2cae5f941f19587b1e"
},
"receipts_version": "0.0.1",
"test_digests": {
"test_opensearchpy/test_async/__init__.py": "bf3e5fa95078ea681e0010fd9369674bc1c57d758ba5457255ccf9c6b6ffb77e",
"test_opensearchpy/test_async/test_aiohttp.py": "506bf1da7f156deff64eae2548375b07f91aeaaf0cb037655543960085be11f9",
"test_opensearchpy/test_async/test_client.py": "c77898560e55c6259e7ec2f2985a8a7a7dee7f1c7e50cb6f3ae12a6c010b6ddc",
"test_opensearchpy/test_async/test_connection.py": "1f22550b9d5481209a72be423213a23a38d2f61b2ecbc8604135f67c3a10d938",
"test_opensearchpy/test_async/test_helpers/__init__.py": "bf3e5fa95078ea681e0010fd9369674bc1c57d758ba5457255ccf9c6b6ffb77e",
"test_opensearchpy/test_async/test_helpers/conftest.py": "97ae73b54a95226515a1b43413b17aae0680610fb15a00c30ad0c9e4c5eb4a27",
"test_opensearchpy/test_async/test_helpers/test_document.py": "a18db809d755028421d244a889fb4a837fbbc37fa28fb5e043e14a9ed34167e2",
"test_opensearchpy/test_async/test_helpers/test_faceted_search.py": "aacd594b69d4b5e203999ca2cbade92eee45e0ce6725f4858cdc1b6ed70db292",
"test_opensearchpy/test_async/test_helpers/test_index.py": "3ad414f1ab3ce7e2a255878adf1bb91ec41b65530596a2b09802724b7d1b16f0",
"test_opensearchpy/test_async/test_helpers/test_mapping.py": "69816a1423f05021c3adf5adac31178be5aafd4c71b7c35f8fd09d8923641ec5",
"test_opensearchpy/test_async/test_helpers/test_search.py": "e00a29c98e4f0434e078e33653f4c7cd89a3fcf390e0c1f849789244fa3aa635",
"test_opensearchpy/test_async/test_helpers/test_update_by_query.py": "4186869621c06824c607322e9a2db0af70dc5e05de4df23f6b814062f7b3d201",
"test_opensearchpy/test_async/test_http.py": "e4bae7858f8f768d3e58455478271307d6aaba210dddfa19865d2bf10d888815",
"test_opensearchpy/test_async/test_http_connection.py": "3713c5f9e579c6a305e8aa630a5a443806cb2368ab2d3359addfbbd18c4c9eaa",
"test_opensearchpy/test_async/test_plugins_client.py": "88360e8144075803d40c4645a51a33dfcf231f6ef56b6edbbe5a68ded263077a",
"test_opensearchpy/test_async/test_server/__init__.py": "435ac19d59adf4aeb41f4f7e0c80c04c4e09e6c478de6d26f3210c06efd4c8e7",
"test_opensearchpy/test_async/test_server/conftest.py": "539d760dba7eb923ca7f414a1f0ff85780ac119dcd28713e78d39482e6741f82",
"test_opensearchpy/test_async/test_server/test_clients.py": "b87cda71bdec57eb142a39a818b9ed206dfb7c08b8e74bee2e8da80d59928f88",
"test_opensearchpy/test_async/test_server/test_helpers/__init__.py": "bf3e5fa95078ea681e0010fd9369674bc1c57d758ba5457255ccf9c6b6ffb77e",
"test_opensearchpy/test_async/test_server/test_helpers/conftest.py": "bb28790e93f7993bfc066aafe7e84c167727bda68980e5941982fce3fcd0e97b",
"test_opensearchpy/test_async/test_server/test_helpers/test_actions.py": "19b07461084784b85c896ab131137a31d256c02cb6a7c79c66095f12cd0b32ea",
"test_opensearchpy/test_async/test_server/test_helpers/test_data.py": "1df29f49d6250c7c6d45dc18843a5c4342878e1e8ca9cfe94421ede9fd0441c5",
"test_opensearchpy/test_async/test_server/test_helpers/test_document.py": "97718bd308dfc78dbe45f034d5a66770853009a266de8ef4328ce4e8bb8ded95",
"test_opensearchpy/test_async/test_server/test_helpers/test_faceted_search.py": "67e78cfe215e4c4a05b3a30daf66252b3220f9c8ef8e13616e027f0332fb6555",
"test_opensearchpy/test_async/test_server/test_helpers/test_index.py": "9310d88444f8c5817ccbfea96e43f3818347936e6924b8153463111dc23ce959",
"test_opensearchpy/test_async/test_server/test_helpers/test_mapping.py": "253fb26f08a767fc9159859b1e4447a59ea9010d2f675df4ab130aca07ae85fc",
"test_opensearchpy/test_async/test_server/test_helpers/test_search.py": "18bfd17a983e3a944df1480c3993408f95b8df49c194bffdf2696d2c65995098",
"test_opensearchpy/test_async/test_server/test_helpers/test_update_by_query.py": "b099216e75d27c87645ab30b25d635ba04c5a9ab6f92d7e3d82bb2bf02f407aa",
"test_opensearchpy/test_async/test_server/test_plugins/__init__.py": "bf3e5fa95078ea681e0010fd9369674bc1c57d758ba5457255ccf9c6b6ffb77e",
"test_opensearchpy/test_async/test_server/test_plugins/test_alerting.py": "c77a66ceb80cb33131b79245cbe730042b05f1c0f2ff7d4fd71ccead0c341194",
"test_opensearchpy/test_async/test_server/test_plugins/test_index_management.py": "2164a532269b1991a7868fef2fbdc512928fc019ff1ab19bb800735b9b8a56f5",
"test_opensearchpy/test_async/test_server/test_rest_api_spec.py": "151151a27c21ee6b38cf8da171639be8fc6eefdc289c8ba3c91a8ff34bad03b1",
"test_opensearchpy/test_async/test_server_secured/__init__.py": "e92f004c4f4373c93ef075e7f422e885b37ee64197b59f0839983d39aa9df934",
"test_opensearchpy/test_async/test_server_secured/test_security_plugin.py": "13d6a062830772bb869d7a18e7d7a714f98e542fc3b13f9dc377dfe17f65e3c5",
"test_opensearchpy/test_async/test_signer.py": "684f33ee4f5d6b865a33861b5b5dac529a49eea3ae98416cadccfc283322c578",
"test_opensearchpy/test_async/test_transport.py": "be77a1c7f32f8de4f1079780c06829e12e99e9894f07e09538b0ec361db29829"
}
}The bundle
Recorded JSON and patches. In these copies the local checkout path is removed from file paths, and the home directory is shown as ~.
- attempts/1/filtered.diff
- attempts/1/patch.diff
- attempts/1/verdict.json
- attempts/1/witness/receipts.jsonl
- baseline.json
- branches/agent1/receipts.jsonl
- branches/base/receipts.jsonl
- branches/official1/receipts.jsonl
- branches/w1/receipts.jsonl
- cost.json
- disclosure.json
- input.json
- lock.txt
- plan.json
- record.json
- result.json