fix: JSON protocol for Batch ops + CMV test (61/61 PASS)

- SendMessageBatch/DeleteMessageBatch: JSON tags Successful/Failed for AWS CLI v2
- Fix CMV test: capture receipt handle from same receive that checks visibility
This commit is contained in:
Naeel
2026-04-09 17:12:26 +03:00
parent 6c1aadd886
commit 5ecf2782fa
2 changed files with 13 additions and 14 deletions
+10 -10
View File
@@ -255,8 +255,8 @@ type SendMessageBatchResponse struct {
} }
type SendMessageBatchResult struct { type SendMessageBatchResult struct {
Entry []SendMessageBatchResultEntry `json:"SendMessageBatchResultEntry" xml:"SendMessageBatchResultEntry"` Entry []SendMessageBatchResultEntry `json:"Successful" xml:"SendMessageBatchResultEntry"`
Error []BatchResultErrorEntry `json:"BatchResultErrorEntry,omitempty" xml:"BatchResultErrorEntry,omitempty"` Error []BatchResultErrorEntry `json:"Failed,omitempty" xml:"BatchResultErrorEntry,omitempty"`
} }
func (r SendMessageBatchResponse) GetResult() interface{} { func (r SendMessageBatchResponse) GetResult() interface{} {
@@ -317,24 +317,24 @@ func (r DeleteQueueResponse) GetRequestId() string {
/*** Delete Message Batch Response ***/ /*** Delete Message Batch Response ***/
type DeleteMessageBatchResultEntry struct { type DeleteMessageBatchResultEntry struct {
Id string `json:"Id" xml:"Id"` Id string `json:"Id" xml:"Id"`
} }
type DeleteMessageBatchResult struct { type DeleteMessageBatchResult struct {
Successful []DeleteMessageBatchResultEntry `json:"DeleteMessageBatchResultEntry" xml:"DeleteMessageBatchResultEntry"` Successful []DeleteMessageBatchResultEntry `json:"Successful" xml:"DeleteMessageBatchResultEntry"`
Failed []BatchResultErrorEntry `json:"BatchResultErrorEntry,omitempty" xml:"BatchResultErrorEntry,omitempty"` Failed []BatchResultErrorEntry `json:"Failed,omitempty" xml:"BatchResultErrorEntry,omitempty"`
} }
type DeleteMessageBatchResponse struct { type DeleteMessageBatchResponse struct {
Xmlns string `json:"Xmlns" xml:"xmlns,attr"` Xmlns string `json:"Xmlns" xml:"xmlns,attr"`
Result DeleteMessageBatchResult `json:"DeleteMessageBatchResult" xml:"DeleteMessageBatchResult"` Result DeleteMessageBatchResult `json:"DeleteMessageBatchResult" xml:"DeleteMessageBatchResult"`
Metadata ResponseMetadata `json:"ResponseMetadata" xml:"ResponseMetadata"` Metadata ResponseMetadata `json:"ResponseMetadata" xml:"ResponseMetadata"`
} }
func (r DeleteMessageBatchResponse) GetResult() interface{} { func (r DeleteMessageBatchResponse) GetResult() interface{} {
return r.Result return r.Result
} }
func (r DeleteMessageBatchResponse) GetRequestId() string { func (r DeleteMessageBatchResponse) GetRequestId() string {
return r.Metadata.RequestId return r.Metadata.RequestId
} }
+3 -4
View File
@@ -435,12 +435,11 @@ check_not "Visibility: скрыто сразу после receive" "$R" "vis-msg
# Ждём истечения visibility window # Ждём истечения visibility window
sleep 3 sleep 3
# После паузы — снова доступно # После паузы — снова доступно (получаем с VT=30 и сохраняем receipt для CMV)
R=$(sqs "$T1_AK" "$T1_SK" receive-message --queue-url "$VIS_QURL") R3=$(sqs "$T1_AK" "$T1_SK" receive-message --queue-url "$VIS_QURL" --visibility-timeout 30)
check "Visibility: сообщение снова доступно" "$R" "vis-msg-${TS}" check "Visibility: сообщение снова доступно" "$R3" "vis-msg-${TS}"
# ChangeMessageVisibility — продлить время скрытия ДО истечения # ChangeMessageVisibility — продлить время скрытия ДО истечения
R3=$(sqs "$T1_AK" "$T1_SK" receive-message --queue-url "$VIS_QURL" --visibility-timeout 30)
VIS_RECEIPT=$(echo "$R3" | jq -r '.Messages[0].ReceiptHandle' 2>/dev/null) VIS_RECEIPT=$(echo "$R3" | jq -r '.Messages[0].ReceiptHandle' 2>/dev/null)
if [ -n "$VIS_RECEIPT" ] && [ "$VIS_RECEIPT" != "null" ]; then if [ -n "$VIS_RECEIPT" ] && [ "$VIS_RECEIPT" != "null" ]; then
R=$(sqs "$T1_AK" "$T1_SK" change-message-visibility \ R=$(sqs "$T1_AK" "$T1_SK" change-message-visibility \