Schemathesis v4.29.4 ━━━━━━━━━━━━━━━━━━━━ ✅ Loaded specification from http://0.0.0.0:35909/api/schema/?format=json (in 0.76s) Base URL: http://0.0.0.0:35909 Specification: Open API 3.1.1 Operations: 145 selected / 160 total Configuration: /home/stranger6667/data/programming/workbench/target s/weblate/schemathesis.toml Dictionaries: 7 dictionaries / 15 entries ✅ API capabilities: Supports NULL byte in headers: ✘ Accepts backslash and control characters in URL paths: ✓ ❌ Examples (in 0.36s) ❌ 2 failed ⏭ 143 skipped ❌ Coverage (in 149.65s) ✅ 77 passed ❌ 68 failed ❌ Fuzzing (in 649.78s) ✅ 30 passed ❌ 115 failed ❌ Stateful (in 2800.16s) Scenarios: 50685 API Links: 245 covered / 1501 selected / 1501 total ✅ 50258 passed ❌ 427 failed =================================== FAILURES =================================== _________ DELETE /api/groups/{id}/componentlists/{component_list_id}/ __________ 1. Test Case ID: cL869u - Undocumented Content-Type Received: text/html; charset=utf-8 Documented: application/json, text/csv [404] Not Found: ` Page Not Found @ Weblate Page Not Found @ Weblate Page Not Found @ Weblate Page Not Found @ Weblate Page Not Found @ Weblate Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/addons/?format=csv' _____________________________ GET /api/categories/ _____________________________ 1. Test Case ID: KZzBis - Response violates schema (2 violations) null is not of type "string" Validated against the response schema for status code 200. Schema at /components/schemas/PaginatedCategoryList/properties/next: { "type": "string", "format": "uri", "example": "http://api.example.org/accounts/?page=4" } Value: null null is not of type "string" Validated against the response schema for status code 200. Schema at /components/schemas/PaginatedCategoryList/properties/previous: { "type": "string", "format": "uri", "example": "http://api.example.org/accounts/?page=2" } Value: null - API accepted schema-violating request Invalid data should have been rejected Expected: 400, 401, 403, 404, 405, 406, 409, 415, 422, 428, 429, 5xx Invalid component: parameter `page_size` in query - page_size: Incorrect type [200] OK: `{"count":0,"next":null,"previous":null,"results":[]}` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/categories/?page_size=null&page_size=null' 2. Test Case ID: iIDyKh - JSON deserialization error Response must be valid JSON with 'Content-Type: application/json' header: Expecting value: line 1 column 1 (char 0) - Missing Content-Type header The following media types are documented in the schema: - `application/json` - `text/csv` [200] OK: Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/categories/?format=csv' ______________________________ GET /api/changes/ _______________________________ 1. Test Case ID: vTnn6V - Response violates schema (7 violations) null is not of type "string" Validated against the response schema for status code 200. Schema at /components/schemas/Change/properties/author: { "type": "string", "format": "uri", "readOnly": true } Value: null null is not of type "string" Validated against the response schema for status code 200. Schema at /components/schemas/Change/properties/component: { "type": "string", "format": "uri", "readOnly": true } Value: null null is not of type "string" Validated against the response schema for status code 200. Schema at /components/schemas/Change/properties/translation: { "type": "string", "format": "uri", "readOnly": true } Value: null null is not of type "string" Validated against the response schema for status code 200. Schema at /components/schemas/Change/properties/unit: { "type": "string", "format": "uri", "readOnly": true } Value: null null is not of type "string" Validated against the response schema for status code 200. Schema at /components/schemas/Change/properties/user: { "type": "string", "format": "uri", "readOnly": true } Value: null null is not of type "string" Validated against the response schema for status code 200. Schema at /components/schemas/PaginatedChangeList/properties/next: { "type": "string", "format": "uri", "example": "http://api.example.org/accounts/?page=4" } Value: null null is not of type "string" Validated against the response schema for status code 200. Schema at /components/schemas/PaginatedChangeList/properties/previous: { "type": "string", "format": "uri", "example": "http://api.example.org/accounts/?page=2" } Value: null [200] OK: `{"count":18,"next":null,"previous":null,"results":[{"unit":null,"component":"http://localhost:35909/api/components/workbench/glossary/","translation":"http://localhost:35909/api/translations/workbench/glossary/de/","user":null,"author":null,"timestamp":"2026-10-07T06:14:59.023260Z","action":0,"target":"","old":"","details":{"reason":"new file","filename":"de.tbx"},"id":18,"action_name":"Resource updated","url":"http://localhost:35909/api/changes/18/"},{"unit":null,"component":"http://localhost:35909/api/com // Output truncated...` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/changes/?user=' 2. Test Case ID: PMvDj0 - Server error [500] Internal Server Error: `errors.0.attr,errors.0.code,errors.0.detail,type ,error,Server Error (500),server_error` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/changes/?page_size=3572639366&action=5&action=52&action=42&action=81&action=23&action=3&action=26&action=49&action=71&action=27&action=4&action=74&action=73&page=102&format=csv×tamp_before=2438-11-23T03%3A14%3A50.13231-23%3A13×tamp_after=4511-11-08T08%3A13%3A02Z&user=%C2%A2%C3%9B%C3%86' 3. Test Case ID: 5kiZKb - API accepted schema-violating request Invalid data should have been rejected Expected: 400, 401, 403, 404, 405, 406, 409, 415, 422, 428, 429, 5xx Invalid component: parameter `page_size` in query - violates `type` at /properties/page_size (was integer, became null) [200] OK: `{"count":0,"next":null,"previous":null,"results":[]}` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/changes/?page_size=null×tamp_after=1735-04-25T00%3A26%3A44.3Z&user=×tamp_before=0620-02-08T03%3A43%3A27Z' ____________________________ GET /api/changes/{id}/ ____________________________ 1. Test Case ID: DeheWb - Response violates schema (3 violations) null is not of type "string" Validated against the response schema for status code 200. Schema at /components/schemas/Change/properties/component: { "type": "string", "format": "uri", "readOnly": true } Value: null null is not of type "string" Validated against the response schema for status code 200. Schema at /components/schemas/Change/properties/translation: { "type": "string", "format": "uri", "readOnly": true } Value: null null is not of type "string" Validated against the response schema for status code 200. Schema at /components/schemas/Change/properties/unit: { "type": "string", "format": "uri", "readOnly": true } Value: null [200] OK: `{"unit":null,"component":null,"translation":null,"user":"http://localhost:35909/api/users/admin/","author":"http://localhost:35909/api/users/admin/","timestamp":"2026-10-07T06:14:57.556966Z","action":50,"target":"","old":"","details":{},"id":1,"action_name":"Project created","url":"http://localhost:35909/api/changes/1/"}` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' http://0.0.0.0:35909/api/changes/1/ 2. Test Case ID: zDxswu - Response violates schema (2 violations) null is not of type "string" Validated against the response schema for status code 200. Schema at /components/schemas/Change/properties/author: { "type": "string", "format": "uri", "readOnly": true } Value: null null is not of type "string" Validated against the response schema for status code 200. Schema at /components/schemas/Change/properties/user: { "type": "string", "format": "uri", "readOnly": true } Value: null [200] OK: `{"unit":null,"component":"http://localhost:35909/api/components/workbench/strings/?format=json","translation":null,"user":null,"author":null,"timestamp":"2026-10-07T06:14:58.618576Z","action":21,"target":"","old":"","details":{"new_head":"a87a0389353c9c39e82d722e59c4cd37998b73c0","previous_head":"a87a0389353c9c39e82d722e59c4cd37998b73c0"},"id":3,"action_name":"Repository rebased","url":"http://localhost:35909/api/changes/3/?format=json"}` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/changes/3/?format=json' 3. Test Case ID: ZmTDSm - API accepted schema-violating request Invalid data should have been rejected Expected: 400, 401, 403, 404, 405, 406, 409, 415, 422, 428, 429, 5xx Invalid component: parameter `format` in query - violates `enum` at /properties/format [200] OK: `{"unit":null,"component":"http://localhost:35909/api/components/workbench/strings/?format=","translation":null,"user":"http://localhost:35909/api/users/admin/?format=","author":"http://localhost:35909/api/users/admin/?format=","timestamp":"2026-10-07T06:14:58.589913Z","action":51,"target":"","old":"","details":{"origin":"api"},"id":2,"action_name":"Component created","url":"http://localhost:35909/api/changes/2/?format="}` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/changes/2/?format=' __________________________ GET /api/component-lists/ ___________________________ 1. Test Case ID: BZc32C - Response violates schema (2 violations) null is not of type "string" Validated against the response schema for status code 200. Schema at /components/schemas/PaginatedComponentListList/properties/next: { "type": "string", "format": "uri", "example": "http://api.example.org/accounts/?page=4" } Value: null null is not of type "string" Validated against the response schema for status code 200. Schema at /components/schemas/PaginatedComponentListList/properties/previous: { "type": "string", "format": "uri", "example": "http://api.example.org/accounts/?page=2" } Value: null - API accepted schema-violating request Invalid data should have been rejected Expected: 400, 401, 403, 404, 405, 406, 409, 415, 422, 428, 429, 5xx Invalid component: parameter `page_size` in query - page_size: Incorrect type [200] OK: `{"count":0,"next":null,"previous":null,"results":[]}` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/component-lists/?page_size=null&page_size=null' 2. Test Case ID: DaBURY - JSON deserialization error Response must be valid JSON with 'Content-Type: application/json' header: Expecting value: line 1 column 1 (char 0) - Missing Content-Type header The following media types are documented in the schema: - `application/json` - `text/csv` [200] OK: Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/component-lists/?format=csv' _________________ GET /api/component-lists/{slug}/components/ __________________ 1. Test Case ID: ohU7je - Response violates schema "auto_assign" is a required property Validated against the response schema for status code 200. Schema at /components/schemas/ComponentList: { "required": [ "auto_assign", "components", "id", "name", "slug", "url" ], "type": "object", "properties": { "name": { "type": "string", "title": "Component list name", "description": "Display name", "maxLength": 100 }, "slug": { "type": "string", // Output truncated... } Value: { "count": 0, "next": null, "previous": null, "results": [] } [200] OK: `{"count":0,"next":null,"previous":null,"results":[]}` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/component-lists/0/components/?format=json' 2. Test Case ID: tWkeh4 - JSON deserialization error Response must be valid JSON with 'Content-Type: application/json' header: Expecting value: line 1 column 1 (char 0) - Missing Content-Type header The following media types are documented in the schema: - `application/json` - `text/csv` [200] OK: Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/component-lists/0/components/?format=csv' 3. Test Case ID: MRS84B - API accepted schema-violating request Invalid data should have been rejected Expected: 400, 401, 403, 404, 405, 406, 409, 415, 422, 428, 429, 5xx Invalid component: parameter `format` in query - violates `enum` at /properties/format [200] OK: `{"count":0,"next":null,"previous":null,"results":[]}` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/component-lists/_S/components/?format=' _____________________________ GET /api/components/ _____________________________ 1. Test Case ID: oCKi2X - Response violates schema (5 violations) "" is not a "email" Validated against the response schema for status code 200. Schema at /components/schemas/Component/properties/report_source_bugs: { "format": "email", "type": "string", "title": "Source string bug reporting address", "description": "E-mail address for reports on errors in source strings. L... "maxLength": 190 } Value: "" null is not of type "string" Validated against the response schema for status code 200. Schema at /components/schemas/Component/properties/license_url: { "type": "string", "readOnly": true } Value: null null is not of type "string" Validated against the response schema for status code 200. Schema at /components/schemas/Component/properties/linked_component: { "type": "string", "format": "uri", "readOnly": true } Value: null null is not of type "string" Validated against the response schema for status code 200. Schema at /components/schemas/PaginatedComponentList/properties/next: { "type": "string", "format": "uri", "example": "http://api.example.org/accounts/?page=4" } Value: null null is not of type "string" Validated against the response schema for status code 200. Schema at /components/schemas/PaginatedComponentList/properties/previous: { "type": "string", "format": "uri", "example": "http://api.example.org/accounts/?page=2" } Value: null - API accepted schema-violating request Invalid data should have been rejected Expected: 400, 401, 403, 404, 405, 406, 409, 415, 422, 428, 429, 5xx Invalid component: parameter `page_size` in query - page_size: Incorrect type [200] OK: `{"count":2,"next":null,"previous":null,"results":[{"name":"Strings","slug":"strings","id":1,"source_language":{"id":179,"code":"en","name":"English","plural":{"id":179,"source":0,"number":2,"formula":"n != 1","type":1},"aliases":["base","en_en","en_us","eng","enp","source"],"direction":"ltr","population":1728003224,"web_url":"http://localhost:35909/languages/en/","url":"http://localhost:35909/api/languages/en/","statistics_url":"http://localhost:35909/api/languages/en/statistics/"},"project":{"name":"Workbe // Output truncated...` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/components/?page_size=null&page_size=null' _________________ GET /api/components/{project__slug}/{slug}/ __________________ 1. Test Case ID: P9HT7O - Response violates schema (2 violations) null is not of type "string" Validated against the response schema for status code 200. Schema at /components/schemas/Component/properties/license_url: { "type": "string", "readOnly": true } Value: null null is not of type "string" Validated against the response schema for status code 200. Schema at /components/schemas/Component/properties/linked_component: { "type": "string", "format": "uri", "readOnly": true } Value: null [200] OK: `{"name":"Strings","slug":"strings","id":1,"source_language":{"id":179,"code":"en","name":"English","plural":{"id":179,"source":0,"number":2,"formula":"n != 1","type":1},"aliases":["base","en_en","en_us","eng","enp","source"],"direction":"ltr","population":1728003224,"web_url":"http://localhost:35909/languages/en/","url":"http://localhost:35909/api/languages/en/","statistics_url":"http://localhost:35909/api/languages/en/statistics/"},"project":{"name":"Workbench","slug":"workbench","id":1,"web":"https://0.co // Output truncated...` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' http://0.0.0.0:35909/api/components/workbench/strings/ 2. Test Case ID: NB2ibk - Response violates schema "" is not a "email" Validated against the response schema for status code 200. Schema at /components/schemas/Component/properties/report_source_bugs: { "format": "email", "type": "string", "title": "Source string bug reporting address", "description": "E-mail address for reports on errors in source strings. L... "maxLength": 190 } Value: "" [200] OK: `{"name":"Workbench","slug":"glossary","id":2,"source_language":{"id":179,"code":"en","name":"English","plural":{"id":179,"source":0,"number":2,"formula":"n != 1","type":1},"aliases":["base","en_en","en_us","eng","enp","source"],"direction":"ltr","population":1728003224,"web_url":"http://localhost:35909/languages/en/","url":"http://localhost:35909/api/languages/en/","statistics_url":"http://localhost:35909/api/languages/en/statistics/"},"project":{"name":"Workbench","slug":"workbench","id":1,"web":"https://0 // Output truncated...` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' http://0.0.0.0:35909/api/components/workbench/glossary/ _____________ GET /api/components/{project__slug}/{slug}/changes/ ______________ 1. Test Case ID: BxpwY7 - Response violates schema "addons" is a required property Validated against the response schema for status code 200. Schema at /components/schemas/Component: { "required": [ "addons", "changes_list_url", "credits_url", "file_format", "filemask", "id", "license_url", "linked_component", "links_url", "lock_url", "locked", "name", "project", "repo", "repository_url", "slug", "statistics_url", // Output truncated... } Value: { "count": 170, "next": "http://localhost:35909/api/components/workbench/strings/changes/... "previous": null, "results": [ { "action": 3, "action_name": "Comment added", "author": "http://localhost:35909/api/users/admin/", "component": "http://localhost:35909/api/components/workbench/str... "details": { "comment": "0" }, "id": 290, "old": "", "target": "", "timestamp": "2026-10-07T06:18:42.695636Z", "translation": "http://localhost:35909/api/translations/workbench... "unit": "http://localhost:35909/api/units/1/", // Output truncated... } [200] OK: `{"count":170,"next":"http://localhost:35909/api/components/workbench/strings/changes/?page=2","previous":null,"results":[{"unit":"http://localhost:35909/api/units/1/","component":"http://localhost:35909/api/components/workbench/strings/","translation":"http://localhost:35909/api/translations/workbench/strings/en/","user":"http://localhost:35909/api/users/admin/","author":"http://localhost:35909/api/users/admin/","timestamp":"2026-10-07T06:18:42.695636Z","action":3,"target":"","old":"","details":{"comment":" // Output truncated...` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' http://0.0.0.0:35909/api/components/workbench/strings/changes/ 2. Test Case ID: RnB9mV - API accepted schema-violating request Invalid data should have been rejected Expected: 400, 401, 403, 404, 405, 406, 409, 415, 422, 428, 429, 5xx Invalid component: parameter `format` in query - violates `enum` at /properties/format [200] OK: `{"count":430,"next":"http://localhost:35909/api/components/workbench/strings/changes/?format=&page=2","previous":null,"results":[{"unit":"http://localhost:35909/api/units/1/?format=","component":"http://localhost:35909/api/components/workbench/strings/?format=","translation":"http://localhost:35909/api/translations/workbench/strings/en/?format=","user":"http://localhost:35909/api/users/admin/?format=","author":"http://localhost:35909/api/users/admin/?format=","timestamp":"2026-10-07T07:09:30.367190Z","actio // Output truncated...` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/components/workbench/strings/changes/?format=' _____________ GET /api/components/{project__slug}/{slug}/credits/ ______________ 1. Test Case ID: nSgGvJ - Response violates schema {"errors":[{"attr":"start","code":"invalid","detail":"Invalid format for `start`"}],"type":"validation_error"} is not valid under any of the schemas listed in the 'oneOf' keyword Validated against the response schema for status code 400. Schema at /components/schemas/ApiComponentsCreditsRetrieveErrorResponse400: { "oneOf": [ { "$ref": "#/components/schemas/ParseErrorResponse" } ], "discriminator": { "propertyName": "type", "mapping": { "client_error": "#/components/schemas/ParseErrorResponse" } } } Value: { "errors": [ { "attr": "start", "code": "invalid", "detail": "Invalid format for `start`" } ], "type": "validation_error" } - API rejected schema-compliant request Valid data should have been accepted Expected: 2xx, 401, 403, 404, 409, 429, 5xx [400] Bad Request: `{"type":"validation_error","errors":[{"code":"invalid","detail":"Invalid format for `start`","attr":"start"}]}` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' http://0.0.0.0:35909/api/components/workbench/glossary/credits/ _______________ GET /api/components/{project__slug}/{slug}/file/ _______________ 1. Test Case ID: TfX8uw - Undocumented Content-Type Received: application/zip Documented: application/json, text/csv [200] OK: Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/components/workbench/strings/file/?format=json' 2. Test Case ID: Tcaxq9 - API accepted schema-violating request Invalid data should have been rejected Expected: 400, 401, 403, 404, 405, 406, 409, 415, 422, 428, 429, 5xx Invalid component: parameter `format` in query - violates `enum` at /properties/format [200] OK: Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/components/workbench/glossary/file/?format=%F3%81%B0%99B%C3%B8' ______________ GET /api/components/{project__slug}/{slug}/links/ _______________ 1. Test Case ID: JzH1fF - Response violates schema "addons" is a required property Validated against the response schema for status code 200. Schema at /components/schemas/Component: { "required": [ "addons", "changes_list_url", "credits_url", "file_format", "filemask", "id", "license_url", "linked_component", "links_url", "lock_url", "locked", "name", "project", "repo", "repository_url", "slug", "statistics_url", // Output truncated... } Value: { "count": 0, "next": null, "previous": null, "results": [] } [200] OK: `{"count":0,"next":null,"previous":null,"results":[]}` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' http://0.0.0.0:35909/api/components/workbench/glossary/links/ 2. Test Case ID: 0i15AZ - JSON deserialization error Response must be valid JSON with 'Content-Type: application/json' header: Expecting value: line 1 column 1 (char 0) - Missing Content-Type header The following media types are documented in the schema: - `application/json` - `text/csv` [200] OK: Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/components/workbench/strings/links/?format=csv' 3. Test Case ID: j4pSph - API accepted schema-violating request Invalid data should have been rejected Expected: 400, 401, 403, 404, 405, 406, 409, 415, 422, 428, 429, 5xx Invalid component: parameter `format` in query - violates `enum` at /properties/format [200] OK: `{"count":0,"next":null,"previous":null,"results":[]}` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/components/workbench/glossary/links/?format=' _______________ GET /api/components/{project__slug}/{slug}/lock/ _______________ 1. Test Case ID: vQwW0G - Response violates schema "lock" is a required property Validated against the response schema for status code 200. Schema: { "required": [ "lock" ], "type": "object", "properties": { "lock": { "type": "boolean" } } } Value: { "locked": false } [200] OK: `{"locked":false}` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' http://0.0.0.0:35909/api/components/workbench/strings/lock/ 2. Test Case ID: yXbBxv - API accepted schema-violating request Invalid data should have been rejected Expected: 400, 401, 403, 404, 405, 406, 409, 415, 422, 428, 429, 5xx Invalid component: parameter `format` in query - violates `enum` at /properties/format [200] OK: `{"locked":false}` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/components/workbench/glossary/lock/?format=' ___________ GET /api/components/{project__slug}/{slug}/new_template/ ___________ 1. Test Case ID: FxVDJD - API accepted schema-violating request Invalid data should have been rejected Expected: 400, 401, 403, 404, 405, 406, 409, 415, 422, 428, 429, 5xx Invalid component: parameter `format` in query - violates `enum` at /properties/format [200] OK: `msgid "" msgstr "" "Content-Type: text/plain; charset=UTF-8\n" msgid "Hello" msgstr "" msgid "World" msgstr ""` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/components/workbench/strings/new_template/?format=' ____________ GET /api/components/{project__slug}/{slug}/repository/ ____________ 1. Test Case ID: 0SL6l1 - Response violates schema "operation" is a required property Validated against the response schema for status code 200. Schema at /components/schemas/RepoRequest: { "required": [ "operation" ], "type": "object", "properties": { "operation": { "$ref": "#/components/schemas/OperationEnum" } } } Value: { "merge_failure": null, "needs_commit": false, "needs_merge": false, "needs_push": false, "remote_commit": null, "status": "On branch main\nnothing to commit, working tree clean\n", "url": "http://localhost:35909/api/components/workbench/glossary/reposito... "weblate_commit": null } [200] OK: `{"needs_commit":false,"needs_merge":false,"needs_push":false,"url":"http://localhost:35909/api/components/workbench/glossary/repository/","remote_commit":null,"weblate_commit":null,"status":"On branch main\nnothing to commit, working tree clean\n","merge_failure":null}` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' http://0.0.0.0:35909/api/components/workbench/glossary/repository/ 2. Test Case ID: olwCIz - API accepted schema-violating request Invalid data should have been rejected Expected: 400, 401, 403, 404, 405, 406, 409, 415, 422, 428, 429, 5xx Invalid component: parameter `format` in query - violates `enum` at /properties/format [200] OK: `{"needs_commit":false,"needs_merge":false,"needs_push":false,"url":"http://localhost:35909/api/components/workbench/strings/repository/?format=","remote_commit":null,"weblate_commit":null,"status":"On branch main\nnothing to commit, working tree clean\n","merge_failure":null}` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/components/workbench/strings/repository/?format=' ___________ GET /api/components/{project__slug}/{slug}/screenshots/ ____________ 1. Test Case ID: 4MM5gm - Response violates schema "addons" is a required property Validated against the response schema for status code 200. Schema at /components/schemas/Component: { "required": [ "addons", "changes_list_url", "credits_url", "file_format", "filemask", "id", "license_url", "linked_component", "links_url", "lock_url", "locked", "name", "project", "repo", "repository_url", "slug", "statistics_url", // Output truncated... } Value: { "count": 0, "next": null, "previous": null, "results": [] } [200] OK: `{"count":0,"next":null,"previous":null,"results":[]}` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/components/workbench/strings/screenshots/?format=json' 2. Test Case ID: S0puny - JSON deserialization error Response must be valid JSON with 'Content-Type: application/json' header: Expecting value: line 1 column 1 (char 0) - Missing Content-Type header The following media types are documented in the schema: - `application/json` - `text/csv` [200] OK: Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/components/workbench/strings/screenshots/?format=csv' 3. Test Case ID: qcB2ug - API accepted schema-violating request Invalid data should have been rejected Expected: 400, 401, 403, 404, 405, 406, 409, 415, 422, 428, 429, 5xx Invalid component: parameter `format` in query - violates `enum` at /properties/format [200] OK: `{"count":0,"next":null,"previous":null,"results":[]}` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/components/workbench/glossary/screenshots/?format=' ____________ GET /api/components/{project__slug}/{slug}/statistics/ ____________ 1. Test Case ID: YVUPEO - Response violates schema "addons" is a required property Validated against the response schema for status code 200. Schema at /components/schemas/Component: { "required": [ "addons", "changes_list_url", "credits_url", "file_format", "filemask", "id", "license_url", "linked_component", "links_url", "lock_url", "locked", "name", "project", "repo", "repository_url", "slug", "statistics_url", // Output truncated... } Value: { "count": 3, "next": null, "previous": null, "results": [ { "approved": 0, "approved_chars": 0, "approved_chars_percent": 0.0, "approved_percent": 0.0, "approved_words": 0, "approved_words_percent": 0.0, "code": "en", "comments": 2, "failing": 0, "failing_percent": 0.0, "fuzzy": 0, "fuzzy_chars": 0, "fuzzy_chars_percent": 0.0, // Output truncated... } [200] OK: `{"count":3,"next":null,"previous":null,"results":[{"total":2,"total_words":2,"total_chars":10,"last_change":"2026-10-07T06:18:42.695636Z","recent_changes":0,"translated":2,"translated_words":2,"translated_percent":100.0,"translated_words_percent":100.0,"translated_chars":10,"translated_chars_percent":100.0,"fuzzy":0,"fuzzy_percent":0.0,"fuzzy_words":0,"fuzzy_words_percent":0.0,"fuzzy_chars":0,"fuzzy_chars_percent":0.0,"failing":0,"failing_percent":0.0,"approved":0,"approved_percent":0.0,"approved_words":0," // Output truncated...` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' http://0.0.0.0:35909/api/components/workbench/strings/statistics/ 2. Test Case ID: klm8E4 - Response violates schema [{"approved":0,"approved_chars":0,"approved_chars_percent":0.0,"approved_percent":0.0,"approved_words":0,"approved_words_percent":0.0,"code":"en","comments":0,"failing":0,"failing_percent":0.0,"fuzzy":0,"fuzzy_chars":0,"fuzzy_chars_percent":0.0,"fuzzy_percent":0.0,"fuzzy_words":0,"fuzzy_words_percent":0.0,"last_change":null,"name":"English","readonly":0,"readonly_chars":0,"readonly_chars_percent":0.0,"readonly_percent":0.0,"readonly_words":0,"readonly_words_percent":0.0,"recent_changes":0,"suggestions":0,"total":0,"total_chars":0,"total_words":0,"translate_url":"http://localhost:35909/translate/workbench/glossary/en/","translated":0,"translated_chars":0,"translated_chars_percent":100.0,"translated_percent":100.0,"translated_words":0,"translated_words_percent":100.0,"url":"http://localhost:35909/projects/workbench/glossary/en/"},{"approved":0,"approved_chars":0,"approved_chars_percent":0.0,"approved_percent":0.0,"approved_words":0,"approved_words_percent":0.0,"code":"cs","comments":0,"failing":0,"failing_percent":0.0,"fuzzy":0,"fuzzy_chars":0,"fuzzy_chars_percent":0.0,"fuzzy_percent":0.0,"fuzzy_words":0,"fuzzy_words_percent":0.0,"last_change":"2026-10-07T06:18:26.345808Z","name":"Czech","readonly":0,"readonly_chars":0,"readonly_chars_percent":0.0,"readonly_percent":0.0,"readonly_words":0,"readonly_words_percent":0.0,"recent_changes":0,"suggestions":0,"total":0,"total_chars":0,"total_words":0,"translate_url":"http://localhost:35909/translate/workbench/glossary/cs/","translated":0,"translated_chars":0,"translated_chars_percent":100.0,"translated_percent":100.0,"translated_words":0,"translated_words_percent":100.0,"url":"http://localhost:35909/projects/workbench/glossary/cs/"},{"approved":0,"approved_chars":0,"approved_chars_percent":0.0,"approved_percent":0.0,"approved_words":0,"approved_words_percent":0.0,"code":"de","comments":0,"failing":0,"failing_percent":0.0,"fuzzy":0,"fuzzy_chars":0,"fuzzy_chars_percent":0.0,"fuzzy_percent":0.0,"fuzzy_words":0,"fuzzy_words_percent":0.0,"last_change":"2026-10-07T06:18:26.351479Z","name":"Auth","readonly":0,"readonly_chars":0,"readonly_chars_percent":0.0,"readonly_percent":0.0,"readonly_words":0,"readonly_words_percent":0.0,"recent_changes":0,"suggestions":0,"total":0,"total_chars":0,"total_words":0,"translate_url":"http://localhost:35909/translate/workbench/glossary/de/","translated":0,"translated_chars":0,"translated_chars_percent":100.0,"translated_percent":100.0,"translated_words":0,"translated_words_percent":100.0,"url":"http://localhost:35909/projects/workbench/glossary/de/"}] is not of type "object" Validated against the response schema for status code 200. Schema at /components/schemas/Component: { "type": "object", "properties": { "name": { "type": "string", "title": "Component name", "description": "Display name", "maxLength": 100 }, "slug": { "type": "string", "title": "URL slug", "description": "Name used in URLs and filenames.", "maxLength": 100, "pattern": "^[-a-zA-Z0-9_]+$" }, "id": { "type": "integer", "readOnly": true // Output truncated... } Value: [ { "approved": 0, "approved_chars": 0, "approved_chars_percent": 0.0, "approved_percent": 0.0, "approved_words": 0, "approved_words_percent": 0.0, "code": "en", "comments": 0, "failing": 0, "failing_percent": 0.0, "fuzzy": 0, "fuzzy_chars": 0, "fuzzy_chars_percent": 0.0, "fuzzy_percent": 0.0, "fuzzy_words": 0, "fuzzy_words_percent": 0.0, "last_change": null, // Output truncated... ] [200] OK: `[{"total":0,"total_words":0,"total_chars":0,"last_change":null,"recent_changes":0,"translated":0,"translated_words":0,"translated_percent":100.0,"translated_words_percent":100.0,"translated_chars":0,"translated_chars_percent":100.0,"fuzzy":0,"fuzzy_percent":0.0,"fuzzy_words":0,"fuzzy_words_percent":0.0,"fuzzy_chars":0,"fuzzy_chars_percent":0.0,"failing":0,"failing_percent":0.0,"approved":0,"approved_percent":0.0,"approved_words":0,"approved_words_percent":0.0,"approved_chars":0,"approved_chars_percent":0.0, // Output truncated...` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/components/workbench/glossary/statistics/?format=json-flat' ___________ GET /api/components/{project__slug}/{slug}/translations/ ___________ 1. Test Case ID: A9UphN - Response violates schema "addons" is a required property Validated against the response schema for status code 200. Schema at /components/schemas/Component: { "required": [ "addons", "changes_list_url", "credits_url", "file_format", "filemask", "id", "license_url", "linked_component", "links_url", "lock_url", "locked", "name", "project", "repo", "repository_url", "slug", "statistics_url", // Output truncated... } Value: { "count": 3, "next": null, "previous": null, "results": [ { "changes_list_url": "http://localhost:35909/api/translations/work... "failing_checks": 0, "failing_checks_percent": 0.0, "failing_checks_words": 0, "file_url": "http://localhost:35909/api/translations/workbench/st... "filename": "po/messages.pot", "fuzzy": 0, "fuzzy_percent": 0.0, "fuzzy_words": 0, "have_comment": 2, "have_suggestion": 0, "id": 1, "is_source": true, // Output truncated... } [200] OK: `{"count":3,"next":null,"previous":null,"results":[{"language":{"id":179,"code":"en","name":"English","plural":{"id":179,"source":0,"number":2,"formula":"n != 1","type":1},"aliases":["base","en_en","en_us","eng","enp","source"],"direction":"ltr","population":1728003224,"web_url":"http://localhost:35909/languages/en/","url":"http://localhost:35909/api/languages/en/","statistics_url":"http://localhost:35909/api/languages/en/statistics/"},"language_code":"en","id":1,"filename":"po/messages.pot","revision":"0da7 // Output truncated...` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' http://0.0.0.0:35909/api/components/workbench/strings/translations/ _______________________________ GET /api/groups/ _______________________________ 1. Test Case ID: KqNDcU - Response violates schema (3 violations) null is not of type "string" Validated against the response schema for status code 200. Schema at /components/schemas/Group/properties/defining_project: { "type": "string", "format": "uri" } Value: null null is not of type "string" Validated against the response schema for status code 200. Schema at /components/schemas/PaginatedGroupList/properties/next: { "type": "string", "format": "uri", "example": "http://api.example.org/accounts/?page=4" } Value: null null is not of type "string" Validated against the response schema for status code 200. Schema at /components/schemas/PaginatedGroupList/properties/previous: { "type": "string", "format": "uri", "example": "http://api.example.org/accounts/?page=2" } Value: null - API accepted schema-violating request Invalid data should have been rejected Expected: 400, 401, 403, 404, 405, 406, 409, 415, 422, 428, 429, 5xx Invalid component: parameter `page_size` in query - page_size: Incorrect type [200] OK: `{"count":7,"next":null,"previous":null,"results":[{"id":1,"name":"Guests","defining_project":null,"project_selection":3,"language_selection":1,"url":"http://localhost:35909/api/groups/1/","roles":["http://localhost:35909/api/roles/3/","http://localhost:35909/api/roles/4/"],"languages":[],"projects":[],"componentlists":[],"components":[],"enforced_2fa":false},{"id":2,"name":"Viewers","defining_project":null,"project_selection":4,"language_selection":1,"url":"http://localhost:35909/api/groups/2/","roles":[]," // Output truncated...` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/groups/?page_size=null&page_size=null' ____________________________ GET /api/groups/{id}/ _____________________________ 1. Test Case ID: iaQ4m3 - Response violates schema null is not of type "string" Validated against the response schema for status code 200. Schema at /components/schemas/Group/properties/defining_project: { "type": "string", "format": "uri" } Value: null [200] OK: `{"id":1,"name":"Guests","defining_project":null,"project_selection":3,"language_selection":1,"url":"http://localhost:35909/api/groups/1/","roles":["http://localhost:35909/api/roles/3/","http://localhost:35909/api/roles/4/"],"languages":[],"projects":[],"componentlists":[],"components":[],"enforced_2fa":false}` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' http://0.0.0.0:35909/api/groups/1/ 2. Test Case ID: 9MzDID - API accepted schema-violating request Invalid data should have been rejected Expected: 400, 401, 403, 404, 405, 406, 409, 415, 422, 428, 429, 5xx Invalid component: parameter `format` in query - violates `enum` at /properties/format [200] OK: `{"id":1,"name":"Guests","defining_project":null,"project_selection":3,"language_selection":1,"url":"http://localhost:35909/api/groups/1/?format=","roles":["http://localhost:35909/api/roles/3/?format=","http://localhost:35909/api/roles/4/?format="],"languages":[],"projects":[],"componentlists":[],"components":[],"enforced_2fa":false}` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/groups/1/?format=' _____________________________ GET /api/languages/ ______________________________ 1. Test Case ID: xTbVX3 - Response violates schema null is not of type "string" Validated against the response schema for status code 200. Schema at /components/schemas/PaginatedLanguageList/properties/previous: { "type": "string", "format": "uri", "example": "http://api.example.org/accounts/?page=2" } Value: null - API accepted schema-violating request Invalid data should have been rejected Expected: 400, 401, 403, 404, 405, 406, 409, 415, 422, 428, 429, 5xx Invalid component: parameter `page_size` in query - page_size: Incorrect type [200] OK: `{"count":779,"next":"http://localhost:35909/api/languages/?page=2&page_size=null&page_size=null","previous":null,"results":[{"id":1,"code":"aa","name":"Afar","plural":{"id":1,"source":0,"number":2,"formula":"n != 1","type":1},"aliases":["aar"],"direction":"ltr","population":2305971,"web_url":"http://localhost:35909/languages/aa/","url":"http://localhost:35909/api/languages/aa/","statistics_url":"http://localhost:35909/api/languages/aa/statistics/"},{"id":2,"code":"ab","name":"Abkhazian","plural":{"id":2,"so // Output truncated...` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/languages/?page_size=null&page_size=null' 2. Test Case ID: yXWzHN - Response violates schema (2 violations) "ca@valencia" does not match "^[-a-zA-Z0-9_]+$" Validated against the response schema for status code 200. Schema at /components/schemas/Language/properties/code: { "pattern": "^[-a-zA-Z0-9_]+$", "type": "string", "title": "Language code", "maxLength": 50 } Value: "ca@valencia" null is not of type "string" Validated against the response schema for status code 200. Schema at /components/schemas/PaginatedLanguageList/properties/next: { "type": "string", "format": "uri", "example": "http://api.example.org/accounts/?page=4" } Value: null [200] OK: `{"count":778,"next":null,"previous":null,"results":[{"id":1,"code":"aa","name":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","plural":{"id":1,"source":0,"number":2,"formula":"n != 1","type":1},"aliases":["aar"],"direction":"ltr","population":0,"web_url":"http://localhost:35909/languages/aa/","url":"http://localhost:35909/api/languages/aa/?format=json","statistics_url":"http://localhost:35909/api/languages/aa/statistics/?format=json"},{"id":2,"code":"a // Output truncated...` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/languages/?page_size=14191&format=json' __________________________ GET /api/languages/{code}/ __________________________ 1. Test Case ID: AbXBjt - API accepted schema-violating request Invalid data should have been rejected Expected: 400, 401, 403, 404, 405, 406, 409, 415, 422, 428, 429, 5xx Invalid component: parameter `format` in query - violates `enum` at /properties/format [200] OK: `{"id":179,"code":"en","name":"English","plural":{"id":179,"source":0,"number":2,"formula":"n != 1","type":1},"aliases":["base","en_en","en_us","eng","enp","source"],"direction":"ltr","population":1728003224,"web_url":"http://localhost:35909/languages/en/","url":"http://localhost:35909/api/languages/en/?format=","statistics_url":"http://localhost:35909/api/languages/en/statistics/?format="}` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/languages/en/?format=' ____________________ GET /api/languages/{code}/statistics/ _____________________ 1. Test Case ID: KaIkPn - Response violates schema "aliases" is a required property Validated against the response schema for status code 200. Schema at /components/schemas/Language: { "required": [ "aliases", "code", "id", "statistics_url", "url", "web_url" ], "type": "object", "properties": { "id": { "type": "integer", "readOnly": true }, "code": { "type": "string", "title": "Language code", "maxLength": 50, // Output truncated... } Value: { "approved": 0, "approved_chars": 0, "approved_chars_percent": 100.0, "approved_percent": 100.0, "approved_words": 0, "approved_words_percent": 100.0, "comments": 0, "failing": 0, "failing_percent": 0.0, "fuzzy": 0, "fuzzy_chars": 0, "fuzzy_chars_percent": 0.0, "fuzzy_percent": 0.0, "fuzzy_words": 0, "fuzzy_words_percent": 0.0, "last_change": null, "name": "Abron", "readonly": 0, // Output truncated... } [200] OK: `{"total":0,"total_words":0,"total_chars":0,"last_change":null,"recent_changes":0,"translated":0,"translated_words":0,"translated_percent":0.0,"translated_words_percent":0.0,"translated_chars":0,"translated_chars_percent":0.0,"fuzzy":0,"fuzzy_percent":0.0,"fuzzy_words":0,"fuzzy_words_percent":0.0,"fuzzy_chars":0,"fuzzy_chars_percent":0.0,"failing":0,"failing_percent":0.0,"approved":0,"approved_percent":100.0,"approved_words":0,"approved_words_percent":100.0,"approved_chars":0,"approved_chars_percent":100.0," // Output truncated...` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/languages/abr/statistics/?format=json-flat' 2. Test Case ID: Y6pUcO - API accepted schema-violating request Invalid data should have been rejected Expected: 400, 401, 403, 404, 405, 406, 409, 415, 422, 428, 429, 5xx Invalid component: parameter `format` in query - violates `enum` at /properties/format [200] OK: `{"total":2,"total_words":2,"total_chars":10,"last_change":"2026-10-07T06:18:38.080764Z","recent_changes":0,"translated":0,"translated_words":0,"translated_percent":0.0,"translated_words_percent":0.0,"translated_chars":0,"translated_chars_percent":0.0,"fuzzy":0,"fuzzy_percent":0.0,"fuzzy_words":0,"fuzzy_words_percent":0.0,"fuzzy_chars":0,"fuzzy_chars_percent":0.0,"failing":0,"failing_percent":0.0,"approved":0,"approved_percent":0.0,"approved_words":0,"approved_words_percent":0.0,"approved_chars":0,"approved_ // Output truncated...` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/languages/de/statistics/?format=' _______________________________ GET /api/memory/ _______________________________ 1. Test Case ID: yy1Y05 - Response violates schema (2 violations) null is not of type "string" Validated against the response schema for status code 200. Schema at /components/schemas/PaginatedMemoryList/properties/next: { "type": "string", "format": "uri", "example": "http://api.example.org/accounts/?page=4" } Value: null null is not of type "string" Validated against the response schema for status code 200. Schema at /components/schemas/PaginatedMemoryList/properties/previous: { "type": "string", "format": "uri", "example": "http://api.example.org/accounts/?page=2" } Value: null - API accepted schema-violating request Invalid data should have been rejected Expected: 400, 401, 403, 404, 405, 406, 409, 415, 422, 428, 429, 5xx Invalid component: parameter `page_size` in query - page_size: Incorrect type [200] OK: `{"count":0,"next":null,"previous":null,"results":[]}` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/memory/?page_size=null&page_size=null' 2. Test Case ID: 85lFAw - JSON deserialization error Response must be valid JSON with 'Content-Type: application/json' header: Expecting value: line 1 column 1 (char 0) - Missing Content-Type header The following media types are documented in the schema: - `application/json` - `text/csv` [200] OK: Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/memory/?format=csv' ______________________________ GET /api/metrics/ _______________________________ 1. Test Case ID: am21qm - Undocumented HTTP status code Received: 404 Documented: 400, 401, 405, 406, 415, 423, 429, 500, 200 [404] Not Found: `{"type":"client_error","errors":[{"code":"not_found","detail":"Not found.","attr":null}]}` Reproduce with: curl -X GET -H 'Token: [Filtered]' -H 'Bearer;' -H 'Authorization: [Filtered]' -H 'Cookie: [Filtered]' 'http://0.0.0.0:35909/api/metrics/?format=AAA' 2. Test Case ID: ePZ8FM - API accepted schema-violating request Invalid data should have been rejected Expected: 400, 401, 403, 404, 405, 406, 409, 415, 422, 428, 429, 5xx Invalid component: parameter `format` in query - violates `enum` at /properties/format [200] OK: `{"units":6,"units_translated":2,"users":5,"changes":0,"projects":1,"components":2,"translations":6,"languages":778,"checks":0,"configuration_errors":3,"suggestions":0,"celery_queues":{"memory":0,"translate":0,"notify":0,"backup":0,"celery":0},"name":"Weblate"}` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/metrics/?format=' ______________________________ GET /api/projects/ ______________________________ 1. Test Case ID: ECmRC1 - Response violates schema (2 violations) null is not of type "string" Validated against the response schema for status code 200. Schema at /components/schemas/PaginatedProjectList/properties/next: { "type": "string", "format": "uri", "example": "http://api.example.org/accounts/?page=4" } Value: null null is not of type "string" Validated against the response schema for status code 200. Schema at /components/schemas/PaginatedProjectList/properties/previous: { "type": "string", "format": "uri", "example": "http://api.example.org/accounts/?page=2" } Value: null - API accepted schema-violating request Invalid data should have been rejected Expected: 400, 401, 403, 404, 405, 406, 409, 415, 422, 428, 429, 5xx Invalid component: parameter `page_size` in query - page_size: Incorrect type [200] OK: `{"count":1,"next":null,"previous":null,"results":[{"name":"Workbench","slug":"workbench","id":1,"web":"https://example.com","web_url":"http://localhost:35909/projects/workbench/","url":"http://localhost:35909/api/projects/workbench/","check_flags":"","components_list_url":"http://localhost:35909/api/projects/workbench/components/","repository_url":"http://localhost:35909/api/projects/workbench/repository/","statistics_url":"http://localhost:35909/api/projects/workbench/statistics/","categories_url":"http:// // Output truncated...` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/projects/?page_size=null&page_size=null' _____________________ GET /api/projects/{slug}/categories/ _____________________ 1. Test Case ID: Mo8dr8 - Response violates schema "categories_url" is a required property Validated against the response schema for status code 200. Schema at /components/schemas/Project: { "required": [ "categories_url", "changes_list_url", "components_list_url", "credits_url", "id", "labels_url", "languages_url", "lock_url", "locked", "machinery_settings", "name", "repository_url", "slug", "statistics_url", "url", "web", "web_url" // Output truncated... } Value: { "count": 0, "next": null, "previous": null, "results": [] } [200] OK: `{"count":0,"next":null,"previous":null,"results":[]}` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/projects/workbench/categories/?format=json' 2. Test Case ID: ueb3lR - JSON deserialization error Response must be valid JSON with 'Content-Type: application/json' header: Expecting value: line 1 column 1 (char 0) - Missing Content-Type header The following media types are documented in the schema: - `application/json` - `text/csv` [200] OK: Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/projects/workbench/categories/?format=csv' 3. Test Case ID: 3SAAXM - API accepted schema-violating request Invalid data should have been rejected Expected: 400, 401, 403, 404, 405, 406, 409, 415, 422, 428, 429, 5xx Invalid component: parameter `format` in query - violates `enum` at /properties/format [200] OK: `{"count":0,"next":null,"previous":null,"results":[]}` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/projects/workbench/categories/?format=' ______________________ GET /api/projects/{slug}/changes/ _______________________ 1. Test Case ID: dd01ye - Response violates schema "categories_url" is a required property Validated against the response schema for status code 200. Schema at /components/schemas/Project: { "required": [ "categories_url", "changes_list_url", "components_list_url", "credits_url", "id", "labels_url", "languages_url", "lock_url", "locked", "machinery_settings", "name", "repository_url", "slug", "statistics_url", "url", "web", "web_url" // Output truncated... } Value: { "count": 109, "next": "http://localhost:35909/api/projects/workbench/changes/?format=js... "previous": null, "results": [ { "action": 0, "action_name": "Resource updated", "author": null, "component": "http://localhost:35909/api/components/workbench/glo... "details": { "filename": "de.tbx", "reason": "check forced" }, "id": 109, "old": "", "target": "", "timestamp": "2026-10-07T06:16:03.444570Z", "translation": "http://localhost:35909/api/translations/workbench... // Output truncated... } [200] OK: `{"count":109,"next":"http://localhost:35909/api/projects/workbench/changes/?format=json&page=2","previous":null,"results":[{"unit":null,"component":"http://localhost:35909/api/components/workbench/glossary/?format=json","translation":"http://localhost:35909/api/translations/workbench/glossary/de/?format=json","user":null,"author":null,"timestamp":"2026-10-07T06:16:03.444570Z","action":0,"target":"","old":"","details":{"reason":"check forced","filename":"de.tbx"},"id":109,"action_name":"Resource updated","ur // Output truncated...` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/projects/workbench/changes/?format=json' 2. Test Case ID: PzH7a1 - API accepted schema-violating request Invalid data should have been rejected Expected: 400, 401, 403, 404, 405, 406, 409, 415, 422, 428, 429, 5xx Invalid component: parameter `format` in query - violates `enum` at /properties/format [200] OK: `{"count":287,"next":"http://localhost:35909/api/projects/workbench/changes/?format=&page=2","previous":null,"results":[{"unit":"http://localhost:35909/api/units/1/?format=","component":"http://localhost:35909/api/components/workbench/strings/?format=","translation":"http://localhost:35909/api/translations/workbench/strings/en/?format=","user":"http://localhost:35909/api/users/admin/?format=","author":"http://localhost:35909/api/users/admin/?format=","timestamp":"2026-10-07T06:18:42.695636Z","action":3,"targ // Output truncated...` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/projects/workbench/changes/?format=' _____________________ GET /api/projects/{slug}/components/ _____________________ 1. Test Case ID: ASAwo5 - Response violates schema "addons" is a required property Validated against the response schema for status code 200. Schema at /components/schemas/Component: { "required": [ "addons", "changes_list_url", "credits_url", "file_format", "filemask", "id", "license_url", "linked_component", "links_url", "lock_url", "locked", "name", "project", "repo", "repository_url", "slug", "statistics_url", // Output truncated... } Value: { "count": 2, "next": null, "previous": null, "results": [ { "add_message": "Added translation using Weblate ({{ language_name... "addon_message": "Update translation files\n\nUpdated by \"{{ add... "addons": [], "agreement": "", "allow_translation_propagation": false, "auto_lock_error": false, "branch": "main", "category": null, "changes_list_url": "http://localhost:35909/api/components/workbe... "check_flags": "", "commit_message": "Translated using Weblate ({{ language_name }})... "commit_pending_age": 24, "credits_url": "http://localhost:35909/api/components/workbench/s... // Output truncated... } [200] OK: `{"count":2,"next":null,"previous":null,"results":[{"name":"Strings","slug":"strings","id":1,"source_language":{"id":179,"code":"en","name":"English","plural":{"id":179,"source":0,"number":2,"formula":"n != 1","type":1},"aliases":["base","en_en","en_us","eng","enp","source"],"direction":"ltr","population":1728003224,"web_url":"http://localhost:35909/languages/en/","url":"http://localhost:35909/api/languages/en/?format=json","statistics_url":"http://localhost:35909/api/languages/en/statistics/?format=json"}," // Output truncated...` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/projects/workbench/components/?format=json' 2. Test Case ID: zpnXbG - JSON deserialization error Response must be valid JSON with 'Content-Type: application/json' header: Expecting value: line 1 column 1 (char 0) - Missing Content-Type header The following media types are documented in the schema: - `application/json` - `text/csv` [200] OK: Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/projects/00/components/?format=csv' 3. Test Case ID: NiqIW5 - API accepted schema-violating request Invalid data should have been rejected Expected: 400, 401, 403, 404, 405, 406, 409, 415, 422, 428, 429, 5xx Invalid component: parameter `format` in query - violates `enum` at /properties/format [200] OK: `{"count":0,"next":null,"previous":null,"results":[]}` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/projects/00/components/?format=' ______________________ GET /api/projects/{slug}/credits/ _______________________ 1. Test Case ID: J6xnZt - Response violates schema {"errors":[{"attr":"start","code":"invalid","detail":"Invalid format for `start`"}],"type":"validation_error"} is not valid under any of the schemas listed in the 'oneOf' keyword Validated against the response schema for status code 400. Schema at /components/schemas/ApiProjectsCreditsRetrieveErrorResponse400: { "oneOf": [ { "$ref": "#/components/schemas/ParseErrorResponse" } ], "discriminator": { "propertyName": "type", "mapping": { "client_error": "#/components/schemas/ParseErrorResponse" } } } Value: { "errors": [ { "attr": "start", "code": "invalid", "detail": "Invalid format for `start`" } ], "type": "validation_error" } - API rejected schema-compliant request Valid data should have been accepted Expected: 2xx, 401, 403, 404, 409, 429, 5xx [400] Bad Request: `{"type":"validation_error","errors":[{"code":"invalid","detail":"Invalid format for `start`","attr":"start"}]}` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/projects/workbench/credits/?format=json' ________________________ GET /api/projects/{slug}/file/ ________________________ 1. Test Case ID: nMiNMy - API accepted schema-violating request Invalid data should have been rejected Expected: 400, 401, 403, 404, 405, 406, 409, 415, 422, 428, 429, 5xx Invalid component: parameter `format` in query - invalid enum value - Undocumented Content-Type Received: application/zip Documented: application/json, text/csv [200] OK: Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/projects/workbench/file/?format=AAA' _______________________ GET /api/projects/{slug}/labels/ _______________________ 1. Test Case ID: 0vptAf - Response violates schema "categories_url" is a required property Validated against the response schema for status code 200. Schema at /components/schemas/Project: { "required": [ "categories_url", "changes_list_url", "components_list_url", "credits_url", "id", "labels_url", "languages_url", "lock_url", "locked", "machinery_settings", "name", "repository_url", "slug", "statistics_url", "url", "web", "web_url" // Output truncated... } Value: { "count": 0, "next": null, "previous": null, "results": [] } [200] OK: `{"count":0,"next":null,"previous":null,"results":[]}` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/projects/workbench/labels/?format=json' 2. Test Case ID: ai4Cr3 - JSON deserialization error Response must be valid JSON with 'Content-Type: application/json' header: Expecting value: line 1 column 1 (char 0) - Missing Content-Type header The following media types are documented in the schema: - `application/json` - `text/csv` [200] OK: Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/projects/workbench/labels/?format=csv' 3. Test Case ID: HH3DZJ - API accepted schema-violating request Invalid data should have been rejected Expected: 400, 401, 403, 404, 405, 406, 409, 415, 422, 428, 429, 5xx Invalid component: parameter `format` in query - violates `enum` at /properties/format [200] OK: `{"count":0,"next":null,"previous":null,"results":[]}` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/projects/workbench/labels/?format=' _____________________ GET /api/projects/{slug}/languages/ ______________________ 1. Test Case ID: c9JzR1 - Response violates schema [{"approved":0,"approved_chars":0,"approved_chars_percent":0.0,"approved_percent":0.0,"approved_words":0,"approved_words_percent":0.0,"code":"cs","comments":0,"failing":0,"failing_percent":0.0,"fuzzy":0,"fuzzy_chars":0,"fuzzy_chars_percent":0.0,"fuzzy_percent":0.0,"fuzzy_words":0,"fuzzy_words_percent":0.0,"last_change":"2026-10-07T06:16:03.439166Z","name":"Czech","readonly":0,"readonly_chars":0,"readonly_chars_percent":0.0,"readonly_percent":0.0,"readonly_words":0,"readonly_words_percent":0.0,"recent_changes":0,"suggestions":0,"total":2,"total_chars":10,"total_words":2,"translate_url":"http://localhost:35909/translate/workbench/-/cs/","translated":0,"translated_chars":0,"translated_chars_percent":0.0,"translated_percent":0.0,"translated_words":0,"translated_words_percent":0.0,"url":"http://localhost:35909/projects/workbench/-/cs/"},{"approved":0,"approved_chars":0,"approved_chars_percent":0.0,"approved_percent":0.0,"approved_words":0,"approved_words_percent":0.0,"code":"en","comments":0,"failing":0,"failing_percent":0.0,"fuzzy":0,"fuzzy_chars":0,"fuzzy_chars_percent":0.0,"fuzzy_percent":0.0,"fuzzy_words":0,"fuzzy_words_percent":0.0,"last_change":"2026-10-07T06:16:03.394569Z","name":"English","readonly":2,"readonly_chars":10,"readonly_chars_percent":100.0,"readonly_percent":100.0,"readonly_words":2,"readonly_words_percent":100.0,"recent_changes":0,"suggestions":0,"total":2,"total_chars":10,"total_words":2,"translate_url":"http://localhost:35909/translate/workbench/-/en/","translated":2,"translated_chars":10,"translated_chars_percent":100.0,"translated_percent":100.0,"translated_words":2,"translated_words_percent":100.0,"url":"http://localhost:35909/projects/workbench/-/en/"},{"approved":0,"approved_chars":0,"approved_chars_percent":0.0,"approved_percent":0.0,"approved_words":0,"approved_words_percent":0.0,"code":"de","comments":0,"failing":0,"failing_percent":0.0,"fuzzy":0,"fuzzy_chars":0,"fuzzy_chars_percent":0.0,"fuzzy_percent":0.0,"fuzzy_words":0,"fuzzy_words_percent":0.0,"last_change":"2026-10-07T06:16:03.444570Z","name":"German","readonly":0,"readonly_chars":0,"readonly_chars_percent":0.0,"readonly_percent":0.0,"readonly_words":0,"readonly_words_percent":0.0,"recent_changes":0,"suggestions":0,"total":2,"total_chars":10,"total_words":2,"translate_url":"http://localhost:35909/translate/workbench/-/de/","translated":0,"translated_chars":0,"translated_chars_percent":0.0,"translated_percent":0.0,"translated_words":0,"translated_words_percent":0.0,"url":"http://localhost:35909/projects/workbench/-/de/"}] is not of type "object" Validated against the response schema for status code 200. Schema at /components/schemas/Project: { "type": "object", "properties": { "name": { "type": "string", "title": "Project name", "description": "Display name", "maxLength": 60 }, "slug": { "type": "string", "title": "URL slug", "description": "Name used in URLs and filenames.", "maxLength": 60, "pattern": "^[-a-zA-Z0-9_]+$" }, "id": { "type": "integer", "readOnly": true // Output truncated... } Value: [ { "approved": 0, "approved_chars": 0, "approved_chars_percent": 0.0, "approved_percent": 0.0, "approved_words": 0, "approved_words_percent": 0.0, "code": "cs", "comments": 0, "failing": 0, "failing_percent": 0.0, "fuzzy": 0, "fuzzy_chars": 0, "fuzzy_chars_percent": 0.0, "fuzzy_percent": 0.0, "fuzzy_words": 0, "fuzzy_words_percent": 0.0, "last_change": "2026-10-07T06:16:03.439166Z", // Output truncated... ] [200] OK: `[{"total":2,"total_words":2,"total_chars":10,"last_change":"2026-10-07T06:16:03.439166Z","recent_changes":0,"translated":0,"translated_words":0,"translated_percent":0.0,"translated_words_percent":0.0,"translated_chars":0,"translated_chars_percent":0.0,"fuzzy":0,"fuzzy_percent":0.0,"fuzzy_words":0,"fuzzy_words_percent":0.0,"fuzzy_chars":0,"fuzzy_chars_percent":0.0,"failing":0,"failing_percent":0.0,"approved":0,"approved_percent":0.0,"approved_words":0,"approved_words_percent":0.0,"approved_chars":0,"approved // Output truncated...` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/projects/workbench/languages/?format=json-flat' 2. Test Case ID: FoQ6gX - API accepted schema-violating request Invalid data should have been rejected Expected: 400, 401, 403, 404, 405, 406, 409, 415, 422, 428, 429, 5xx Invalid component: parameter `format` in query - violates `enum` at /properties/format [200] OK: `[{"total":2,"total_words":2,"total_chars":10,"last_change":"2026-10-07T06:18:38.080764Z","recent_changes":0,"translated":0,"translated_words":0,"translated_percent":0.0,"translated_words_percent":0.0,"translated_chars":0,"translated_chars_percent":0.0,"fuzzy":0,"fuzzy_percent":0.0,"fuzzy_words":0,"fuzzy_words_percent":0.0,"fuzzy_chars":0,"fuzzy_chars_percent":0.0,"failing":0,"failing_percent":0.0,"approved":0,"approved_percent":0.0,"approved_words":0,"approved_words_percent":0.0,"approved_chars":0,"approved // Output truncated...` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/projects/workbench/languages/?format=' ________________________ GET /api/projects/{slug}/lock/ ________________________ 1. Test Case ID: NQBRPb - Response violates schema "lock" is a required property Validated against the response schema for status code 200. Schema: { "required": [ "lock" ], "type": "object", "properties": { "lock": { "type": "boolean" } } } Value: { "locked": false } [200] OK: `{"locked":false}` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/projects/workbench/lock/?format=json' 2. Test Case ID: HKql6e - API accepted schema-violating request Invalid data should have been rejected Expected: 400, 401, 403, 404, 405, 406, 409, 415, 422, 428, 429, 5xx Invalid component: parameter `format` in query - violates `enum` at /properties/format [200] OK: `{"locked":false}` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/projects/workbench/lock/?format=' _________________ GET /api/projects/{slug}/machinery_settings/ _________________ 1. Test Case ID: Xtih1C - API accepted schema-violating request Invalid data should have been rejected Expected: 400, 401, 403, 404, 405, 406, 409, 415, 422, 428, 429, 5xx Invalid component: parameter `format` in query - violates `enum` at /properties/format [200] OK: `{}` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/projects/00/machinery_settings/?format=' _____________________ GET /api/projects/{slug}/repository/ _____________________ 1. Test Case ID: ndLlYn - Response violates schema "operation" is a required property Validated against the response schema for status code 200. Schema at /components/schemas/RepoRequest: { "required": [ "operation" ], "type": "object", "properties": { "operation": { "$ref": "#/components/schemas/OperationEnum" } } } Value: { "needs_commit": false, "needs_merge": false, "needs_push": false, "url": "http://localhost:35909/api/projects/workbench/repository/?format=... } [200] OK: `{"needs_commit":false,"needs_merge":false,"needs_push":false,"url":"http://localhost:35909/api/projects/workbench/repository/?format=json"}` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/projects/workbench/repository/?format=json' 2. Test Case ID: 4BLPte - API accepted schema-violating request Invalid data should have been rejected Expected: 400, 401, 403, 404, 405, 406, 409, 415, 422, 428, 429, 5xx Invalid component: parameter `format` in query - violates `enum` at /properties/format [200] OK: `{"needs_commit":false,"needs_merge":false,"needs_push":false,"url":"http://localhost:35909/api/projects/workbench/repository/?format="}` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/projects/workbench/repository/?format=' _____________________ GET /api/projects/{slug}/statistics/ _____________________ 1. Test Case ID: d4tIAG - Response violates schema "categories_url" is a required property Validated against the response schema for status code 200. Schema at /components/schemas/Project: { "required": [ "categories_url", "changes_list_url", "components_list_url", "credits_url", "id", "labels_url", "languages_url", "lock_url", "locked", "machinery_settings", "name", "repository_url", "slug", "statistics_url", "url", "web", "web_url" // Output truncated... } Value: { "approved": 0, "approved_chars": 0, "approved_chars_percent": 0.0, "approved_percent": 0.0, "approved_words": 0, "approved_words_percent": 0.0, "comments": 0, "failing": 0, "failing_percent": 0.0, "fuzzy": 0, "fuzzy_chars": 0, "fuzzy_chars_percent": 0.0, "fuzzy_percent": 0.0, "fuzzy_words": 0, "fuzzy_words_percent": 0.0, "last_change": "2026-10-07T06:16:03.444570Z", "name": "Workbench", "readonly": 2, // Output truncated... } [200] OK: `{"total":6,"total_words":6,"total_chars":30,"last_change":"2026-10-07T06:16:03.444570Z","recent_changes":0,"translated":2,"translated_words":2,"translated_percent":33.3,"translated_words_percent":33.3,"translated_chars":10,"translated_chars_percent":33.3,"fuzzy":0,"fuzzy_percent":0.0,"fuzzy_words":0,"fuzzy_words_percent":0.0,"fuzzy_chars":0,"fuzzy_chars_percent":0.0,"failing":0,"failing_percent":0.0,"approved":0,"approved_percent":0.0,"approved_words":0,"approved_words_percent":0.0,"approved_chars":0,"appro // Output truncated...` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/projects/workbench/statistics/?format=json-flat' 2. Test Case ID: SVwvVR - API accepted schema-violating request Invalid data should have been rejected Expected: 400, 401, 403, 404, 405, 406, 409, 415, 422, 428, 429, 5xx Invalid component: parameter `format` in query - violates `enum` at /properties/format [200] OK: `{"total":6,"total_words":6,"total_chars":30,"last_change":"2026-10-07T06:18:42.695636Z","recent_changes":0,"translated":2,"translated_words":2,"translated_percent":33.3,"translated_words_percent":33.3,"translated_chars":10,"translated_chars_percent":33.3,"fuzzy":0,"fuzzy_percent":0.0,"fuzzy_words":0,"fuzzy_words_percent":0.0,"fuzzy_chars":0,"fuzzy_chars_percent":0.0,"failing":0,"failing_percent":0.0,"approved":0,"approved_percent":0.0,"approved_words":0,"approved_words_percent":0.0,"approved_chars":0,"appro // Output truncated...` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/projects/workbench/statistics/?format=' _______________________________ GET /api/roles/ ________________________________ 1. Test Case ID: cXwGNQ - Response violates schema (2 violations) null is not of type "string" Validated against the response schema for status code 200. Schema at /components/schemas/PaginatedRoleList/properties/next: { "type": "string", "format": "uri", "example": "http://api.example.org/accounts/?page=4" } Value: null null is not of type "string" Validated against the response schema for status code 200. Schema at /components/schemas/PaginatedRoleList/properties/previous: { "type": "string", "format": "uri", "example": "http://api.example.org/accounts/?page=2" } Value: null - API accepted schema-violating request Invalid data should have been rejected Expected: 400, 401, 403, 404, 405, 406, 409, 415, 422, 428, 429, 5xx Invalid component: parameter `page_size` in query - page_size: Incorrect type [200] OK: `{"count":17,"next":null,"previous":null,"results":[{"id":1,"name":"Administration","permissions":["billing.view","change.download","comment.add","comment.delete","comment.resolve","component.edit","component.lock","glossary.add","glossary.terminology","glossary.edit","glossary.delete","glossary.upload","machinery.view","memory.edit","memory.delete","project.edit","project.permissions","reports.view","screenshot.add","screenshot.edit","screenshot.delete","source.edit","unit.add","unit.delete","unit.check","u // Output truncated...` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/roles/?page_size=null&page_size=null' ____________________________ GET /api/screenshots/ _____________________________ 1. Test Case ID: WmKh2L - Response violates schema (2 violations) null is not of type "string" Validated against the response schema for status code 200. Schema at /components/schemas/PaginatedScreenshotList/properties/next: { "type": "string", "format": "uri", "example": "http://api.example.org/accounts/?page=4" } Value: null null is not of type "string" Validated against the response schema for status code 200. Schema at /components/schemas/PaginatedScreenshotList/properties/previous: { "type": "string", "format": "uri", "example": "http://api.example.org/accounts/?page=2" } Value: null - API accepted schema-violating request Invalid data should have been rejected Expected: 400, 401, 403, 404, 405, 406, 409, 415, 422, 428, 429, 5xx Invalid component: parameter `page_size` in query - page_size: Incorrect type [200] OK: `{"count":0,"next":null,"previous":null,"results":[]}` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/screenshots/?page_size=null&page_size=null' 2. Test Case ID: yatbia - JSON deserialization error Response must be valid JSON with 'Content-Type: application/json' header: Expecting value: line 1 column 1 (char 0) - Missing Content-Type header The following media types are documented in the schema: - `application/json` - `text/csv` [200] OK: Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/screenshots/?format=csv' _______________________________ GET /api/search/ _______________________________ 1. Test Case ID: ycymwi - Undocumented HTTP status code Received: 404 Documented: 400, 401, 403, 405, 406, 415, 423, 429, 500, 200 [404] Not Found: `{"type":"client_error","errors":[{"code":"not_found","detail":"Not found.","attr":null}]}` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/search/?format=AAA' 2. Test Case ID: Y8SaEX - API accepted schema-violating request Invalid data should have been rejected Expected: 400, 401, 403, 404, 405, 406, 409, 415, 422, 428, 429, 5xx Invalid component: parameter `format` in query - violates `enum` at /properties/format [200] OK: `[]` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/search/?format=' _____________________________ GET /api/tasks/{id}/ _____________________________ 1. Test Case ID: zNc1nU - API accepted schema-violating request Invalid data should have been rejected Expected: 400, 401, 403, 404, 405, 406, 409, 415, 422, 428, 429, 5xx Invalid component: parameter `format` in query - violates `enum` at /properties/format [200] OK: `{"completed":false,"progress":0,"result":null,"log":""}` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/tasks/3/?format=' ____________________________ GET /api/translations/ ____________________________ 1. Test Case ID: yEd1BX - Response violates schema (7 violations) "" is not a "email" Validated against the response schema for status code 200. Schema at /components/schemas/Component/properties/report_source_bugs: { "format": "email", "type": "string", "title": "Source string bug reporting address", "description": "E-mail address for reports on errors in source strings. L... "maxLength": 190 } Value: "" null is not of type "string" Validated against the response schema for status code 200. Schema at /components/schemas/Component/properties/license_url: { "type": "string", "readOnly": true } Value: null null is not of type "string" Validated against the response schema for status code 200. Schema at /components/schemas/Component/properties/linked_component: { "type": "string", "format": "uri", "readOnly": true } Value: null null is not of type "string" Validated against the response schema for status code 200. Schema at /components/schemas/PaginatedTranslationList/properties/next: { "type": "string", "format": "uri", "example": "http://api.example.org/accounts/?page=4" } Value: null null is not of type "string" Validated against the response schema for status code 200. Schema at /components/schemas/PaginatedTranslationList/properties/previous: { "type": "string", "format": "uri", "example": "http://api.example.org/accounts/?page=2" } Value: null null is not of type "string" Validated against the response schema for status code 200. Schema at /components/schemas/Translation/properties/last_author: { "type": "string", "readOnly": true } Value: null null is not of type "string" Validated against the response schema for status code 200. Schema at /components/schemas/Translation/properties/last_change: { "type": "string", "format": "date-time", "readOnly": true } Value: null - API accepted schema-violating request Invalid data should have been rejected Expected: 400, 401, 403, 404, 405, 406, 409, 415, 422, 428, 429, 5xx Invalid component: parameter `page_size` in query - page_size: Incorrect type [200] OK: `{"count":6,"next":null,"previous":null,"results":[{"language":{"id":179,"code":"en","name":"English","plural":{"id":179,"source":0,"number":2,"formula":"n != 1","type":1},"aliases":["base","en_en","en_us","eng","enp","source"],"direction":"ltr","population":1728003224,"web_url":"http://localhost:35909/languages/en/","url":"http://localhost:35909/api/languages/en/","statistics_url":"http://localhost:35909/api/languages/en/statistics/"},"component":{"name":"Strings","slug":"strings","id":1,"source_language":{ // Output truncated...` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/translations/?page_size=null&page_size=null' GET /api/translations/{component__project__slug}/{component__slug}/{language__code}/ 1. Test Case ID: ZpBW86 - Response violates schema (3 violations) null is not of type "string" Validated against the response schema for status code 200. Schema at /components/schemas/Component/properties/license_url: { "type": "string", "readOnly": true } Value: null null is not of type "string" Validated against the response schema for status code 200. Schema at /components/schemas/Component/properties/linked_component: { "type": "string", "format": "uri", "readOnly": true } Value: null null is not of type "string" Validated against the response schema for status code 200. Schema at /components/schemas/Translation/properties/last_author: { "type": "string", "readOnly": true } Value: null [200] OK: `{"language":{"id":139,"code":"cs","name":"Czech","plural":{"id":139,"source":0,"number":3,"formula":"(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2","type":22},"aliases":["ces","cs_cs","cs_cz","csy","cz","cze"],"direction":"ltr","population":13236057,"web_url":"http://localhost:35909/languages/cs/","url":"http://localhost:35909/api/languages/cs/","statistics_url":"http://localhost:35909/api/languages/cs/statistics/"},"component":{"name":"Strings","slug":"strings","id":1,"source_language":{"id":179,"code":"en","name":" // Output truncated...` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' http://0.0.0.0:35909/api/translations/workbench/strings/cs/ 2. Test Case ID: aSxEr0 - Response violates schema (2 violations) "" is not a "email" Validated against the response schema for status code 200. Schema at /components/schemas/Component/properties/report_source_bugs: { "format": "email", "type": "string", "title": "Source string bug reporting address", "description": "E-mail address for reports on errors in source strings. L... "maxLength": 190 } Value: "" null is not of type "string" Validated against the response schema for status code 200. Schema at /components/schemas/Translation/properties/last_change: { "type": "string", "format": "date-time", "readOnly": true } Value: null [200] OK: `{"language":{"id":179,"code":"en","name":"English","plural":{"id":179,"source":0,"number":2,"formula":"n != 1","type":1},"aliases":["base","en_en","en_us","eng","enp","source"],"direction":"ltr","population":1728003224,"web_url":"http://localhost:35909/languages/en/","url":"http://localhost:35909/api/languages/en/","statistics_url":"http://localhost:35909/api/languages/en/statistics/"},"component":{"name":"Workbench","slug":"glossary","id":2,"source_language":{"id":179,"code":"en","name":"English","plural": // Output truncated...` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' http://0.0.0.0:35909/api/translations/workbench/glossary/en/ 3. Test Case ID: hLfUKz - API accepted schema-violating request Invalid data should have been rejected Expected: 400, 401, 403, 404, 405, 406, 409, 415, 422, 428, 429, 5xx Invalid component: parameter `format` in query - violates `enum` at /properties/format [200] OK: `{"language":{"id":149,"code":"de","name":"Auth","plural":{"id":149,"source":0,"number":2,"formula":"n != 1","type":1},"aliases":["de_de","deu","deu_de","ger"],"direction":"ltr","population":-34629,"web_url":"http://localhost:35909/languages/de/","url":"http://localhost:35909/api/languages/de/?format=","statistics_url":"http://localhost:35909/api/languages/de/statistics/?format="},"component":{"name":"Workbench","slug":"glossary","id":2,"source_language":{"id":179,"code":"en","name":"English","plural":{"id": // Output truncated...` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/translations/workbench/glossary/de/?format=' GET /api/translations/{component__project__slug}/{component__slug}/{language__code}/changes/ 1. Test Case ID: K5bHKt - Response violates schema "changes_list_url" is a required property Validated against the response schema for status code 200. Schema at /components/schemas/Translation: { "required": [ "changes_list_url", "component", "failing_checks", "failing_checks_percent", "failing_checks_words", "file_url", "filename", "fuzzy", "fuzzy_percent", "fuzzy_words", "have_comment", "have_suggestion", "id", "is_source", "is_template", "language", "last_author", // Output truncated... } Value: { "count": 25, "next": null, "previous": null, "results": [ { "action": 0, "action_name": "Resource updated", "author": null, "component": "http://localhost:35909/api/components/workbench/str... "details": { "filename": "po/cs.po", "reason": "check forced" }, "id": 257, "old": "", "target": "", "timestamp": "2026-10-07T06:18:38.070781Z", "translation": "http://localhost:35909/api/translations/workbench... // Output truncated... } [200] OK: `{"count":25,"next":null,"previous":null,"results":[{"unit":null,"component":"http://localhost:35909/api/components/workbench/strings/","translation":"http://localhost:35909/api/translations/workbench/strings/cs/","user":"http://localhost:35909/api/users/admin/","author":null,"timestamp":"2026-10-07T06:18:38.070781Z","action":0,"target":"","old":"","details":{"reason":"check forced","filename":"po/cs.po"},"id":257,"action_name":"Resource updated","url":"http://localhost:35909/api/changes/257/"},{"unit":null, // Output truncated...` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' http://0.0.0.0:35909/api/translations/workbench/strings/cs/changes/ 2. Test Case ID: kir98F - JSON deserialization error Response must be valid JSON with 'Content-Type: application/json' header: Expecting value: line 1 column 1 (char 0) - Missing Content-Type header The following media types are documented in the schema: - `application/json` - `text/csv` [200] OK: Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/translations/workbench/glossary/en/changes/?format=csv' 3. Test Case ID: 59bJwG - API accepted schema-violating request Invalid data should have been rejected Expected: 400, 401, 403, 404, 405, 406, 409, 415, 422, 428, 429, 5xx Invalid component: parameter `format` in query - violates `enum` at /properties/format [200] OK: `{"count":25,"next":null,"previous":null,"results":[{"unit":null,"component":"http://localhost:35909/api/components/workbench/glossary/?format=","translation":"http://localhost:35909/api/translations/workbench/glossary/cs/?format=","user":null,"author":null,"timestamp":"2026-10-07T06:18:26.345808Z","action":0,"target":"","old":"","details":{"reason":"check forced","filename":"cs.tbx"},"id":243,"action_name":"Resource updated","url":"http://localhost:35909/api/changes/243/?format="},{"unit":null,"component":" // Output truncated...` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/translations/workbench/glossary/cs/changes/?format=' GET /api/translations/{component__project__slug}/{component__slug}/{language__code}/file/ 1. Test Case ID: ck8LhJ - Undocumented Content-Type Received: text/x-gettext-catalog Documented: application/json, text/csv [200] OK: `msgid "" msgstr "" "Report-Msgid-Bugs-To: 0@0.com\n" "PO-Revision-Date: 2026-10-07 06:18+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Czech " "\n" "Language: cs\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" "X-Generator: Weblate 5.14.3\n" msgid "Hello" msgstr "" msgid "World" msgstr ""` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' http://0.0.0.0:35909/api/translations/workbench/strings/cs/file/ 2. Test Case ID: i7D7Yt - Response violates schema {"errors":[{"attr":"format","code":"invalid","detail":"File format is not compatible with this translation"}],"type":"validation_error"} is not valid under any of the schemas listed in the 'oneOf' keyword Validated against the response schema for status code 400. Schema at /components/schemas/ApiTranslationsFileRetrieveErrorResponse400: { "oneOf": [ { "$ref": "#/components/schemas/ParseErrorResponse" } ], "discriminator": { "propertyName": "type", "mapping": { "client_error": "#/components/schemas/ParseErrorResponse" } } } Value: { "errors": [ { "attr": "format", "code": "invalid", "detail": "File format is not compatible with this translation" } ], "type": "validation_error" } - API rejected schema-compliant request Valid data should have been accepted Expected: 2xx, 401, 403, 404, 409, 429, 5xx [400] Bad Request: `{"type":"validation_error","errors":[{"code":"invalid","detail":"File format is not compatible with this translation","attr":"format"}]}` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/translations/workbench/strings/cs/file/?format=json' 3. Test Case ID: EjsnXl - Undocumented Content-Type Received: application/x-tbx Documented: application/json, text/csv [200] OK: `

Weblate Glossary

` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' http://0.0.0.0:35909/api/translations/workbench/glossary/cs/file/ GET /api/translations/{component__project__slug}/{component__slug}/{language__code}/repository/ 1. Test Case ID: VkKg45 - Response violates schema "operation" is a required property Validated against the response schema for status code 200. Schema at /components/schemas/RepoRequest: { "required": [ "operation" ], "type": "object", "properties": { "operation": { "$ref": "#/components/schemas/OperationEnum" } } } Value: { "merge_failure": null, "needs_commit": false, "needs_merge": false, "needs_push": false, "remote_commit": null, "status": "On branch main\nnothing to commit, working tree clean\n", "url": "http://localhost:35909/api/translations/workbench/strings/cs/repo... "weblate_commit": null } [200] OK: `{"needs_commit":false,"needs_merge":false,"needs_push":false,"url":"http://localhost:35909/api/translations/workbench/strings/cs/repository/","remote_commit":null,"weblate_commit":null,"status":"On branch main\nnothing to commit, working tree clean\n","merge_failure":null}` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' http://0.0.0.0:35909/api/translations/workbench/strings/cs/repository/ 2. Test Case ID: qEQlbW - API accepted schema-violating request Invalid data should have been rejected Expected: 400, 401, 403, 404, 405, 406, 409, 415, 422, 428, 429, 5xx Invalid component: parameter `format` in query - violates `enum` at /properties/format [200] OK: `{"needs_commit":false,"needs_merge":false,"needs_push":false,"url":"http://localhost:35909/api/translations/workbench/glossary/cs/repository/?format=","remote_commit":null,"weblate_commit":null,"status":"On branch main\nnothing to commit, working tree clean\n","merge_failure":null}` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/translations/workbench/glossary/cs/repository/?format=' GET /api/translations/{component__project__slug}/{component__slug}/{language__code}/statistics/ 1. Test Case ID: DToiIW - Response violates schema "changes_list_url" is a required property Validated against the response schema for status code 200. Schema at /components/schemas/Translation: { "required": [ "changes_list_url", "component", "failing_checks", "failing_checks_percent", "failing_checks_words", "file_url", "filename", "fuzzy", "fuzzy_percent", "fuzzy_words", "have_comment", "have_suggestion", "id", "is_source", "is_template", "language", "last_author", // Output truncated... } Value: { "approved": 0, "approved_chars": 0, "approved_chars_percent": 0.0, "approved_percent": 0.0, "approved_words": 0, "approved_words_percent": 0.0, "code": "cs", "comments": 0, "failing": 0, "failing_percent": 0.0, "fuzzy": 0, "fuzzy_chars": 0, "fuzzy_chars_percent": 0.0, "fuzzy_percent": 0.0, "fuzzy_words": 0, "fuzzy_words_percent": 0.0, "last_change": "2026-10-07T06:18:38.070781Z", "name": "Czech", // Output truncated... } [200] OK: `{"total":2,"total_words":2,"total_chars":10,"last_change":"2026-10-07T06:18:38.070781Z","recent_changes":0,"translated":0,"translated_words":0,"translated_percent":0.0,"translated_words_percent":0.0,"translated_chars":0,"translated_chars_percent":0.0,"fuzzy":0,"fuzzy_percent":0.0,"fuzzy_words":0,"fuzzy_words_percent":0.0,"fuzzy_chars":0,"fuzzy_chars_percent":0.0,"failing":0,"failing_percent":0.0,"approved":0,"approved_percent":0.0,"approved_words":0,"approved_words_percent":0.0,"approved_chars":0,"approved_ // Output truncated...` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' http://0.0.0.0:35909/api/translations/workbench/strings/cs/statistics/ 2. Test Case ID: uA9p8R - Response violates schema null is not of type "string" Validated against the response schema for status code 200. Schema at /components/schemas/Translation/properties/last_change: { "type": "string", "format": "date-time", "readOnly": true } Value: null [200] OK: `{"total":0,"total_words":0,"total_chars":0,"last_change":null,"recent_changes":0,"translated":0,"translated_words":0,"translated_percent":100.0,"translated_words_percent":100.0,"translated_chars":0,"translated_chars_percent":100.0,"fuzzy":0,"fuzzy_percent":0.0,"fuzzy_words":0,"fuzzy_words_percent":0.0,"fuzzy_chars":0,"fuzzy_chars_percent":0.0,"failing":0,"failing_percent":0.0,"approved":0,"approved_percent":0.0,"approved_words":0,"approved_words_percent":0.0,"approved_chars":0,"approved_chars_percent":0.0," // Output truncated...` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/translations/workbench/glossary/en/statistics/?format=json-flat' 3. Test Case ID: 6IQmr6 - API accepted schema-violating request Invalid data should have been rejected Expected: 400, 401, 403, 404, 405, 406, 409, 415, 422, 428, 429, 5xx Invalid component: parameter `format` in query - violates `enum` at /properties/format [200] OK: `{"total":0,"total_words":0,"total_chars":0,"last_change":"2026-10-07T06:18:26.345808Z","recent_changes":0,"translated":0,"translated_words":0,"translated_percent":100.0,"translated_words_percent":100.0,"translated_chars":0,"translated_chars_percent":100.0,"fuzzy":0,"fuzzy_percent":0.0,"fuzzy_words":0,"fuzzy_words_percent":0.0,"fuzzy_chars":0,"fuzzy_chars_percent":0.0,"failing":0,"failing_percent":0.0,"approved":0,"approved_percent":0.0,"approved_words":0,"approved_words_percent":0.0,"approved_chars":0,"appr // Output truncated...` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/translations/workbench/glossary/cs/statistics/?format=' GET /api/translations/{component__project__slug}/{component__slug}/{language__code}/units/ 1. Test Case ID: 7s3whE - Response violates schema "changes_list_url" is a required property Validated against the response schema for status code 200. Schema at /components/schemas/Translation: { "required": [ "changes_list_url", "component", "failing_checks", "failing_checks_percent", "failing_checks_words", "file_url", "filename", "fuzzy", "fuzzy_percent", "fuzzy_words", "have_comment", "have_suggestion", "id", "is_source", "is_template", "language", "last_author", // Output truncated... } Value: { "count": 2, "next": null, "previous": null, "results": [ { "approved": false, "content_hash": -2665940278720648281, "context": "", "explanation": "", "extra_flags": "", "flags": "", "fuzzy": false, "has_comment": false, "has_failing_check": false, "has_suggestion": false, "id": 3, "id_hash": -2665940278720648281, "labels": [], // Output truncated... } [200] OK: `{"count":2,"next":null,"previous":null,"results":[{"translation":"http://localhost:35909/api/translations/workbench/strings/cs/","language_code":"cs","source":["Hello"],"previous_source":"","target":[""],"id_hash":-2665940278720648281,"content_hash":-2665940278720648281,"location":"","context":"","note":"","flags":"","labels":[],"state":0,"fuzzy":false,"translated":false,"approved":false,"position":1,"has_suggestion":false,"has_comment":false,"has_failing_check":false,"num_words":1,"source_unit":"http://loc // Output truncated...` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' http://0.0.0.0:35909/api/translations/workbench/strings/cs/units/ 2. Test Case ID: PoNSx1 - JSON deserialization error Response must be valid JSON with 'Content-Type: application/json' header: Expecting value: line 1 column 1 (char 0) - Missing Content-Type header The following media types are documented in the schema: - `application/json` - `text/csv` [200] OK: Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/translations/workbench/glossary/cs/units/?format=csv' 3. Test Case ID: dhvuxu - API accepted schema-violating request Invalid data should have been rejected Expected: 400, 401, 403, 404, 405, 406, 409, 415, 422, 428, 429, 5xx Invalid component: parameter `format` in query - violates `enum` at /properties/format [200] OK: `{"count":0,"next":null,"previous":null,"results":[]}` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/translations/workbench/glossary/en/units/?format=' _______________________________ GET /api/units/ ________________________________ 1. Test Case ID: gRLEow - Response violates schema (2 violations) null is not of type "string" Validated against the response schema for status code 200. Schema at /components/schemas/PaginatedUnitList/properties/next: { "type": "string", "format": "uri", "example": "http://api.example.org/accounts/?page=4" } Value: null null is not of type "string" Validated against the response schema for status code 200. Schema at /components/schemas/PaginatedUnitList/properties/previous: { "type": "string", "format": "uri", "example": "http://api.example.org/accounts/?page=2" } Value: null - API accepted schema-violating request Invalid data should have been rejected Expected: 400, 401, 403, 404, 405, 406, 409, 415, 422, 428, 429, 5xx Invalid component: parameter `page_size` in query - page_size: Incorrect type [200] OK: `{"count":6,"next":null,"previous":null,"results":[{"translation":"http://localhost:35909/api/translations/workbench/strings/en/","language_code":"en","source":["Hello"],"previous_source":"","target":["Hello"],"id_hash":-2665940278720648281,"content_hash":-2665940278720648281,"location":"","context":"","note":"","flags":"","labels":[],"state":100,"fuzzy":false,"translated":true,"approved":false,"position":1,"has_suggestion":false,"has_comment":false,"has_failing_check":false,"num_words":1,"source_unit":"http // Output truncated...` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/units/?page_size=null&page_size=null' _____________________________ GET /api/units/{id}/ _____________________________ 1. Test Case ID: Bk3vik - API accepted schema-violating request Invalid data should have been rejected Expected: 400, 401, 403, 404, 405, 406, 409, 415, 422, 428, 429, 5xx Invalid component: parameter `format` in query - violates `enum` at /properties/format [200] OK: `{"translation":"http://localhost:35909/api/translations/workbench/strings/cs/?format=","language_code":"cs","source":["Hello"],"previous_source":"","target":[""],"id_hash":-2665940278720648281,"content_hash":-2665940278720648281,"location":"","context":"","note":"","flags":"","labels":[],"state":0,"fuzzy":false,"translated":false,"approved":false,"position":1,"has_suggestion":false,"has_comment":false,"has_failing_check":false,"num_words":1,"source_unit":"http://localhost:35909/api/units/1/?format=","priori // Output truncated...` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/units/3/?format=' ______________________ GET /api/units/{id}/translations/ _______________________ 1. Test Case ID: eJCReB - Response violates schema [{"approved":false,"content_hash":-2665940278720648281,"context":"","explanation":"","extra_flags":"","flags":"","fuzzy":false,"has_comment":false,"has_failing_check":false,"has_suggestion":false,"id":5,"id_hash":-2665940278720648281,"labels":[],"language_code":"de","last_updated":"2026-10-07T06:18:37.456601Z","location":"","note":"","num_words":1,"pending":false,"position":1,"previous_source":"","priority":100,"source":["Hello"],"source_unit":"http://localhost:35909/api/units/1/","state":0,"target":[""],"timestamp":"2026-10-07T06:14:58.871595Z","translated":false,"translation":"http://localhost:35909/api/translations/workbench/strings/de/","url":"http://localhost:35909/api/units/5/","web_url":"http://localhost:35909/translate/workbench/strings/de/?checksum=5b00ad70f6732ba7"},{"approved":false,"content_hash":-2665940278720648281,"context":"","explanation":"","extra_flags":"","flags":"","fuzzy":false,"has_comment":false,"has_failing_check":false,"has_suggestion":false,"id":3,"id_hash":-2665940278720648281,"labels":[],"language_code":"cs","last_updated":"2026-10-07T06:18:37.479263Z","location":"","note":"","num_words":1,"pending":false,"position":1,"previous_source":"","priority":100,"source":["Hello"],"source_unit":"http://localhost:35909/api/units/1/","state":0,"target":[""],"timestamp":"2026-10-07T06:14:58.864486Z","translated":false,"translation":"http://localhost:35909/api/translations/workbench/strings/cs/","url":"http://localhost:35909/api/units/3/","web_url":"http://localhost:35909/translate/workbench/strings/cs/?checksum=5b00ad70f6732ba7"}] is not of type "object" Validated against the response schema for status code 200. Schema at /components/schemas/UnitWrite: { "type": "object", "description": "Serializer for updating source unit.", "properties": { "target": { "type": "array", "items": { "type": "string" } }, "state": { "allOf": [ { "$ref": "#/components/schemas/StateEnum" } ], "minimum": -2147483648, "maximum": 2147483647 }, // Output truncated... } Value: [ { "approved": false, "content_hash": -2665940278720648281, "context": "", "explanation": "", "extra_flags": "", "flags": "", "fuzzy": false, "has_comment": false, "has_failing_check": false, "has_suggestion": false, "id": 5, "id_hash": -2665940278720648281, "labels": [], "language_code": "de", "last_updated": "2026-10-07T06:18:37.456601Z", "location": "", "note": "", // Output truncated... ] [200] OK: `[{"translation":"http://localhost:35909/api/translations/workbench/strings/de/","language_code":"de","source":["Hello"],"previous_source":"","target":[""],"id_hash":-2665940278720648281,"content_hash":-2665940278720648281,"location":"","context":"","note":"","flags":"","labels":[],"state":0,"fuzzy":false,"translated":false,"approved":false,"position":1,"has_suggestion":false,"has_comment":false,"has_failing_check":false,"num_words":1,"source_unit":"http://localhost:35909/api/units/1/","priority":100,"id":5, // Output truncated...` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' http://0.0.0.0:35909/api/units/1/translations/ 2. Test Case ID: arjHqE - API rejected schema-compliant request Valid data should have been accepted Expected: 2xx, 401, 403, 404, 409, 429, 5xx [400] Bad Request: `errors.0.attr,errors.0.code,errors.0.detail,type ,not-a-source-unit,Specified unit id is not a translation source unit.,client_error` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/units/3/translations/?format=csv' 3. Test Case ID: gAVjbJ - Response violates schema {"errors":[{"attr":null,"code":"not-a-source-unit","detail":"Specified unit id is not a translation source unit."}],"type":"client_error"} is not valid under any of the schemas listed in the 'oneOf' keyword Validated against the response schema for status code 400. Schema at /components/schemas/ApiUnitsTranslationsRetrieveErrorResponse400: { "oneOf": [ { "$ref": "#/components/schemas/ParseErrorResponse" } ], "discriminator": { "propertyName": "type", "mapping": { "client_error": "#/components/schemas/ParseErrorResponse" } } } Value: { "errors": [ { "attr": null, "code": "not-a-source-unit", "detail": "Specified unit id is not a translation source unit." } ], "type": "client_error" } [400] Bad Request: `{"type":"client_error","errors":[{"code":"not-a-source-unit","detail":"Specified unit id is not a translation source unit.","attr":null}]}` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/units/3/translations/?format=json' 4. Test Case ID: op6VAl - API accepted schema-violating request Invalid data should have been rejected Expected: 400, 401, 403, 404, 405, 406, 409, 415, 422, 428, 429, 5xx Invalid component: parameter `format` in query - violates `enum` at /properties/format [200] OK: `[{"translation":"http://localhost:35909/api/translations/workbench/strings/de/?format=","language_code":"de","source":["World"],"previous_source":"","target":[""],"id_hash":-215278447731063911,"content_hash":-215278447731063911,"location":"","context":"","note":"","flags":"","labels":[],"state":0,"fuzzy":false,"translated":false,"approved":false,"position":2,"has_suggestion":false,"has_comment":false,"has_failing_check":false,"num_words":1,"source_unit":"http://localhost:35909/api/units/2/?format=","priorit // Output truncated...` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/units/2/translations/?format=' _______________________________ GET /api/users/ ________________________________ 1. Test Case ID: oHIzsk - JSON deserialization error Response must be valid JSON with 'Content-Type: application/json' header: Expecting value: line 1 column 1 (char 0) - Missing Content-Type header The following media types are documented in the schema: - `application/json` - `text/csv` [200] OK: Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/users/?format=csv&id=0' 2. Test Case ID: B8AyB3 - Response violates schema (2 violations) null is not of type "string" Validated against the response schema for status code 200. Schema at /components/schemas/PaginatedFullUserList/properties/next: { "type": "string", "format": "uri", "example": "http://api.example.org/accounts/?page=4" } Value: null null is not of type "string" Validated against the response schema for status code 200. Schema at /components/schemas/PaginatedFullUserList/properties/previous: { "type": "string", "format": "uri", "example": "http://api.example.org/accounts/?page=2" } Value: null [200] OK: `{"count":3,"next":null,"previous":null,"results":[{"id":1,"email":"noreply@weblate.org","full_name":"Anonymous","username":"anonymous","groups":["http://localhost:35909/api/groups/1/","http://localhost:35909/api/groups/2/"],"languages":[],"notifications":"http://localhost:35909/api/users/anonymous/notifications/","is_superuser":false,"is_active":false,"is_bot":false,"date_joined":"2026-10-07T06:14:33.326831Z","date_expires":null,"last_login":null,"url":"http://localhost:35909/api/users/anonymous/","statisti // Output truncated...` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/users/?username=' 3. Test Case ID: PJDcnA - API accepted schema-violating request Invalid data should have been rejected Expected: 400, 401, 403, 404, 405, 406, 409, 415, 422, 428, 429, 5xx Invalid component: parameter `page_size` in query - page_size: Incorrect type [200] OK: `{"count":3,"next":null,"previous":null,"results":[{"id":1,"email":"noreply@weblate.org","full_name":"Anonymous","username":"anonymous","groups":["http://localhost:35909/api/groups/1/","http://localhost:35909/api/groups/2/"],"languages":[],"notifications":"http://localhost:35909/api/users/anonymous/notifications/","is_superuser":false,"is_active":false,"is_bot":false,"date_joined":"2026-10-07T06:14:33.326831Z","date_expires":null,"last_login":null,"url":"http://localhost:35909/api/users/anonymous/","statisti // Output truncated...` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/users/?page_size=null&page_size=null' __________________________ GET /api/users/{username}/ __________________________ 1. Test Case ID: O0kx8b - API accepted schema-violating request Invalid data should have been rejected Expected: 400, 401, 403, 404, 405, 406, 409, 415, 422, 428, 429, 5xx Invalid component: parameter `format` in query - violates `enum` at /properties/format [200] OK: `{"id":2,"email":"admin@example.com","full_name":"admin","username":"admin","groups":["http://localhost:35909/api/groups/2/?format=","http://localhost:35909/api/groups/3/?format="],"languages":[],"notifications":"http://localhost:35909/api/users/admin/notifications/?format=","is_superuser":true,"is_active":true,"is_bot":false,"date_joined":"2026-10-07T06:14:36.767253Z","date_expires":null,"last_login":null,"url":"http://localhost:35909/api/users/admin/?format=","statistics_url":"http://localhost:35909/api/us // Output truncated...` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/users/admin/?format=' ___________________ GET /api/users/{username}/contributions/ ___________________ 1. Test Case ID: dWngOM - Response violates schema [] is not of type "object" Validated against the response schema for status code 200. Schema: { "type": "object", "properties": { "id": { "type": "integer", "readOnly": true }, "email": { "type": [ "string", "null" ], "title": "E-mail", "format": "email", "maxLength": 190 }, "full_name": { "type": "string", "maxLength": 150 // Output truncated... } Value: [] [200] OK: `[]` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/users/admin/contributions/?format=json-flat' 2. Test Case ID: vtT6bV - Response violates schema "contributions_url" is a required property Validated against the response schema for status code 200. Schema: { "required": [ "contributions_url", "date_joined", "full_name", "groups", "id", "languages", "last_login", "notifications", "statistics_url", "url", "username" ], "type": "object", "properties": { "id": { "type": "integer", "readOnly": true // Output truncated... } Value: { "count": 0, "next": null, "previous": null, "results": [] } [200] OK: `{"count":0,"next":null,"previous":null,"results":[]}` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/users/admin/contributions/?format=json' 3. Test Case ID: rKTpIr - JSON deserialization error Response must be valid JSON with 'Content-Type: application/json' header: Expecting value: line 1 column 1 (char 0) - Missing Content-Type header The following media types are documented in the schema: - `application/json` - `text/csv` [200] OK: Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/users/admin/contributions/?format=csv' 4. Test Case ID: XjteG9 - API accepted schema-violating request Invalid data should have been rejected Expected: 400, 401, 403, 404, 405, 406, 409, 415, 422, 428, 429, 5xx Invalid component: parameter `format` in query - violates `enum` at /properties/format [200] OK: `{"count":0,"next":null,"previous":null,"results":[]}` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/users/admin/contributions/?format=' ___________________ GET /api/users/{username}/notifications/ ___________________ 1. Test Case ID: lKUzJm - Response violates schema (2 violations) null is not of type "string" Validated against the response schema for status code 200. Schema at /components/schemas/PaginatedNotificationList/properties/next: { "type": "string", "format": "uri", "example": "http://api.example.org/accounts/?page=4" } Value: null null is not of type "string" Validated against the response schema for status code 200. Schema at /components/schemas/PaginatedNotificationList/properties/previous: { "type": "string", "format": "uri", "example": "http://api.example.org/accounts/?page=2" } Value: null - API accepted schema-violating request Invalid data should have been rejected Expected: 400, 401, 403, 404, 405, 406, 409, 415, 422, 428, 429, 5xx Invalid component: parameter `page_size` in query - page_size: Incorrect type [200] OK: `{"count":0,"next":null,"previous":null,"results":[]}` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/users/weblate%3Acommit/notifications/?page_size=null&page_size=null' 2. Test Case ID: WsgMr2 - JSON deserialization error Response must be valid JSON with 'Content-Type: application/json' header: Expecting value: line 1 column 1 (char 0) - Missing Content-Type header The following media types are documented in the schema: - `application/json` - `text/csv` [200] OK: Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/users/weblate%3Acommit/notifications/?format=csv' 3. Test Case ID: G6u8Z0 - Response violates schema (2 violations) null is not of type "object" Validated against the response schema for status code 200. Schema at /components/schemas/Component: { "type": "object", "properties": { "name": { "type": "string", "title": "Component name", "description": "Display name", "maxLength": 100 }, "slug": { "type": "string", "title": "URL slug", "description": "Name used in URLs and filenames.", "maxLength": 100, "pattern": "^[-a-zA-Z0-9_]+$" }, "id": { "type": "integer", "readOnly": true // Output truncated... } Value: null null is not of type "object" Validated against the response schema for status code 200. Schema at /components/schemas/Project: { "type": "object", "properties": { "name": { "type": "string", "title": "Project name", "description": "Display name", "maxLength": 60 }, "slug": { "type": "string", "title": "URL slug", "description": "Name used in URLs and filenames.", "maxLength": 60, "pattern": "^[-a-zA-Z0-9_]+$" }, "id": { "type": "integer", "readOnly": true // Output truncated... } Value: null [200] OK: `{"count":15,"next":null,"previous":null,"results":[{"notification":"MentionCommentNotificaton","id":1,"scope":0,"frequency":1,"project":null,"component":null},{"notification":"LastAuthorCommentNotificaton","id":2,"scope":10,"frequency":1,"project":null,"component":null},{"notification":"MentionCommentNotificaton","id":3,"scope":10,"frequency":1,"project":null,"component":null},{"notification":"NewAnnouncementNotificaton","id":4,"scope":10,"frequency":1,"project":null,"component":null},{"notification":"NewSt // Output truncated...` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/users/admin/notifications/?format=json' __________ GET /api/users/{username}/notifications/{subscription_id}/ __________ 1. Test Case ID: y68eIc - Undocumented Content-Type Received: text/html; charset=utf-8 Documented: application/json, text/csv [404] Not Found: ` Page Not Found @ Weblate number: Value smaller than minimum [200] OK: `code,direction,id,name,plural.formula,plural.id,plural.number,plural.source,plural.type,population,statistics_url,url,web_url ace,ltr,4,Acehnese,0,4,1,0,0,0,http://localhost:35909/api/languages/ace/statistics/?format=csv,http://localhost:35909/api/languages/ace/?format=csv,http://localhost:35909/languages/ace/` Reproduce with: curl -X PATCH -H 'Token: [Filtered]' -H 'Bearer;' -H 'Authorization: [Filtered]' -H 'Cookie: [Filtered]' -H 'Content-Type: multipart/form-data; boundary=e14a78adcb72174a957dc7501e4bba8f' -d $'--e14a78adcb72174a957dc7501e4bba8f\r\nContent-Disposition: form-data; name="code"\r\n\r\nace\r\n--e14a78adcb72174a957dc7501e4bba8f\r\nContent-Disposition: form-data; name="name"\r\n\r\n\r\n--e14a78adcb72174a957dc7501e4bba8f\r\nContent-Disposition: form-data; name="plural"\r\n\r\n{"source": 0, "number": -32769, "formula": ""}\r\n--e14a78adcb72174a957dc7501e4bba8f\r\nContent-Disposition: form-data; name="direction"\r\n\r\nltr\r\n--e14a78adcb72174a957dc7501e4bba8f\r\nContent-Disposition: form-data; name="population"\r\n\r\n0\r\n--e14a78adcb72174a957dc7501e4bba8f--\r\n' 'http://0.0.0.0:35909/api/languages/ace/?format=csv' _________________________ PATCH /api/projects/{slug}/ __________________________ 1. Test Case ID: XoUXLM - API rejected schema-compliant request Valid data should have been accepted Expected: 2xx, 401, 403, 404, 409, 429, 5xx [400] Bad Request: `errors.0.attr,errors.0.code,errors.0.detail,errors.1.attr,errors.1.code,errors.1.detail,type name,blank,This field may not be blank.,secondary_language,does_not_exist,"Invalid pk ""0"" - object does not exist.",validation_error` Reproduce with: curl -X PATCH -H 'Token: [Filtered]' -H 'Authorization: [Filtered]' -H 'Content-Type: application/json' -H 'Cookie: [Filtered]' -d '{"name": "", "slug": "workbench", "web": "https://0.com", "check_flags": "", "translation_review": false, "source_review": false, "commit_policy": 0, "set_language_team": false, "instructions": "", "enable_hooks": false, "language_aliases": "", "secondary_language": 0, "enforced_2fa": false}' 'http://0.0.0.0:35909/api/projects/workbench/?format=csv' ________________ PATCH /api/projects/{slug}/machinery_settings/ ________________ 1. Test Case ID: MQQjyF - Response violates schema [{"attr":"configuration","code":"invalid","detail":"Service not found: service_name"}] is not of type "string" Validated against the response schema for status code 400. Schema at /properties/errors: { "type": "string" } Value: [ { "attr": "configuration", "code": "invalid", "detail": "Service not found: service_name" } ] - API rejected schema-compliant request Valid data should have been accepted Expected: 2xx, 401, 403, 404, 409, 429, 5xx [400] Bad Request: `{"type":"validation_error","errors":[{"code":"invalid","detail":"Service not found: service_name","attr":"configuration"}]}` Reproduce with: curl -X PATCH -H 'Authorization: [Filtered]' -H 'Content-Type: application/json' -d '{"service": "service_name", "configuration": {"key": "xxxxx", "url": "https://api.service.com/"}}' http://0.0.0.0:35909/api/projects/workbench/machinery_settings/ 2. Test Case ID: phjb2j - Server error [500] Internal Server Error: `errors.0.attr,errors.0.code,errors.0.detail,type ,error,Server Error (500),server_error` Reproduce with: curl -X PATCH -H 'Token: [Filtered]' -H 'Bearer;' -H 'Authorization: [Filtered]' -H 'Content-Type: application/json' -H 'Cookie: [Filtered]' -d '{"service": {}, "configuration": {"key": "xxxxx", "url": "https://api.service.com/"}}' 'http://0.0.0.0:35909/api/projects/workbench/machinery_settings/?format=csv' ____________________________ PATCH /api/units/{id}/ ____________________________ 1. Test Case ID: 0Lgm99 - Server error [500] Internal Server Error: `{"type":"server_error","errors":[{"code":"error","detail":"Server Error (500)","attr":null}]}` Reproduce with: curl -X PATCH -H 'Authorization: [Filtered]' -H 'Content-Type: application/json' -d '{"": {"j\u009cM_\u0083\udbd2\udf69": [true]}, "labels": [{"": {}, "\n\u00f0\u00f5\ud83e\udee0\u0004C\u00dan\u00b7": {"\u00e3\ud9b1\ude0a": {"\u009c\ud85f\udd26\u0019u": 0.0}, "\udaf4\ude9d5\u000b": null, "\u00c6\u00e0\u00ab\u00b7\uda53\udd75m": [22429254908158840]}, "description": ">\u000f", "name": "\uda64\udfa4"}], "target": ["\uda7c\ude93", "E\ud9c8\udff3"]}' 'http://0.0.0.0:35909/api/units/2/?format=json' 2. Test Case ID: hkHCSQ - Response violates schema {"errors":[{"attr":"target","code":"invalid","detail":"Number of plurals does not match"}],"type":"validation_error"} is not valid under any of the schemas listed in the 'oneOf' keyword Validated against the response schema for status code 400. Schema at /components/schemas/ApiUnitsPartialUpdateErrorResponse400: { "oneOf": [ { "$ref": "#/components/schemas/ApiUnitsPartialUpdateValidationError" }, { "$ref": "#/components/schemas/ParseErrorResponse" } ], "discriminator": { "propertyName": "type", "mapping": { "validation_error": "#/components/schemas/ApiUnitsPartialUpdateVa... "client_error": "#/components/schemas/ParseErrorResponse" } } } Value: { "errors": [ { "attr": "target", "code": "invalid", "detail": "Number of plurals does not match" } ], "type": "validation_error" } - API rejected schema-compliant request Valid data should have been accepted Expected: 2xx, 401, 403, 404, 409, 429, 5xx Hint: The request body contains 5 additional properties not defined in the schema (`Cø𐑩¹򔳂ÙHêÓ򌂍‘PK÷ÜC6`, `—HÓé`, `򅗲 Ëu` 3:u8AÞê` and 2 more). The server likely rejects unexpected fields. Add `additionalProperties: false` to your schema to prevent this. [400] Bad Request: `{"type":"validation_error","errors":[{"code":"invalid","detail":"Number of plurals does not match","attr":"target"}]}` Reproduce with: curl -X PATCH -H 'Authorization: [Filtered]' -H 'Token: [Filtered]' -H 'Bearer: Zs' -H 'Content-Type: application/json' -H 'Cookie: [Filtered]' -d '{"\u0097H\u00d3\u00e9": {"\u0006": -457, "\u0085\ud818\udf99k\ud9a6\udeff\u00ea\udb09\udf25": -1.4585394831218181e+106, "\ud81b\ude6fk\u00b4\u00df\u00c4x\u0095\u00d7\u00d5\u00e91u\u0013\u00cfO": false}, "\ud9d5\uddf2\u00a0\u00cbu`\u001c3:u8A\u0013\u00de\u00ea": [], "C\u00f8\ud801\udc69\u00b9\uda13\udcc2\u00d9H\u00ea\u00d3\ud9f0\udc8d\u0091PK\u00f7\u00dc\bC6": {"\u00ee\u00ce\u009c": [], "\udb66\udd33{": [-2.6252920521282508e+16, "\u00a7\u00d6\br"]}, "\uda43\udd04\u00a8": [], "\uda9e\udfd4>\u00c8\u00e1\u001a\u00b3\u0015": [], "target": []}' 'http://0.0.0.0:35909/api/units/2/?format=json' 3. Test Case ID: zpjL31 - API accepted schema-violating request Invalid data should have been rejected Expected: 400, 401, 403, 404, 405, 406, 409, 415, 422, 428, 429, 5xx Invalid component: parameter `format` in query - violates `enum` at /properties/format [200] OK: `{"target":["Hello"],"state":100,"explanation":"","extra_flags":"","labels":[]}` Reproduce with: curl -X PATCH -H 'Authorization: [Filtered]' -H 'Content-Type: application/json' -d '{}' 'http://0.0.0.0:35909/api/units/1/?format=' _________ PATCH /api/users/{username}/notifications/{subscription_id}/ _________ 1. Test Case ID: iKfJQF - Undocumented Content-Type Received: text/html; charset=utf-8 Documented: application/json, text/csv [404] Not Found: ` Page Not Found @ Weblate b$IVT=.=e*^' -H 'Cookie: [Filtered]' -H 'Content-Type: multipart/form-data; boundary=f45407ddb3c589f965c2d2416d050713' -d $'--f45407ddb3c589f965c2d2416d050713\r\nContent-Disposition: form-data; name="¡\xf4\x81\xbb\xad𱊄°\xc2\x8d`\xf3\xb4\xb3\xa8"\r\n\r\n-610\r\n--f45407ddb3c589f965c2d2416d050713\r\nContent-Disposition: form-data; name="¡\xf4\x81\xbb\xad𱊄°\xc2\x8d`\xf3\xb4\xb3\xa8"\r\n\r\n-1416991673\r\n--f45407ddb3c589f965c2d2416d050713\r\nContent-Disposition: form-data; name="¡\xf4\x81\xbb\xad𱊄°\xc2\x8d`\xf3\xb4\xb3\xa8"\r\n\r\n-1319990996991691.0\r\n--f45407ddb3c589f965c2d2416d050713\r\nContent-Disposition: form-data; name="Í"\r\n\r\n["\\u00e1\\u00b5\\u007f\\u0001_\\u00f3\\u00f2\\u00a4\\u009e\\u0012\\ud85d\\udd2bb\\\\\\u00ee", true, null]\r\n--f45407ddb3c589f965c2d2416d050713\r\nContent-Disposition: form-data; name="Í"\r\n\r\nnull\r\n--f45407ddb3c589f965c2d2416d050713\r\nContent-Disposition: form-data; name="«\xf3\xab\x90\xa2Ï\xf2\x8c\xab\xbf8I¬\xc2\x8c9ÍQzßÖ\xf1\xad\xa1\x99ý²©l"\r\n\r\nnull\r\n--f45407ddb3c589f965c2d2416d050713\r\nContent-Disposition: form-data; name="M(\xc2\x9aª\x0f"\r\n\r\n{"\\ud97c\\uddd8cLP": ["\\u0085v\\udbe6\\udf29K\\u00a7", true, "\\ud863\\udda9"]}\r\n--f45407ddb3c589f965c2d2416d050713\r\nContent-Disposition: form-data; name="operation"\r\n\r\ncleanup\r\n--f45407ddb3c589f965c2d2416d050713--\r\n' 'http://0.0.0.0:35909/api/translations/workbench/glossary/en/repository/?format=' POST /api/translations/{component__project__slug}/{component__slug}/{language__code}/units/ 1. Test Case ID: ex0dcg - Response violates schema {"errors":[{"attr":"source","code":"required","detail":"This field is required."},{"attr":"target","code":"required","detail":"This field is required."}],"type":"validation_error"} is not valid under any of the schemas listed in the 'oneOf' keyword Validated against the response schema for status code 400. Schema at /components/schemas/ApiTranslationsUnitsCreateErrorResponse400: { "oneOf": [ { "$ref": "#/components/schemas/ApiTranslationsUnitsCreateValidatio... }, { "$ref": "#/components/schemas/ParseErrorResponse" } ], "discriminator": { "propertyName": "type", "mapping": { "validation_error": "#/components/schemas/ApiTranslationsUnitsCre... "client_error": "#/components/schemas/ParseErrorResponse" } } } Value: { "errors": [ { "attr": "source", "code": "required", "detail": "This field is required." }, { "attr": "target", "code": "required", "detail": "This field is required." } ], "type": "validation_error" } - API rejected schema-compliant request Valid data should have been accepted Expected: 2xx, 401, 403, 404, 409, 429, 5xx [400] Bad Request: `{"type":"validation_error","errors":[{"code":"required","detail":"This field is required.","attr":"source"},{"code":"required","detail":"This field is required.","attr":"target"}]}` Reproduce with: curl -X POST -H 'Authorization: [Filtered]' -H 'Content-Type: application/x-www-form-urlencoded' -d filename= http://0.0.0.0:35909/api/translations/workbench/glossary/cs/units/ ________________________ POST /api/units/{id}/comments/ ________________________ 1. Test Case ID: PpTWeK - API rejected schema-compliant request Valid data should have been accepted Expected: 2xx, 401, 403, 404, 409, 429, 5xx [400] Bad Request: `{"type":"validation_error","errors":[{"code":"blank","detail":"This field may not be blank.","attr":"comment"}]}` Reproduce with: curl -X POST -H 'Authorization: [Filtered]' -H 'Content-Type: application/json' -d '{"comment": "", "scope": "global"}' http://0.0.0.0:35909/api/units/1/comments/ 2. Test Case ID: ibh1YX - Response violates schema {"errors":[{"attr":"scope","code":"invalid","detail":"\"report\" is not a valid choice as source review is disabled."}],"type":"validation_error"} is not valid under any of the schemas listed in the 'oneOf' keyword Validated against the response schema for status code 400. Schema at /components/schemas/ApiUnitsCommentsCreateErrorResponse400: { "oneOf": [ { "$ref": "#/components/schemas/ApiUnitsCommentsCreateValidationError" }, { "$ref": "#/components/schemas/ParseErrorResponse" } ], "discriminator": { "propertyName": "type", "mapping": { "validation_error": "#/components/schemas/ApiUnitsCommentsCreateV... "client_error": "#/components/schemas/ParseErrorResponse" } } } Value: { "errors": [ { "attr": "scope", "code": "invalid", "detail": "\"report\" is not a valid choice as source review is d... } ], "type": "validation_error" } [400] Bad Request: `{"type":"validation_error","errors":[{"code":"invalid","detail":"\"report\" is not a valid choice as source review is disabled.","attr":"scope"}]}` Reproduce with: curl -X POST -H 'Authorization: [Filtered]' -H 'Token: [Filtered]' -H 'Content-Type: application/json' -d '{"": {}, "scope": "report", "comment": "\u008c\u000b\ud929\udfca\u00c7"}' 'http://0.0.0.0:35909/api/units/2/comments/?format=json' 3. Test Case ID: fWpbLl - Undocumented HTTP status code Received: 201 Documented: 400, 401, 403, 404, 405, 406, 415, 423, 429, 500, 200 [201] Created: `{"comment":"0","timestamp":"2026-10-07T06:18:41.066402Z","id":1,"user":"http://localhost:35909/api/users/admin/"}` Reproduce with: curl -X POST -H 'Authorization: [Filtered]' -H 'Bearer;' -H 'Token: [Filtered]' -H 'Content-Type: application/json' -d '{"comment": "0", "scope": "global"}' http://0.0.0.0:35909/api/units/1/comments/ 4. Test Case ID: A9NgNi - API accepted schema-violating request Invalid data should have been rejected Expected: 400, 401, 403, 404, 405, 406, 409, 415, 422, 428, 429, 5xx Invalid component: parameter `format` in query - violates `enum` at /properties/format [201] Created: `{"comment":"0.0","timestamp":"2026-10-07T06:29:57.031044Z","id":48,"user":"http://localhost:35909/api/users/admin/?format="}` Reproduce with: curl -X POST -H 'Authorization: [Filtered]' -H 'Bearer: M]' -H 'Content-Type: application/json' -d '{"comment": "0.0", "scope": "global"}' 'http://0.0.0.0:35909/api/units/2/comments/?format=' _______________________________ POST /api/users/ _______________________________ 1. Test Case ID: dc8xwI - API rejected schema-compliant request Valid data should have been accepted Expected: 2xx, 401, 403, 404, 409, 429, 5xx [400] Bad Request: `errors.0.attr,errors.0.code,errors.0.detail,errors.1.attr,errors.1.code,errors.1.detail,errors.2.attr,errors.2.code,errors.2.detail,type full_name,blank,This field may not be blank.,username,blank,This field may not be blank.,date_expires,invalid,Datetime has wrong format. Use one of these formats instead: YYYY-MM-DDThh:mm[:ss[.uuuuuu]][+HH:MM|-HH:MM|Z].,validation_error` Reproduce with: curl -X POST -H 'Token: [Filtered]' -H 'Authorization: [Filtered]' -H 'Content-Type: application/json' -H 'Cookie: [Filtered]' -d '{"email": "0@0.com", "full_name": "", "username": "", "is_superuser": false, "is_active": false, "is_bot": false, "date_expires": ""}' 'http://0.0.0.0:35909/api/users/?format=csv' ______________________ POST /api/users/{username}/groups/ ______________________ 1. Test Case ID: G1PvUD - Response violates schema {"errors":[{"attr":"group_id","code":"invalid","detail":"Missing group_id parameter"}],"type":"validation_error"} is not valid under any of the schemas listed in the 'oneOf' keyword Validated against the response schema for status code 400. Schema at /components/schemas/ApiUsersGroupsCreateErrorResponse400: { "oneOf": [ { "$ref": "#/components/schemas/ApiUsersGroupsCreateValidationError" }, { "$ref": "#/components/schemas/ParseErrorResponse" } ], "discriminator": { "propertyName": "type", "mapping": { "validation_error": "#/components/schemas/ApiUsersGroupsCreateVal... "client_error": "#/components/schemas/ParseErrorResponse" } } } Value: { "errors": [ { "attr": "group_id", "code": "invalid", "detail": "Missing group_id parameter" } ], "type": "validation_error" } - API rejected schema-compliant request Valid data should have been accepted Expected: 2xx, 401, 403, 404, 409, 429, 5xx [400] Bad Request: `{"type":"validation_error","errors":[{"code":"invalid","detail":"Missing group_id parameter","attr":"group_id"}]}` Reproduce with: curl -X POST -H 'Authorization: [Filtered]' -H 'Content-Type: application/json' -d '{"full_name": "Anonymous", "username": "anonymous"}' http://0.0.0.0:35909/api/users/admin/groups/ __________________ POST /api/users/{username}/notifications/ ___________________ 1. Test Case ID: 4RakgG - Response violates schema {"errors":[{"attr":"id","code":"invalid","detail":"Enter a number."}],"type":"validation_error"} is not valid under any of the schemas listed in the 'oneOf' keyword Validated against the response schema for status code 400. Schema at /components/schemas/ApiUsersNotificationsCreateErrorResponse400: { "oneOf": [ { "$ref": "#/components/schemas/ApiUsersNotificationsCreateValidati... }, { "$ref": "#/components/schemas/ParseErrorResponse" } ], "discriminator": { "propertyName": "type", "mapping": { "validation_error": "#/components/schemas/ApiUsersNotificationsCr... "client_error": "#/components/schemas/ParseErrorResponse" } } } Value: { "errors": [ { "attr": "id", "code": "invalid", "detail": "Enter a number." } ], "type": "validation_error" } [400] Bad Request: `{"type":"validation_error","errors":[{"code":"invalid","detail":"Enter a number.","attr":"id"}]}` Reproduce with: curl -X POST -H 'Token: [Filtered]' -H 'Bearer;' -H 'Authorization: [Filtered]' -H 'Content-Type: application/json' -H 'Cookie: [Filtered]' -d '{"notification": "RepositoryNotification", "scope": 0, "frequency": 0}' 'http://0.0.0.0:35909/api/users/0/notifications/?id=null&id=null' 2. Test Case ID: Lv6Lem - Undocumented HTTP status code Received: 201 Documented: 400, 401, 403, 404, 405, 406, 415, 423, 429, 500, 200 [201] Created: `{"notification":"LicenseNotification","id":31,"scope":0,"frequency":0,"project":null,"component":null}` Reproduce with: curl -X POST -H 'Authorization: [Filtered]' -H 'Content-Type: application/json' -H 'Cookie: [Filtered]' -d '{"default_value": {}, "shes": {}, "n\u00fe": {}, "\u0004": null, "\n\u0091": null, "notification": "LicenseNotification", "frequency": 0, "scope": 0}' http://0.0.0.0:35909/api/users/admin/notifications/ 3. Test Case ID: MvtyE2 - Server error [500] Internal Server Error: `errors.0.attr,errors.0.code,errors.0.detail,type ,error,Server Error (500),server_error` Reproduce with: curl -X POST -H 'Authorization: [Filtered]' -H 'Content-Type: application/json' -d '{"\u00bbQ\u0090l\u00b0\u00b6\u00a4A\u00f5\u00db#\u00c4\u00ec\u001f\ud958\udea6\ud9bc\udf64\u00c0": {"ma": {"\u00fe\uda8d\udd64\u0006\u00fe\u00fe\u0017": 7.2653656683853e-100, "\u0012\ud878\ude23\u0018\ud999\udcdf\u00db\u00e0=N\uda2c\udc00\u00ccy": "\u0018", "\u00aa\u000b\ucb5f\u008b\ud816\ude27\udb71\udd9b\ud83e\udf347\u00b2\u001e": -2050901797.0008156}}, "": [{"&?\u0089\udb7b\ude23\u009b\ud8ee\udc2c5\u00b7:\u001a\u000f\u009d\u0006\f\udaad\udc20^\u00c8\u0094\f": "!\u00cbeg\b\u0084\ud869\udf9c\u0096y\u008e,", "\udaa3\ude0c@\uda4f\udf8eL\ud92a\udf39\u0089\u00db\u00e7\u00c8\u0013\u00ef\u00c4": "\u00d9j\u00e5\u007fd\uda7f\udcd1\u00a9=\u00dd\u0013}\u00b5f\u00f3:", "a\nb\rc\u0085d\u000be\ff\u2028g\u2029h\r\ni": null}, false], "\b\n": [], "\ud894\udc58\u00e0\u00fe\u00cdU\u00db\u0015\u00fe\u00ec\udbf5\udd81>\u0084\u00dd\u0089{F\u00af": -5453, "%\u0082": {"": false, "\u008d8\udac7\udcab": "\u00a2\uda16\udec1\ud82d\udf77\u00d3X~\u0015r\ud9ea\udc6d\ud9bb\ude49z\u0010\u00c1\u0010|\u00ed\u0016\uda6e\udd4c3B@", "\u00d3\udbda\udd34\ud977\udd65%\udb93\udd1f\udb79\udf4c": null}, "frequency": 0, "notification": "LockNotification", "scope": 0}' 'http://0.0.0.0:35909/api/users/admin/notifications/?format=csv' 4. Test Case ID: j1vJhs - API accepted schema-violating request Invalid data should have been rejected Expected: 400, 401, 403, 404, 405, 406, 409, 415, 422, 428, 429, 5xx Invalid component: parameter `format` in query - violates `enum` at /properties/format [201] Created: `{"notification":"TranslatedStringNotificaton","id":38,"scope":10,"frequency":0,"project":null,"component":null}` Reproduce with: curl -X POST -H 'Authorization: [Filtered]' -H 'Content-Type: application/x-www-form-urlencoded' -d 'frequency=0&scope=10¬ification=TranslatedStringNotificaton' 'http://0.0.0.0:35909/api/users/anonymous/notifications/?format=' ____________________________ POST /hooks/{service}/ ____________________________ 1. Test Case ID: WBxmsE - Response violates schema {"errors":[{"attr":null,"code":"invalid","detail":"Invalid data in json payload!"}],"type":"validation_error"} is not valid under any of the schemas listed in the 'oneOf' keyword Validated against the response schema for status code 400. Schema at /components/schemas/HooksIncomingErrorResponse400: { "oneOf": [ { "$ref": "#/components/schemas/HooksIncomingValidationError" }, { "$ref": "#/components/schemas/ParseErrorResponse" } ], "discriminator": { "propertyName": "type", "mapping": { "validation_error": "#/components/schemas/HooksIncomingValidation... "client_error": "#/components/schemas/ParseErrorResponse" } } } Value: { "errors": [ { "attr": null, "code": "invalid", "detail": "Invalid data in json payload!" } ], "type": "validation_error" } - API rejected schema-compliant request Valid data should have been accepted Expected: 2xx, 401, 403, 404, 409, 429, 5xx [400] Bad Request: `{"type":"validation_error","errors":[{"code":"invalid","detail":"Invalid data in json payload!","attr":null}]}` Reproduce with: curl -X POST -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/hooks/azure/?format=json' 2. Test Case ID: bZNusV - Undocumented Content-Type Received: text/html; charset=utf-8 Documented: application/json, text/csv [404] Not Found: ` Page Not Found @ Weblate number: Value smaller than minimum [200] OK: `aliases.0,code,direction,id,name,plural.formula,plural.id,plural.number,plural.source,plural.type,population,statistics_url,url,web_url aar,aa,ltr,1,Afar,n != 1,1,2,0,1,0,http://localhost:35909/api/languages/aa/statistics/?format=csv,http://localhost:35909/api/languages/aa/?format=csv,http://localhost:35909/languages/aa/` Reproduce with: curl -X PUT -H 'Token: [Filtered]' -H 'Bearer;' -H 'Authorization: [Filtered]' -H 'Cookie: [Filtered]' -H 'Content-Type: multipart/form-data; boundary=786fac4455e08cfeda7ca9107b7ad79d' -d $'--786fac4455e08cfeda7ca9107b7ad79d\r\nContent-Disposition: form-data; name="code"\r\n\r\naa\r\n--786fac4455e08cfeda7ca9107b7ad79d\r\nContent-Disposition: form-data; name="name"\r\n\r\n\r\n--786fac4455e08cfeda7ca9107b7ad79d\r\nContent-Disposition: form-data; name="plural"\r\n\r\n{"source": 0, "number": -32769, "formula": ""}\r\n--786fac4455e08cfeda7ca9107b7ad79d\r\nContent-Disposition: form-data; name="direction"\r\n\r\nltr\r\n--786fac4455e08cfeda7ca9107b7ad79d\r\nContent-Disposition: form-data; name="population"\r\n\r\n0\r\n--786fac4455e08cfeda7ca9107b7ad79d--\r\n' 'http://0.0.0.0:35909/api/languages/aa/?format=csv' __________________________ PUT /api/projects/{slug}/ ___________________________ 1. Test Case ID: U8JIkD - API rejected schema-compliant request Valid data should have been accepted Expected: 2xx, 401, 403, 404, 409, 429, 5xx [400] Bad Request: `errors.0.attr,errors.0.code,errors.0.detail,errors.1.attr,errors.1.code,errors.1.detail,type name,blank,This field may not be blank.,secondary_language,does_not_exist,"Invalid pk ""0"" - object does not exist.",validation_error` Reproduce with: curl -X PUT -H 'Token: [Filtered]' -H 'Authorization: [Filtered]' -H 'Content-Type: application/json' -H 'Cookie: [Filtered]' -d '{"name": "", "slug": "workbench", "web": "https://0.com", "check_flags": "", "translation_review": false, "source_review": false, "commit_policy": 0, "set_language_team": false, "instructions": "", "enable_hooks": false, "language_aliases": "", "secondary_language": 0, "enforced_2fa": false}' 'http://0.0.0.0:35909/api/projects/workbench/?format=csv' _________________ PUT /api/projects/{slug}/machinery_settings/ _________________ 1. Test Case ID: cMFQV4 - API rejected schema-compliant request Valid data should have been accepted Expected: 2xx, 401, 403, 404, 409, 429, 5xx [400] Bad Request: `errors.0.attr,errors.0.code,errors.0.detail,type configuration,invalid,Service not found: service_name,validation_error` Reproduce with: curl -X PUT -H 'Token: [Filtered]' -H 'Authorization: [Filtered]' -H 'Content-Type: application/json' -H 'Cookie: [Filtered]' -d '{"service_name": {}}' 'http://0.0.0.0:35909/api/projects/workbench/machinery_settings/?format=csv' 2. Test Case ID: IL1g9l - Response violates schema [{"attr":"configuration","code":"invalid","detail":"Service not found: service_name"}] is not of type "string" Validated against the response schema for status code 400. Schema at /properties/errors: { "type": "string" } Value: [ { "attr": "configuration", "code": "invalid", "detail": "Service not found: service_name" } ] [400] Bad Request: `{"type":"validation_error","errors":[{"code":"invalid","detail":"Service not found: service_name","attr":"configuration"}]}` Reproduce with: curl -X PUT -H 'Token: [Filtered]' -H 'Bearer;' -H 'Authorization: [Filtered]' -H 'Content-Type: application/json' -H 'Cookie: [Filtered]' -d '{"service_name": {}}' 'http://0.0.0.0:35909/api/projects/workbench/machinery_settings/?format=json' 3. Test Case ID: 4HsN3K - Undocumented HTTP status code Received: 201 Documented: 401, 403, 404, 405, 406, 415, 423, 429, 500, 200, 400 [201] Created: `message Services installed: ` Reproduce with: curl -X PUT -H 'Token: [Filtered]' -H 'Bearer;' -H 'Authorization: [Filtered]' -H 'Content-Type: multipart/form-data; boundary=c637e12e2b1a998d80d1b087531af51c' -H 'Cookie: [Filtered]' -d $'--c637e12e2b1a998d80d1b087531af51c--\r\n' 'http://0.0.0.0:35909/api/projects/workbench/machinery_settings/?format=csv' 4. Test Case ID: MJRyOi - Server error [500] Internal Server Error: `errors.0.attr,errors.0.code,errors.0.detail,type ,error,Server Error (500),server_error` Reproduce with: curl -X PUT -H 'Token: [Filtered]' -H 'Bearer;' -H 'Authorization: [Filtered]' -H 'Content-Type: application/json' -H 'Cookie: [Filtered]' -d '[null, null]' 'http://0.0.0.0:35909/api/projects/workbench/machinery_settings/?format=csv' 5. Test Case ID: 7YFxXb - API accepted schema-violating request Invalid data should have been rejected Expected: 400, 401, 403, 404, 405, 406, 409, 415, 422, 428, 429, 5xx Invalid component: parameter `format` in query - violates `enum` at /properties/format [201] Created: `{"message":"Services installed: "}` Reproduce with: curl -X PUT -H 'Authorization: [Filtered]' -H 'Content-Type: application/json' -d '{}' 'http://0.0.0.0:35909/api/projects/workbench/machinery_settings/?format=' PUT /api/translations/{component__project__slug}/{component__slug}/{language__code}/file/ 1. Test Case ID: GnBysD - API rejected schema-compliant request Valid data should have been accepted Expected: 2xx, 401, 403, 404, 409, 429, 5xx [400] Bad Request: `{"type":"validation_error","errors":[{"code":"invalid","detail":"The submitted data was not a file. Check the encoding type on the form.","attr":"file"}]}` Reproduce with: curl -X PUT -H 'Authorization: [Filtered]' -H 'Content-Type: multipart/form-data; boundary=03ab97bf749f074cbd3df54c7d68235f' -d $'--03ab97bf749f074cbd3df54c7d68235f\r\nContent-Disposition: form-data; name="file"\r\n\r\nhttp://localhost:35909/api/component-lists/000/\r\n--03ab97bf749f074cbd3df54c7d68235f--\r\n' http://0.0.0.0:35909/api/translations/workbench/strings/cs/file/ _____________________________ PUT /api/units/{id}/ _____________________________ 1. Test Case ID: 6WuDaI - Response violates schema {"errors":[{"attr":"target","code":"invalid","detail":"Number of plurals does not match"}],"type":"validation_error"} is not valid under any of the schemas listed in the 'oneOf' keyword Validated against the response schema for status code 400. Schema at /components/schemas/ApiUnitsUpdateErrorResponse400: { "oneOf": [ { "$ref": "#/components/schemas/ApiUnitsUpdateValidationError" }, { "$ref": "#/components/schemas/ParseErrorResponse" } ], "discriminator": { "propertyName": "type", "mapping": { "validation_error": "#/components/schemas/ApiUnitsUpdateValidatio... "client_error": "#/components/schemas/ParseErrorResponse" } } } Value: { "errors": [ { "attr": "target", "code": "invalid", "detail": "Number of plurals does not match" } ], "type": "validation_error" } - API rejected schema-compliant request Valid data should have been accepted Expected: 2xx, 401, 403, 404, 409, 429, 5xx [400] Bad Request: `{"type":"validation_error","errors":[{"code":"invalid","detail":"Number of plurals does not match","attr":"target"}]}` Reproduce with: curl -X PUT -H 'Authorization: [Filtered]' -H 'Content-Type: application/json' -d '{"labels": [], "target": []}' http://0.0.0.0:35909/api/units/1/ 2. Test Case ID: 7fvSFW - Server error [500] Internal Server Error: `{"type":"server_error","errors":[{"code":"error","detail":"Server Error (500)","attr":null}]}` Reproduce with: curl -X PUT -H 'Authorization: [Filtered]' -H 'Content-Type: application/json' -H 'Cookie: [Filtered]' -d '{"labels": [{"name": ""}], "target": []}' http://0.0.0.0:35909/api/units/1/ __________ PUT /api/users/{username}/notifications/{subscription_id}/ __________ 1. Test Case ID: WP2GG7 - Undocumented Content-Type Received: text/html; charset=utf-8 Documented: application/json, text/csv [404] Not Found: ` Page Not Found @ Weblate Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/changes/?timestamp_before=0407-10-18T14%3A00%3A54%2B03%3A12&user=%F1%AD%BF%B8%E1%8C%A3qz+×tamp_after=2026-10-07T06%3A18%3A42.587772Z&format=csv' 3. Test Case ID: jV9xqs - API accepted schema-violating request Invalid data should have been rejected Expected: 400, 401, 403, 404, 405, 406, 409, 415, 422, 428, 429, 5xx Invalid component: parameter `format` in query - violates `enum` at /properties/format [200] OK: `{"id":5,"name":"Manage glossary","permissions":["glossary.add","glossary.terminology","glossary.edit","glossary.delete","glossary.upload"],"url":"http://localhost:35909/api/roles/5/?format="}` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' http://0.0.0.0:35909/api/roles/ curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/roles/5/?format=' 4. Test Case ID: 7Q3QPi - API accepted schema-violating request Invalid data should have been rejected Expected: 400, 401, 403, 404, 405, 406, 409, 415, 422, 428, 429, 5xx Invalid component: parameter `format` in query - violates `enum` at /properties/format [200] OK: `{"name":"\u0010ý\u0001[õ\\ª\u001a","slug":"A","id":11,"show_dashboard":false,"components":[],"auto_assign":[],"url":"http://localhost:35909/api/component-lists/A/?format="}` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' http://0.0.0.0:35909/api/component-lists/ curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/component-lists/A/?format=' 5. Test Case ID: zUnkEa - API rejected schema-compliant request Valid data should have been accepted Expected: 2xx, 401, 403, 404, 409, 429, 5xx [400] Bad Request: `errors.0.attr,errors.0.code,errors.0.detail,type user,null_characters_not_allowed,Null characters are not allowed.,validation_error` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/changes/?action=59&action=61&action=36&action=27&action=8&action=73&format=csv&page_size=-405411×tamp_after=0245-08-17T15%3A16%3A56.090Z&page=-5286&user=%F2%8B%9F%88%C3%BC%E7%86%91u%3F%00%C2%9B%C2%9E%C3%84%23%C3%BC6%C2%93×tamp_before=0079-01-23T20%3A22%3A01.9-12%3A59' 6. Test Case ID: 6GqBGt - API accepted schema-violating request Invalid data should have been rejected Expected: 400, 401, 403, 404, 405, 406, 409, 415, 422, 428, 429, 5xx Invalid component: parameter `format` in query - violates `enum` at /properties/format [200] OK: `{"name":"Workbench","slug":"glossary","id":2,"source_language":{"id":179,"code":"en","name":"English","plural":{"id":179,"source":0,"number":2,"formula":"n != 1","type":1},"aliases":["base","en_en","en_us","eng","enp","source"],"direction":"ltr","population":1037673,"web_url":"http://localhost:35909/languages/en/","url":"http://localhost:35909/api/languages/en/?format=","statistics_url":"http://localhost:35909/api/languages/en/statistics/?format="},"project":{"name":"Workbench","slug":"workbench","id":1,"we // Output truncated...` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' http://0.0.0.0:35909/api/components/ curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/components/workbench/glossary/?format=' 7. Test Case ID: x7fOxh - Response violates schema null is not of type "string" Validated against the response schema for status code 201. Schema at /properties/category: { "type": "string", "format": "uri" } Value: null [201] Created: `{"id":1,"name":"¤°û","slug":"0LX","project":"http://localhost:35909/api/projects/CoGwjNOle5L/","category":null,"url":"http://localhost:35909/api/categories/1/","statistics_url":"http://localhost:35909/api/categories/1/statistics/"}` Reproduce with: curl -X POST -H 'Authorization: [Filtered]' -H 'Content-Type: multipart/form-data; boundary=44d0a003b2a4905245c4043a66a8f1f4' -d $'--44d0a003b2a4905245c4043a66a8f1f4\r\nContent-Disposition: form-data; name="\xf1\xa5\xb9\x8e(\x07ç8\xf2\xa7\x91\xaa"\r\n\r\n{"n\\u009a\\u00a6)-<\\udad9\\udef0": "+0.0", "\\ud99c\\ude38": null, "\\ud8be\\udf5d\\udafc\\udcda\\u00c9\\udbc4\\udf76\\uda3e\\udf65\\u0097\\ud856\\ude31\\u00dc": 6.345784609556213e+16}\r\n--44d0a003b2a4905245c4043a66a8f1f4\r\nContent-Disposition: form-data; name=""\r\n\r\n{"w\\u00e8H\\u00c4": 3031688, "\\u00f7r$\\u00eb\\u00b6\\u00b4\\u00db": 1.6199796159855244e-294}\r\n--44d0a003b2a4905245c4043a66a8f1f4\r\nContent-Disposition: form-data; name=""\r\n\r\n{}\r\n--44d0a003b2a4905245c4043a66a8f1f4\r\nContent-Disposition: form-data; name=""\r\n\r\n[955, -4277, "M\\u00f5\\ud953\\udf0f"]\r\n--44d0a003b2a4905245c4043a66a8f1f4\r\nContent-Disposition: form-data; name="name"\r\n\r\n¤°û\r\n--44d0a003b2a4905245c4043a66a8f1f4\r\nContent-Disposition: form-data; name="project"\r\n\r\nhttp://localhost:35909/api/projects/CoGwjNOle5L/\r\n--44d0a003b2a4905245c4043a66a8f1f4\r\nContent-Disposition: form-data; name="slug"\r\n\r\n0LX\r\n--44d0a003b2a4905245c4043a66a8f1f4--\r\n' http://0.0.0.0:35909/api/categories/ 8. Test Case ID: pb5G97 - Response violates schema null is not of type "string" Validated against the response schema for status code 200. Schema at /components/schemas/Category/properties/category: { "type": "string", "format": "uri" } Value: null [200] OK: `{"count":1,"next":null,"previous":null,"results":[{"id":1,"name":"¤°û","slug":"0LX","project":"http://localhost:35909/api/projects/CoGwjNOle5L/?format=json","category":null,"url":"http://localhost:35909/api/categories/1/?format=json","statistics_url":"http://localhost:35909/api/categories/1/statistics/?format=json"}]}` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/categories/?format=json&page_size=-460' 9. Test Case ID: QVR5EQ - Undocumented Content-Type Received: application/binary Documented: application/json, text/csv [200] OK: `msgid "" msgstr "" "Content-Type: text/plain; charset=UTF-8\n" msgid "Hello" msgstr "" msgid "World" msgstr ""` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/projects/?page_size=true&format=csv' curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/components/workbench/strings/new_template/?format=json' 10. Test Case ID: FT6HtS - API rejected schema-compliant request Valid data should have been accepted Expected: 2xx, 401, 403, 404, 409, 429, 5xx [400] Bad Request: `{"type":"validation_error","errors":[{"code":"null_characters_not_allowed","detail":"Null characters are not allowed.","attr":"username"}]}` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/users/?username=6%00%C3%83&id=3&format=json&page_size=544&page=917' 11. Test Case ID: gDdpjL - API accepted schema-violating request Invalid data should have been rejected Expected: 400, 401, 403, 404, 405, 406, 409, 415, 422, 428, 429, 5xx Invalid component: in body - violates `not` at /properties/id - violates `type` at /properties/name (was string, became null) [201] Created: `{"name":"null","slug":"ve","id":86,"show_dashboard":false,"components":[],"auto_assign":[],"url":"http://localhost:35909/api/component-lists/ve/"}` Reproduce with: curl -X POST -H 'Authorization: [Filtered]' -H 'Token: [Filtered]' -H 'Content-Type: multipart/form-data; boundary=b1e97767fd570f94e999f3bcd519513a' -d $'--b1e97767fd570f94e999f3bcd519513a\r\nContent-Disposition: form-data; name="slug"\r\n\r\nve\r\n--b1e97767fd570f94e999f3bcd519513a\r\nContent-Disposition: form-data; name="id"\r\n\r\n{"": {"\\u0094d": null}, "\\u00de\\udad8\\udfb3\\u00f1\\u00bcT\\u0096k\\u00d9\\u001e\\uda92\\udc43\\uecf8\\uf5a7\\u00b5\\u009a": [], "\\udbf3\\udf05\\u864cC\\u00ae\\udbe9\\ude5b\\u0015\\u000e\\u00f1[\\ud9d8\\udeb7\\u009cbX\\u009b\\u00be": []}\r\n--b1e97767fd570f94e999f3bcd519513a\r\nContent-Disposition: form-data; name="name"\r\n\r\nnull\r\n--b1e97767fd570f94e999f3bcd519513a--\r\n' http://0.0.0.0:35909/api/component-lists/ 12. Test Case ID: BvNO5k - API accepted schema-violating request Invalid data should have been rejected Expected: 400, 401, 403, 404, 405, 406, 409, 415, 422, 428, 429, 5xx Invalid component: parameter `format` in query - violates `enum` at /properties/format [201] Created: `{"name":"\u0018Pt¼T\u0017Ýæ\u001b","slug":"BML75G","id":28,"web":"https://mbttvnf8.9.org","web_url":"http://localhost:35909/projects/BML75G/","url":"http://localhost:35909/api/projects/BML75G/?format=","check_flags":"","components_list_url":"http://localhost:35909/api/projects/BML75G/components/?format=","repository_url":"http://localhost:35909/api/projects/BML75G/repository/?format=","statistics_url":"http://localhost:35909/api/projects/BML75G/statistics/?format=","categories_url":"http://localhost:35909/a // Output truncated...` Reproduce with: curl -X POST -H 'Authorization: [Filtered]' -H 'Content-Type: application/x-www-form-urlencoded' -H 'Cookie: [Filtered]' -d '%3A%C2%9E%1B%F1%82%81%9A=%F0%92%B9%9EQ%C2%97&%3A%C2%9E%1B%F1%82%81%9A=C%2F8%C2%80%1E%F2%8F%A7%BCh%04p%F3%99%83%A1%C2%8E%C2%90%3B%C3%A2%C3%ACF%C2%9A%1E8%C2%B1%C2%8C&%3A%C2%9E%1B%F1%82%81%9A=%F0%91%97%B8b%C3%98%01%C3%B6%7C&%C3%B6%0C%C2%A9%EE%B0%ABD=null&%F3%8E%B6%95%F1%A8%82%A7%C2%BFL2Y%F2%B4%92%BB=-69392&%F3%8E%B6%95%F1%A8%82%A7%C2%BFL2Y%F2%B4%92%BB=null&web=https%3A%2F%2Fmbttvnf8.9.org&slug=BML75G&name=%18Pt%C2%BCT%17%C3%9D%C3%A6%1B' 'http://0.0.0.0:35909/api/projects/?format=' 13. Test Case ID: HQGT4b - Server error [500] Internal Server Error: `errors.0.attr,errors.0.code,errors.0.detail,type ,error,Server Error (500),server_error` Reproduce with: curl -X POST -H 'Authorization: [Filtered]' -H 'Cookie: [Filtered]' -H 'Content-Type: multipart/form-data; boundary=cbce2d4494ebb42da967224522b84af3' -d $'--cbce2d4494ebb42da967224522b84af3\r\nContent-Disposition: form-data; name=""\r\n\r\n-4.311693542107177e+24\r\n--cbce2d4494ebb42da967224522b84af3\r\nContent-Disposition: form-data; name="ZÇÀ\xc2\x8fçWL¤Ëq\xf1\x91\x8e\x84\xc2\x8c´ùµ\xc2\x81\xc2\x9ev$"\r\n\r\n{}\r\n--cbce2d4494ebb42da967224522b84af3\r\nContent-Disposition: form-data; name="\x04y"\r\n\r\n{"\\u00cdj\\u00f9Q": {"\\ud84d\\ude79D\\uda86\\ude67g\\u00ec": null, "\'\\u0081\\ud877\\uddef\\ud8ac\\udcff\\udac3\\udcf7\\u00ec\\udbcd\\uddcd\\u00a3\\u00a8\\u00dd\\u00e7": true, "\\u00ef\\u00df\\u00a5\\u1f9f\\u00a1\\u627a\\u00dc\\u00e3\\u00da\\ud969\\ude8d\\u00fb": 1.1779786993859634e-78}}\r\n--cbce2d4494ebb42da967224522b84af3\r\nContent-Disposition: form-data; name="(╯°□°)╯︵ ┻━┻)"\r\n\r\n{}\r\n--cbce2d4494ebb42da967224522b84af3\r\nContent-Disposition: form-data; name="permissions"\r\n\r\n¯»\x00x𦇫\xf2\x89\x80\x9f¼\x12\xf2\xba\xbf\x9f\x06½\xc2\x8e\xf3\x8b\xa3\x88𱁌Èì\xf3\xbd\xa0\xa7Ò\x07Dk\r\n--cbce2d4494ebb42da967224522b84af3\r\nContent-Disposition: form-data; name="permissions"\r\n\r\n:\x12\xc2\x9c\xf2\x84\xb9\x9bË\xf3\x8c\xa7\x8f\r\n--cbce2d4494ebb42da967224522b84af3\r\nContent-Disposition: form-data; name="name"\r\n\r\ný\xc2\x88\r\n--cbce2d4494ebb42da967224522b84af3--\r\n' 'http://0.0.0.0:35909/api/roles/?format=csv' 14. Test Case ID: NPfhnh - API accepted schema-violating request Invalid data should have been rejected Expected: 400, 401, 403, 404, 405, 406, 409, 415, 422, 428, 429, 5xx Invalid component: parameter `format` in query - violates `enum` at /properties/format [204] No Content: Reproduce with: curl -X GET -H 'Authorization: [Filtered]' http://0.0.0.0:35909/api/languages/ curl -X DELETE -H 'Authorization: [Filtered]' -H 'Cookie: [Filtered]' 'http://0.0.0.0:35909/api/languages/ar_MA/?format=' 15. Test Case ID: g72ZQ3 - API accepted schema-violating request Invalid data should have been rejected Expected: 400, 401, 403, 404, 405, 406, 409, 415, 422, 428, 429, 5xx Invalid component: parameter `format` in query - violates `enum` at /properties/format [200] OK: `{"result":true}` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' http://0.0.0.0:35909/api/projects/ curl -X POST -H 'Authorization: [Filtered]' -H 'Content-Type: application/x-www-form-urlencoded' -d operation=pull-merge-noff 'http://0.0.0.0:35909/api/projects/zh/repository/?format=' 16. Test Case ID: SDeq2i - API accepted schema-violating request Invalid data should have been rejected Expected: 400, 401, 403, 404, 405, 406, 409, 415, 422, 428, 429, 5xx Invalid component: parameter `format` in query - violates `enum` at /properties/format [204] No Content: Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/memory/?page_size=4109097' curl -X DELETE -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/memory/3/?format=' 17. Test Case ID: AQQaPJ - JSON deserialization error Response must be valid JSON with 'Content-Type: application/json' header: Expecting value: line 1 column 1 (char 0) - Missing Content-Type header The following media types are documented in the schema: - `application/json` - `text/csv` [200] OK: Reproduce with: curl -X GET -H 'Authorization: [Filtered]' http://0.0.0.0:35909/api/projects/ curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/projects/fZ/languages/?format=csv' 18. Test Case ID: 7t2bgg - Response violates schema null is not of type "string" Validated against the response schema for status code 200. Schema at /properties/category: { "type": "string", "format": "uri" } Value: null [200] OK: `{"id":2,"name":"[񂎹","slug":"mA00OtV7i","project":"http://localhost:35909/api/projects/CoGwjNOle5L/?format=json","category":null,"url":"http://localhost:35909/api/categories/2/?format=json","statistics_url":"http://localhost:35909/api/categories/2/statistics/?format=json"}` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' http://0.0.0.0:35909/api/categories/ curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/categories/2/?format=json' 19. Test Case ID: GfN4U7 - Response violates schema null is not of type "string" Validated against the response schema for status code 200. Schema at /properties/category: { "type": "string", "format": "uri" } Value: null [200] OK: `{"id":2,"name":"[񂎹","slug":"mA00OtV7i","project":"http://localhost:35909/api/projects/CoGwjNOle5L/?format=json","category":null,"url":"http://localhost:35909/api/categories/2/?format=json","statistics_url":"http://localhost:35909/api/categories/2/statistics/?format=json"}` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/categories/?page_size=16777215' curl -X PATCH -H 'Authorization: [Filtered]' -H 'Token: [Filtered]' -H 'Bearer: 3bKT' 'http://0.0.0.0:35909/api/categories/2/?format=json' 20. Test Case ID: awSeL3 - API accepted schema-violating request Invalid data should have been rejected Expected: 400, 401, 403, 404, 405, 406, 409, 415, 422, 428, 429, 5xx Invalid component: parameter `format` in query - violates `enum` at /properties/format [204] No Content: Reproduce with: curl -X GET -H 'Authorization: [Filtered]' http://0.0.0.0:35909/api/component-lists/ curl -X DELETE -H 'Authorization: [Filtered]' -H 'Cookie: [Filtered]' 'http://0.0.0.0:35909/api/component-lists/G5v/?format=' 21. Test Case ID: HGbE5X - Server error [500] Internal Server Error: `{"type":"server_error","errors":[{"code":"error","detail":"Server Error (500)","attr":null}]}` Reproduce with: curl -X POST -H 'Authorization: [Filtered]' -H 'Token: [Filtered]' -H 'Content-Type: application/json' -d '{"\udacf\uddbd": [2.990950446524237e+16, 5333501883097153.0, []], "population": 75, "code": "03", "direction": "ltr", "plural": {"\u0089\u00e1\u0012": {"Ap\udb44\udd8d\u008d\u00fe\u00fc\u000f": ["\u00c4?\udb96\udc31<\u00bd\ud911\udc01\u000e\u00b8_\u00fa\ud97f\ude36\udbba\udfdf\u00ef\u00c6\u00fd", 4922916745274454.0, 40389575740426]}, "\uda6c\ude04\ud86a\ude78\u0098\u00dc'"'"'\u00c4r": [], "\ud9cd\udccc\u007fN6j\u00a7f\u00e5\u009b\udb98\udffd\r\ud92f\ude85\u00b5\u00c9\u007f\u00e8": false, "U": -1459145633944658, "source": 3}}' http://0.0.0.0:35909/api/languages/ 22. Test Case ID: g6CLua - Server error [500] Internal Server Error: `{"type":"server_error","errors":[{"code":"error","detail":"Server Error (500)","attr":null}]}` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/languages/?page_size=14678' 23. Test Case ID: lYfCsz - Response violates schema (2 violations) null is not of type "string" Validated against the response schema for status code 200. Schema at /components/schemas/Component/properties/license_url: { "type": "string", "readOnly": true } Value: null null is not of type "string" Validated against the response schema for status code 200. Schema at /components/schemas/Component/properties/linked_component: { "type": "string", "format": "uri", "readOnly": true } Value: null [200] OK: `{"name":"Strings","slug":"strings","id":1,"source_language":{"id":179,"code":"en","name":"򦷚","plural":{"id":179,"source":0,"number":2,"formula":"n != 1","type":1},"aliases":["base","en_en","en_us","eng","enp","source"],"direction":"ltr","population":568030536,"web_url":"http://localhost:35909/languages/en/","url":"http://localhost:35909/api/languages/en/","statistics_url":"http://localhost:35909/api/languages/en/statistics/"},"project":{"name":"Workbench","slug":"workbench","id":1,"web":"https://0.com","web // Output truncated...` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' http://0.0.0.0:35909/api/components/ curl -X PUT -H 'Authorization: [Filtered]' -H 'Content-Type: application/json' -d '{"file_format": "csv", "repo": "local:", "language_regex": "^[^.]+$", "slug": "strings", "allow_translation_propagation": true, "name": "Strings", "addon_message": "Update translation files\n\nUpdated by \"{{ addon_name }}\" add-on in Weblate.\n\nTranslation: {{ project_name }}/{{ component_name }}\nTranslate-URL: {{ url }}", "priority": 100, "filemask": "po/*.po", "id": 1, "project": {"name": "Workbench", "slug": "workbench", "id": 1, "web": "https://0.com", "web_url": "http://localhost:35909/projects/workbench/", "url": "http://localhost:35909/api/projects/workbench/", "check_flags": "", "components_list_url": "http://localhost:35909/api/projects/workbench/components/", "repository_url": "http://localhost:35909/api/projects/workbench/repository/", "statistics_url": "http://localhost:35909/api/projects/workbench/statistics/", "categories_url": "http://localhost:35909/api/projects/workbench/categories/", "changes_list_url": "http://localhost:35909/api/projects/workbench/changes/", "languages_url": "http://localhost:35909/api/projects/workbench/languages/", "labels_url": "http://localhost:35909/api/projects/workbench/labels/", "credits_url": "http://localhost:35909/api/projects/workbench/credits/", "lock_url": "http://localhost:35909/api/projects/workbench/lock/", "translation_review": false, "source_review": false, "commit_policy": 0, "set_language_team": false, "instructions": "", "enable_hooks": false, "language_aliases": "", "secondary_language": null, "enforced_2fa": true, "machinery_settings": "http://localhost:35909/api/projects/workbench/machinery_settings/", "locked": false}, "license_url": null, "web_url": "http://localhost:35909/projects/workbench/glossary/", "url": "http://localhost:35909/api/components/workbench/strings/", "repository_url": "http://localhost:35909/api/components/workbench/strings/repository/", "translations_url": "http://localhost:35909/api/components/workbench/glossary/translations/", "statistics_url": "http://localhost:35909/api/components/workbench/glossary/statistics/", "lock_url": "http://localhost:35909/api/components/workbench/strings/lock/", "task_url": null, "addons": [], "linked_component": null, "locked": false}' http://0.0.0.0:35909/api/components/workbench/strings/ 24. Test Case ID: iMQMdR - Response violates schema "id" is a required property Validated against the response schema for status code 200. Schema: { "required": [ "id", "name", "project", "slug", "statistics_url", "url" ], "type": "object", "properties": { "id": { "type": "integer", "readOnly": true }, "name": { "type": "string", "title": "Category name", "description": "Display name", // Output truncated... } Value: { "approved": 0, "approved_chars": 0, "approved_chars_percent": 100.0, "approved_percent": 100.0, "approved_words": 0, "approved_words_percent": 100.0, "comments": 0, "failing": 0, "failing_percent": 0.0, "fuzzy": 0, "fuzzy_chars": 0, "fuzzy_chars_percent": 0.0, "fuzzy_percent": 0.0, "fuzzy_words": 0, "fuzzy_words_percent": 0.0, "last_change": null, "name": "\u009cxCD", "readonly": 0, // Output truncated... } [200] OK: `{"total":0,"total_words":0,"total_chars":0,"last_change":null,"recent_changes":0,"translated":0,"translated_words":0,"translated_percent":0.0,"translated_words_percent":0.0,"translated_chars":0,"translated_chars_percent":0.0,"fuzzy":0,"fuzzy_percent":0.0,"fuzzy_words":0,"fuzzy_words_percent":0.0,"fuzzy_chars":0,"fuzzy_chars_percent":0.0,"failing":0,"failing_percent":0.0,"approved":0,"approved_percent":100.0,"approved_words":0,"approved_words_percent":100.0,"approved_chars":0,"approved_chars_percent":100.0," // Output truncated...` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/categories/?page_size=921172' curl -X GET -H 'Authorization: [Filtered]' http://0.0.0.0:35909/api/categories/4/statistics/ 25. Test Case ID: VNmUOL - JSON deserialization error Response must be valid JSON with 'Content-Type: application/json' header: Expecting value: line 1 column 1 (char 0) - Missing Content-Type header The following media types are documented in the schema: - `application/json` - `text/csv` [200] OK: Reproduce with: curl -X GET -H 'Authorization: [Filtered]' http://0.0.0.0:35909/api/units/ curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/units/1/translations/?format=csv' 26. Test Case ID: fMFPts - API rejected schema-compliant request Valid data should have been accepted Expected: 2xx, 401, 403, 404, 409, 429, 5xx [400] Bad Request: `errors.0.attr,errors.0.code,errors.0.detail,type source,blank,This field may not be blank.,validation_error` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/memory/?page_size=-46986' curl -X PUT -H 'Authorization: [Filtered]' -H 'Content-Type: multipart/form-data; boundary=d6a8de416754d85d0db821ace7ece3c2' -d $'--d6a8de416754d85d0db821ace7ece3c2\r\nContent-Disposition: form-data; name="target"\r\n\r\n\xf2\xbd\xa8\xbbT Reproduce with: curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/categories/?format=&page=&page_size=false' curl -X DELETE -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/categories/7/?format=' 28. Test Case ID: b1VtBd - API accepted schema-violating request Invalid data should have been rejected Expected: 400, 401, 403, 404, 405, 406, 409, 415, 422, 428, 429, 5xx Invalid component: parameter `format` in query - violates `enum` at /properties/format [200] OK: `{"id":8,"name":"𿇴ó, qÔ𢷍€Šb\\","slug":"kMl7b-mXpXgDk","project":"http://localhost:35909/api/projects/K/?format=","category":null,"url":"http://localhost:35909/api/categories/8/?format=","statistics_url":"http://localhost:35909/api/categories/8/statistics/?format="}` Reproduce with: curl -X GET -H 'Authorization: [Filtered]' http://0.0.0.0:35909/api/categories/ curl -X GET -H 'Authorization: [Filtered]' 'http://0.0.0.0:35909/api/categories/8/?format=' =================================== WARNINGS =================================== Authentication failed: 3 operations returned authentication errors 403 Forbidden (3 operations): - POST /api/translations/{component__project__slug}/{component__slug}/{language__code}/autotranslate/ - POST /api/translations/{component__project__slug}/{component__slug}/{language__code}/units/ - PUT /api/translations/{component__project__slug}/{component__slug}/{language__code}/file/ 💡 Ensure valid authentication credentials are set via --auth or -H Missing test data: 42 operations repeatedly returned 404 Not Found, preventing tests from reaching your API's core logic - DELETE /api/addons/{id}/ - DELETE /api/component-lists/{slug}/components/{component_slug}/ - DELETE /api/components/{project__slug}/{slug}/links/{project_slug}/ - DELETE /api/groups/{id}/componentlists/{component_list_id}/ - DELETE /api/groups/{id}/components/{component_id}/ - DELETE /api/groups/{id}/projects/{project_id}/ - DELETE /api/screenshots/{id}/ - DELETE /api/screenshots/{id}/units/{unit_id}/ - DELETE /api/units/{id}/ - GET /api/addons/{id}/ - GET /api/components/{project__slug}/{slug}/credits/ - GET /api/components/{project__slug}/{slug}/monolingual_base/ - GET /api/memory/{id}/ - GET /api/screenshots/{id}/ - GET /api/screenshots/{id}/file/ - PATCH /api/addons/{id}/ - PATCH /api/categories/{id}/ - PATCH /api/screenshots/{id}/ - POST /api/component-lists/{slug}/components/ - POST /api/components/{project__slug}/{slug}/addons/ - POST /api/components/{project__slug}/{slug}/links/ - POST /api/components/{project__slug}/{slug}/repository/ - POST /api/components/{project__slug}/{slug}/translations/ - POST /api/groups/{id}/admins/ - POST /api/groups/{id}/componentlists/ - POST /api/groups/{id}/components/ - POST /api/groups/{id}/languages/ - POST /api/groups/{id}/projects/ - POST /api/groups/{id}/roles/ - POST /api/screenshots/{id}/file/ - POST /api/screenshots/{id}/units/ - POST /api/translations/{component__project__slug}/{component__slug}/{language__code}/autotranslate/ - POST /api/translations/{component__project__slug}/{component__slug}/{language__code}/file/ - POST /api/translations/{component__project__slug}/{component__slug}/{language__code}/units/ - POST /api/users/{username}/groups/ - PUT /api/addons/{id}/ - PUT /api/categories/{id}/ - PUT /api/screenshots/{id}/ - PUT /api/screenshots/{id}/file/ - PUT /api/translations/{component__project__slug}/{component__slug}/{language__code}/file/ - PUT /api/units/{id}/ - PUT /api/users/{username}/notifications/{subscription_id}/ 💡 Check the operations that create this data - their responses do not yield usable identifiers Schema validation skipped: 145 operations cannot validate responses in 2 media types due to missing deserializers application/openmetrics-text (1 operation): - GET /api/metrics/ (200, 400, 401, 405, 406, 415, 423, 429, 500) text/csv (145 operations): - DELETE /api/addons/{id}/ (400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - DELETE /api/categories/{id}/ (400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - DELETE /api/component-lists/{slug}/ (400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - DELETE /api/component-lists/{slug}/components/{component_slug}/ (400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - DELETE /api/components/{project__slug}/{slug}/links/{project_slug}/ (400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - DELETE /api/groups/{id}/componentlists/{component_list_id}/ (400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - DELETE /api/groups/{id}/components/{component_id}/ (400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - DELETE /api/groups/{id}/languages/{language_code}/ (400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - DELETE /api/groups/{id}/projects/{project_id}/ (400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - DELETE /api/languages/{code}/ (400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - DELETE /api/memory/{id}/ (400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - DELETE /api/projects/{slug}/labels/{label_id}/ (400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - DELETE /api/screenshots/{id}/ (400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - DELETE /api/screenshots/{id}/units/{unit_id}/ (400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - DELETE /api/tasks/{id}/ (400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - DELETE /api/units/{id}/ (400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - DELETE /api/users/{username}/notifications/{subscription_id}/ (400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - GET /api/addons/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - GET /api/addons/{id}/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - GET /api/categories/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - GET /api/categories/{id}/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - GET /api/categories/{id}/statistics/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - GET /api/changes/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - GET /api/changes/{id}/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - GET /api/component-lists/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - GET /api/component-lists/{slug}/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - GET /api/component-lists/{slug}/components/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - GET /api/components/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - GET /api/components/{project__slug}/{slug}/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - GET /api/components/{project__slug}/{slug}/changes/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - GET /api/components/{project__slug}/{slug}/credits/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - GET /api/components/{project__slug}/{slug}/file/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - GET /api/components/{project__slug}/{slug}/links/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - GET /api/components/{project__slug}/{slug}/lock/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - GET /api/components/{project__slug}/{slug}/monolingual_base/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - GET /api/components/{project__slug}/{slug}/new_template/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - GET /api/components/{project__slug}/{slug}/repository/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - GET /api/components/{project__slug}/{slug}/screenshots/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - GET /api/components/{project__slug}/{slug}/statistics/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - GET /api/components/{project__slug}/{slug}/translations/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - GET /api/groups/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - GET /api/groups/{id}/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - GET /api/languages/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - GET /api/languages/{code}/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - GET /api/languages/{code}/statistics/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - GET /api/memory/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - GET /api/memory/{id}/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - GET /api/metrics/ (200, 400, 401, 405, 406, 415, 423, 429, 500) - GET /api/projects/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - GET /api/projects/{slug}/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - GET /api/projects/{slug}/categories/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - GET /api/projects/{slug}/changes/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - GET /api/projects/{slug}/components/ (200, 400, 401, 403, 404, 405, 406, 423, 429, 500) - GET /api/projects/{slug}/credits/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - GET /api/projects/{slug}/file/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - GET /api/projects/{slug}/labels/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - GET /api/projects/{slug}/languages/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - GET /api/projects/{slug}/lock/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - GET /api/projects/{slug}/machinery_settings/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - GET /api/projects/{slug}/repository/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - GET /api/projects/{slug}/statistics/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - GET /api/roles/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - GET /api/roles/{id}/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - GET /api/screenshots/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - GET /api/screenshots/{id}/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - GET /api/screenshots/{id}/file/ (200, 400, 401, 403, 404, 405, 406, 423, 429, 500) - GET /api/search/ (400, 401, 403, 405, 406, 415, 423, 429, 500) - GET /api/tasks/{id}/ (400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - GET /api/translations/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - GET /api/translations/{component__project__slug}/{component__slug}/{language__code}/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - GET /api/translations/{component__project__slug}/{component__slug}/{language__code}/changes/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - GET /api/translations/{component__project__slug}/{component__slug}/{language__code}/file/ (200, 400, 401, 403, 404, 405, 406, 423, 429, 500) - GET /api/translations/{component__project__slug}/{component__slug}/{language__code}/repository/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - GET /api/translations/{component__project__slug}/{component__slug}/{language__code}/statistics/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - GET /api/translations/{component__project__slug}/{component__slug}/{language__code}/units/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - GET /api/units/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - GET /api/units/{id}/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - GET /api/units/{id}/translations/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - GET /api/users/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - GET /api/users/{username}/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - GET /api/users/{username}/contributions/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - GET /api/users/{username}/notifications/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - GET /api/users/{username}/notifications/{subscription_id}/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - GET /api/users/{username}/statistics/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - PATCH /api/addons/{id}/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - PATCH /api/categories/{id}/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - PATCH /api/component-lists/{slug}/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - PATCH /api/components/{project__slug}/{slug}/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - PATCH /api/languages/{code}/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - PATCH /api/memory/{id}/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - PATCH /api/projects/{slug}/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - PATCH /api/projects/{slug}/machinery_settings/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - PATCH /api/screenshots/{id}/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - PATCH /api/units/{id}/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - PATCH /api/users/{username}/notifications/{subscription_id}/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - POST /api/categories/ (201, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - POST /api/component-lists/ (201, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - POST /api/component-lists/{slug}/components/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - POST /api/components/{project__slug}/{slug}/addons/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - POST /api/components/{project__slug}/{slug}/links/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - POST /api/components/{project__slug}/{slug}/lock/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - POST /api/components/{project__slug}/{slug}/repository/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - POST /api/components/{project__slug}/{slug}/translations/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - POST /api/groups/ (201, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - POST /api/groups/{id}/admins/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - POST /api/groups/{id}/componentlists/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - POST /api/groups/{id}/components/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - POST /api/groups/{id}/languages/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - POST /api/groups/{id}/projects/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - POST /api/groups/{id}/roles/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - POST /api/languages/ (201, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - POST /api/memory/ (201, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - POST /api/projects/ (201, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - POST /api/projects/{slug}/addons/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - POST /api/projects/{slug}/components/ (200, 400, 401, 403, 404, 405, 406, 423, 429, 500) - POST /api/projects/{slug}/labels/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - POST /api/projects/{slug}/lock/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - POST /api/projects/{slug}/machinery_settings/ (201, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - POST /api/projects/{slug}/repository/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - POST /api/roles/ (201, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - POST /api/screenshots/ (201, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - POST /api/screenshots/{id}/file/ (200, 400, 401, 403, 404, 405, 406, 423, 429, 500) - POST /api/screenshots/{id}/units/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - POST /api/translations/{component__project__slug}/{component__slug}/{language__code}/autotranslate/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - POST /api/translations/{component__project__slug}/{component__slug}/{language__code}/file/ (200, 400, 401, 403, 404, 405, 406, 423, 429, 500) - POST /api/translations/{component__project__slug}/{component__slug}/{language__code}/repository/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - POST /api/translations/{component__project__slug}/{component__slug}/{language__code}/units/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - POST /api/units/{id}/comments/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - POST /api/users/ (201, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - POST /api/users/{username}/groups/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - POST /api/users/{username}/notifications/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - POST /hooks/{service}/ (200, 400, 404, 405, 406, 415, 423, 429, 500) - PUT /api/addons/{id}/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - PUT /api/categories/{id}/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - PUT /api/component-lists/{slug}/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - PUT /api/components/{project__slug}/{slug}/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - PUT /api/languages/{code}/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - PUT /api/memory/{id}/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - PUT /api/projects/{slug}/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - PUT /api/projects/{slug}/machinery_settings/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - PUT /api/screenshots/{id}/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - PUT /api/screenshots/{id}/file/ (200, 400, 401, 403, 404, 405, 406, 423, 429, 500) - PUT /api/translations/{component__project__slug}/{component__slug}/{language__code}/file/ (200, 400, 401, 403, 404, 405, 406, 423, 429, 500) - PUT /api/units/{id}/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) - PUT /api/users/{username}/notifications/{subscription_id}/ (200, 400, 401, 403, 404, 405, 406, 415, 423, 429, 500) 💡 Register a deserializer with @schemathesis.deserializer() to enable validation =================================== SUMMARY ==================================== API Operations: Selected: 145/160 Tested: 145 Test Phases: ❌ Examples ❌ Coverage ❌ Fuzzing ❌ Stateful Failures: ❌ Server error: 17 ❌ Response violates schema: 137 ❌ API accepted schema-violating request: 78 ❌ API rejected schema-compliant request: 49 ❌ JSON deserialization error: 19 ❌ Missing Content-Type header: 19 ❌ Undocumented Content-Type: 15 ❌ Undocumented HTTP status code: 5 Warnings: ⚠️ Missing authentication: 3 operations returned only 401/403 responses ⚠️ Missing valid test data: 42 operations repeatedly returned 404 responses ⚠️ Schema validation skipped: 145 operations cannot validate responses in 2 media types Test cases: 167518 generated, 245 found 339 unique failures, 419 errored Seed: 320131318801004135693278544437888000290 ===================== 339 failures, 3 warnings in 3600.14s =====================