Source: golang-github-getkin-kin-openapi Version: 0.32.0-1 Severity: serious Tags: sid bullseye X-Debbugs-CC: debian...@lists.debian.org User: debian...@lists.debian.org Usertags: flaky
Dear maintainer(s), Your package has an autopkgtest, great. However, because of the failure "caused" by golang-testify, I looked into the history of your autopkgtest [1] and I noticed it fails regularly. In all the logs I looked at the error is the same, it happens on multiple architectures. Because the unstable-to-testing migration software now blocks on regressions in testing, flaky tests, i.e. tests that flip between passing and failing without changes to the list of installed packages, are causing people unrelated to your package to spend time on these tests. Paul [1] https://ci.debian.net/data/autopkgtest/testing/amd64/g/golang-github-getkin-kin-openapi/11903910/log.gz === RUN TestConvOpenAPIV3ToV2 openapi2_conv_test.go:30: Error Trace: openapi2_conv_test.go:30 Error: Not equal: expected: map[string]interface {}{"basePath":"/v2", "consumes":[]interface {}{"application/json", "application/xml"}, "definitions":map[string]interface {}{"Error":map[string]interface {}{"description":"Error response.", "properties":map[string]interface {}{"message":map[string]interface {}{"type":"string"}}, "required":[]interface {}{"message"}, "type":"object"}, "Item":map[string]interface {}{"additionalProperties":true, "properties":map[string]interface {}{"foo":map[string]interface {}{"type":"string"}, "quux":map[string]interface {}{"$ref":"#/definitions/ItemExtension"}}, "type":"object"}, "ItemExtension":map[string]interface {}{"description":"It could be anything.", "type":"boolean"}}, "externalDocs":map[string]interface {}{"description":"Example Documentation", "url":"https://example/doc/"}, "host":"test.example.com", "info":map[string]interface {}{"title":"MyAPI", "version":"0.1", "x-info":"info extension"}, "parameters":map[string]interface {}{"banana":map[string]interface {}{"in":"path", "name":"banana", "required":true, "type":"string"}, "post_form_ref":map[string]interface {}{"description":"param description", "in":"formData", "name":"fileUpload2", "required":true, "type":"file", "x-formData-name":"fileUpload2", "x-mimetype":"text/plain"}, "put_body":map[string]interface {}{"in":"body", "name":"banana", "required":true, "schema":map[string]interface {}{"type":"string"}, "x-originalParamName":"banana"}}, "paths":map[string]interface {}{"/another/{banana}/{id}":map[string]interface {}{"parameters":[]interface {}{map[string]interface {}{"$ref":"#/parameters/banana"}, map[string]interface {}{"in":"path", "name":"id", "required":true, "type":"integer"}}}, "/example":map[string]interface {}{"delete":map[string]interface {}{"description":"example delete", "operationId":"example-delete", "parameters":[]interface {}{map[string]interface {}{"in":"query", "name":"x", "type":"string", "x-parameter":"parameter extension 1"}, map[string]interface {}{"default":250, "description":"The y parameter", "in":"query", "maximum":10000, "minimum":1, "name":"y", "type":"integer"}, map[string]interface {}{"description":"Only return results that intersect the provided bounding box.", "in":"query", "items":map[string]interface {}{"type":"number"}, "maxItems":4, "minItems":4, "name":"bbox", "type":"array"}}, "responses":map[string]interface {}{"200":map[string]interface {}{"description":"ok", "schema":map[string]interface {}{"items":map[string]interface {}{"$ref":"#/definitions/Item"}, "type":"array"}}, "404":map[string]interface {}{"description":"404 response"}, "default":map[string]interface {}{"description":"default response", "x-response":"response extension 1"}}, "security":[]interface {}{map[string]interface {}{"get_security_0":[]interface {}{"scope0", "scope1"}, "get_security_1":[]interface {}{}}}, "summary":"example get", "tags":[]interface {}{"Example"}}, "get":map[string]interface {}{"description":"example get", "responses":map[string]interface {}{"403":map[string]interface {}{"$ref":"#/responses/ForbiddenError"}, "404":map[string]interface {}{"description":"404 response"}, "default":map[string]interface {}{"description":"default response"}}, "x-operation":"operation extension 1"}, "head":map[string]interface {}{"description":"example head", "responses":map[string]interface {}{"default":map[string]interface {}{"description":"default response"}}}, "options":map[string]interface {}{"description":"example options", "responses":map[string]interface {}{"default":map[string]interface {}{"description":"default response"}}}, "patch":map[string]interface {}{"consumes":[]interface {}{"application/json", "application/xml"}, "description":"example patch", "parameters":[]interface {}{map[string]interface {}{"in":"body", "name":"patch_body", "schema":map[string]interface {}{"allOf":[]interface {}{map[string]interface {}{"$ref":"#/definitions/Item"}}}, "x-originalParamName":"patch_body", "x-requestBody":"requestbody extension 1"}}, "responses":map[string]interface {}{"default":map[string]interface {}{"description":"default response"}}}, "post":map[string]interface {}{"consumes":[]interface {}{"multipart/form-data"}, "description":"example post", "parameters":[]interface {}{map[string]interface {}{"description":"File Id", "in":"query", "name":"id", "type":"integer"}, map[string]interface {}{"description":"param description", "in":"formData", "name":"fileUpload", "type":"file", "x-formData-name":"fileUpload", "x-mimetype":"text/plain"}, map[string]interface {}{"description":"Description of file contents", "in":"formData", "name":"note", "type":"integer", "x-formData-name":"note"}, map[string]interface {}{"$ref":"#/parameters/post_form_ref"}}, "responses":map[string]interface {}{"default":map[string]interface {}{"description":"default response"}}}, "put":map[string]interface {}{"description":"example put", "parameters":[]interface {}{map[string]interface {}{"$ref":"#/parameters/put_body"}}, "responses":map[string]interface {}{"default":map[string]interface {}{"description":"default response"}}}, "x-path":"path extension 1", "x-path2":"path extension 2"}}, "responses":map[string]interface {}{"ForbiddenError":map[string]interface {}{"description":"Insufficient permission to perform the requested action.", "schema":map[string]interface {}{"$ref":"#/definitions/Error"}}}, "schemes":[]interface {}{"https"}, "security":[]interface {}{map[string]interface {}{"default_security_0":[]interface {}{"scope0", "scope1"}, "default_security_1":[]interface {}{}}}, "swagger":"2.0", "tags":[]interface {}{map[string]interface {}{"description":"An example tag.", "name":"Example"}}, "x-root":"root extension 1", "x-root2":"root extension 2"} actual : map[string]interface {}{"basePath":"/v2", "consumes":[]interface {}{"application/json", "application/xml"}, "definitions":map[string]interface {}{"Error":map[string]interface {}{"description":"Error response.", "properties":map[string]interface {}{"message":map[string]interface {}{"type":"string"}}, "required":[]interface {}{"message"}, "type":"object"}, "Item":map[string]interface {}{"additionalProperties":true, "properties":map[string]interface {}{"foo":map[string]interface {}{"type":"string"}, "quux":map[string]interface {}{"$ref":"#/definitions/ItemExtension"}}, "type":"object"}, "ItemExtension":map[string]interface {}{"description":"It could be anything.", "type":"boolean"}}, "externalDocs":map[string]interface {}{"description":"Example Documentation", "url":"https://example/doc/"}, "host":"test.example.com", "info":map[string]interface {}{"title":"MyAPI", "version":"0.1", "x-info":"info extension"}, "parameters":map[string]interface {}{"banana":map[string]interface {}{"in":"path", "name":"banana", "required":true, "type":"string"}, "post_form_ref":map[string]interface {}{"description":"param description", "in":"formData", "name":"fileUpload2", "required":true, "type":"file", "x-formData-name":"fileUpload2", "x-mimetype":"text/plain"}, "put_body":map[string]interface {}{"in":"body", "name":"banana", "required":true, "schema":map[string]interface {}{"type":"string"}, "x-originalParamName":"banana"}}, "paths":map[string]interface {}{"/another/{banana}/{id}":map[string]interface {}{"parameters":[]interface {}{map[string]interface {}{"$ref":"#/parameters/banana"}, map[string]interface {}{"in":"path", "name":"id", "required":true, "type":"integer"}}}, "/example":map[string]interface {}{"delete":map[string]interface {}{"description":"example delete", "operationId":"example-delete", "parameters":[]interface {}{map[string]interface {}{"in":"query", "name":"x", "type":"string", "x-parameter":"parameter extension 1"}, map[string]interface {}{"default":250, "description":"The y parameter", "in":"query", "maximum":10000, "minimum":1, "name":"y", "type":"integer"}, map[string]interface {}{"description":"Only return results that intersect the provided bounding box.", "in":"query", "items":map[string]interface {}{"type":"number"}, "maxItems":4, "minItems":4, "name":"bbox", "type":"array"}}, "responses":map[string]interface {}{"200":map[string]interface {}{"description":"ok", "schema":map[string]interface {}{"items":map[string]interface {}{"$ref":"#/definitions/Item"}, "type":"array"}}, "404":map[string]interface {}{"description":"404 response"}, "default":map[string]interface {}{"description":"default response", "x-response":"response extension 1"}}, "security":[]interface {}{map[string]interface {}{"get_security_0":[]interface {}{"scope0", "scope1"}, "get_security_1":[]interface {}{}}}, "summary":"example get", "tags":[]interface {}{"Example"}}, "get":map[string]interface {}{"description":"example get", "responses":map[string]interface {}{"403":map[string]interface {}{"$ref":"#/responses/ForbiddenError"}, "404":map[string]interface {}{"description":"404 response"}, "default":map[string]interface {}{"description":"default response"}}, "x-operation":"operation extension 1"}, "head":map[string]interface {}{"description":"example head", "responses":map[string]interface {}{"default":map[string]interface {}{"description":"default response"}}}, "options":map[string]interface {}{"description":"example options", "responses":map[string]interface {}{"default":map[string]interface {}{"description":"default response"}}}, "patch":map[string]interface {}{"consumes":[]interface {}{"application/json", "application/xml"}, "description":"example patch", "parameters":[]interface {}{map[string]interface {}{"in":"body", "name":"patch_body", "schema":map[string]interface {}{"allOf":[]interface {}{map[string]interface {}{"$ref":"#/definitions/Item"}}}, "x-originalParamName":"patch_body", "x-requestBody":"requestbody extension 1"}}, "responses":map[string]interface {}{"default":map[string]interface {}{"description":"default response"}}}, "post":map[string]interface {}{"consumes":[]interface {}{"multipart/form-data"}, "description":"example post", "parameters":[]interface {}{map[string]interface {}{"description":"File Id", "in":"query", "name":"id", "type":"integer"}, map[string]interface {}{"description":"Description of file contents", "in":"formData", "name":"note", "type":"integer", "x-formData-name":"note"}, map[string]interface {}{"$ref":"#/parameters/post_form_ref"}, map[string]interface {}{"description":"param description", "in":"formData", "name":"fileUpload", "type":"file", "x-formData-name":"fileUpload", "x-mimetype":"text/plain"}}, "responses":map[string]interface {}{"default":map[string]interface {}{"description":"default response"}}}, "put":map[string]interface {}{"description":"example put", "parameters":[]interface {}{map[string]interface {}{"$ref":"#/parameters/put_body"}}, "responses":map[string]interface {}{"default":map[string]interface {}{"description":"default response"}}}, "x-path":"path extension 1", "x-path2":"path extension 2"}}, "responses":map[string]interface {}{"ForbiddenError":map[string]interface {}{"description":"Insufficient permission to perform the requested action.", "schema":map[string]interface {}{"$ref":"#/definitions/Error"}}}, "schemes":[]interface {}{"https"}, "security":[]interface {}{map[string]interface {}{"default_security_0":[]interface {}{"scope0", "scope1"}, "default_security_1":[]interface {}{}}}, "swagger":"2.0", "tags":[]interface {}{map[string]interface {}{"description":"An example tag.", "name":"Example"}}, "x-root":"root extension 1", "x-root2":"root extension 2"} Diff: --- Expected +++ Actual @@ -221,2 +221,12 @@ }, + (map[string]interface {}) (len=5) { + (string) (len=11) "description": (string) (len=28) "Description of file contents", + (string) (len=2) "in": (string) (len=8) "formData", + (string) (len=4) "name": (string) (len=4) "note", + (string) (len=4) "type": (string) (len=7) "integer", + (string) (len=15) "x-formData-name": (string) (len=4) "note" + }, + (map[string]interface {}) (len=1) { + (string) (len=4) "$ref": (string) (len=26) "#/parameters/post_form_ref" + }, (map[string]interface {}) (len=6) { @@ -228,12 +238,2 @@ (string) (len=10) "x-mimetype": (string) (len=10) "text/plain" - }, - (map[string]interface {}) (len=5) { - (string) (len=11) "description": (string) (len=28) "Description of file contents", - (string) (len=2) "in": (string) (len=8) "formData", - (string) (len=4) "name": (string) (len=4) "note", - (string) (len=4) "type": (string) (len=7) "integer", - (string) (len=15) "x-formData-name": (string) (len=4) "note" - }, - (map[string]interface {}) (len=1) { - (string) (len=4) "$ref": (string) (len=26) "#/parameters/post_form_ref" } Test: TestConvOpenAPIV3ToV2 --- FAIL: TestConvOpenAPIV3ToV2 (0.00s) === RUN TestConvOpenAPIV2ToV3 --- PASS: TestConvOpenAPIV2ToV3 (0.00s) FAIL FAIL github.com/getkin/kin-openapi/openapi2conv 0.044s
OpenPGP_signature
Description: OpenPGP digital signature