{"id":15012989,"url":"https://github.com/python-jsonschema/referencing-suite","last_synced_at":"2025-04-12T03:31:13.783Z","repository":{"id":65584098,"uuid":"587468916","full_name":"python-jsonschema/referencing-suite","owner":"python-jsonschema","description":"A language agnostic test suite for the referencing specifications (grown out of JSON Schema)","archived":false,"fork":false,"pushed_at":"2025-04-07T18:13:02.000Z","size":188,"stargazers_count":9,"open_issues_count":6,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-09T09:59:57.368Z","etag":null,"topics":["json","json-reference","json-schema","jsonschema","language-agnostic","test-suite","testing"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/python-jsonschema.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-01-10T20:28:53.000Z","updated_at":"2025-03-26T14:53:18.000Z","dependencies_parsed_at":"2024-01-15T19:57:55.275Z","dependency_job_id":"fcdee1e5-300f-4132-9b6f-afee7a066c8e","html_url":"https://github.com/python-jsonschema/referencing-suite","commit_stats":{"total_commits":126,"total_committers":4,"mean_commits":31.5,"dds":0.4841269841269841,"last_synced_commit":"3c8a655f7bea98d7ae2529ff37253966f4d0b3c2"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-jsonschema%2Freferencing-suite","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-jsonschema%2Freferencing-suite/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-jsonschema%2Freferencing-suite/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-jsonschema%2Freferencing-suite/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-jsonschema","download_url":"https://codeload.github.com/python-jsonschema/referencing-suite/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248512554,"owners_count":21116624,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["json","json-reference","json-schema","jsonschema","language-agnostic","test-suite","testing"],"created_at":"2024-09-24T19:43:33.984Z","updated_at":"2025-04-12T03:31:13.772Z","avatar_url":"https://github.com/python-jsonschema.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# JSON Referencing Test Suite\n\n[![DOI](https://zenodo.org/badge/587468916.svg)](https://doi.org/10.5281/zenodo.14675569)\n\nThis repository contains a set of JSON objects that implementers of JSON referencing specifications can use to test their implementations.\n\nIt is meant to be language agnostic and should require only a JSON parser.\nThe conversion of the JSON objects into tests within a specific language and test framework of choice is left to be done by the implementer.\n\nThis suite is inspired by the [official JSON Schema Test Suite](https://github.com/json-schema-org/JSON-Schema-Test-Suite), where some of its tests originated.\nIndeed JSON referencing is heavily influenced by JSON Schema, and it is only [recently](https://github.com/json-schema-org/referencing) that discussions have begun to formalize JSON referencing in a more cross-specification-amenable way.\n\n## Structure of the Suite\n\nThe `tests` directory contains a set of folders corresponding to each specification which is tested by this suite.\n\nCurrently, this covers all modern JSON Schema specifications (notably, not yet OpenAPI specifications).\nA `specifications.json` file is also included which maps each folder to a URL which identifies the specification (for JSON Schema these are known as \"dialect ID\"s).\n\nWithin each directory are tests corresponding to the particular specification.\nBelow is an example of such a test file, followed by a description of how to interpret the test.\n\n```json\n{\n  \"$schema\": \"../../test-schema.json\",\n  \"registry\": {\n    \"http://example.com/\": {\n      \"definitions\": {\n        \"foo\": {\n          \"$id\": \"#foo\",\n          \"foo\": \"bar\"\n        }\n      }\n    }\n  },\n  \"tests\": [\n    {\n      \"base_uri\": \"http://example.com/\",\n      \"ref\": \"#foo\",\n      \"target\": {\n        \"$id\": \"#foo\",\n        \"foo\": \"bar\"\n      }\n    }\n  ]\n}\n```\n\nIgnore the `$schema` property, it simply denotes that each test file satisfies a JSON Schema found at the given path.\nThe `registry` property contains a mapping between URIs and documents which are expected to be available for the duration of the tests.\nThe tests are found in the `tests` array, and each object within the array contain:\n\n  * a `ref` key which is a reference to be resolved, along with an optional base URI to use to resolve a relative reference against\n\n  * *either* of a `target` key which is the expected result of resolving the reference (taking into account the registry), *or* contain the key `error`, indicating that resolving the reference should produce some sort of error (because the reference is broken or somehow invalid)\n\n  * an optional `then` key, which itself is a further test (recursively), and which is meant to be resolved *statefully* given the result of parent tests\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpython-jsonschema%2Freferencing-suite","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpython-jsonschema%2Freferencing-suite","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpython-jsonschema%2Freferencing-suite/lists"}