{"action":"created","comment":{"url":"https://api.github.com/repos/IATI/IATI-Schemas/pulls/comments/150814536","pull_request_review_id":76415071,"id":150814536,"diff_hunk":"@@ -40,15 +38,51 @@ iati-registry-record-schema.xsd An application-specific extension\n tests/                          Unit tests for the schemas.\n =============================== ========================================\n \n-The tests include a series of short XML documents that should pass or\n-file when parsed against the schemas in this distribution.  The shell\n-scripts for running the tests rely on a Unix environment with the bash\n-shell and the xmllint utility, but the test documents will work with\n-any schema-aware XML parser. We will add unit tests as schema\n-development continues.\n+Dev Installation\n+----------------\n+\n+.. code-block:: bash\n+\n+  # Create and start a virtual environment\n+  $ python3 -m venv pyenv\n+  $ source pyenv/bin/activate\n+\n+  # Install Python package dependencies\n+  $ pip install -r requirements-dev.txt\n+\n+\n+Tests\n+-----\n+\n+There are two types of tests:\n+\n+Legacy tests\n+~~~~~~~~~~~~\n+\n+A series of short XML documents are included in the ``tests/../should-pass``  and ``tests/../should-fail`` directories (and sub-directories). These files test elements and attributes added pre-version 2.03 and offer a simple pass/fail check when parsed against the schemas in this distribution.\n+\n+These tests can be run using:\n+\n+.. code-block:: bash\n+\n+   $ xmllint --schema http://www.w3.org/2001/XMLSchema.xsd --noout *.xsd\n+   $ ./tests/run-tests.sh\n+\n+Tests for elements/attributes added in v2.03\n+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n+\n+A new test structure was added at version 2.03, with additional test cases added to ``tests/should-pass`` and ``tests/should-fail`` directories (and sub-directories).","path":"README.rst","position":54,"original_position":54,"commit_id":"d0782e3d5289117f4a6e52881bb3d9bfb3b62766","original_commit_id":"d0782e3d5289117f4a6e52881bb3d9bfb3b62766","user":{"login":"hayfield","id":720905,"avatar_url":"https://avatars3.githubusercontent.com/u/720905?v=4","gravatar_id":"","url":"https://api.github.com/users/hayfield","html_url":"https://github.com/hayfield","followers_url":"https://api.github.com/users/hayfield/followers","following_url":"https://api.github.com/users/hayfield/following{/other_user}","gists_url":"https://api.github.com/users/hayfield/gists{/gist_id}","starred_url":"https://api.github.com/users/hayfield/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hayfield/subscriptions","organizations_url":"https://api.github.com/users/hayfield/orgs","repos_url":"https://api.github.com/users/hayfield/repos","events_url":"https://api.github.com/users/hayfield/events{/privacy}","received_events_url":"https://api.github.com/users/hayfield/received_events","type":"User","site_admin":false},"body":"The new directory structure should be described in more detail so that it's clear how to use it.","created_at":"2017-11-14T12:06:27Z","updated_at":"2017-11-14T12:07:34Z","html_url":"https://github.com/IATI/IATI-Schemas/pull/367#discussion_r150814536","pull_request_url":"https://api.github.com/repos/IATI/IATI-Schemas/pulls/367","author_association":"OWNER","_links":{"self":{"href":"https://api.github.com/repos/IATI/IATI-Schemas/pulls/comments/150814536"},"html":{"href":"https://github.com/IATI/IATI-Schemas/pull/367#discussion_r150814536"},"pull_request":{"href":"https://api.github.com/repos/IATI/IATI-Schemas/pulls/367"}}},"pull_request":{"url":"https://api.github.com/repos/IATI/IATI-Schemas/pulls/367","id":151615173,"html_url":"https://github.com/IATI/IATI-Schemas/pull/367","diff_url":"https://github.com/IATI/IATI-Schemas/pull/367.diff","patch_url":"https://github.com/IATI/IATI-Schemas/pull/367.patch","issue_url":"https://api.github.com/repos/IATI/IATI-Schemas/issues/367","number":367,"state":"open","locked":false,"title":"Add testrunner using pyiati and pytest","user":{"login":"dalepotter","id":8247168,"avatar_url":"https://avatars2.githubusercontent.com/u/8247168?v=4","gravatar_id":"","url":"https://api.github.com/users/dalepotter","html_url":"https://github.com/dalepotter","followers_url":"https://api.github.com/users/dalepotter/followers","following_url":"https://api.github.com/users/dalepotter/following{/other_user}","gists_url":"https://api.github.com/users/dalepotter/gists{/gist_id}","starred_url":"https://api.github.com/users/dalepotter/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dalepotter/subscriptions","organizations_url":"https://api.github.com/users/dalepotter/orgs","repos_url":"https://api.github.com/users/dalepotter/repos","events_url":"https://api.github.com/users/dalepotter/events{/privacy}","received_events_url":"https://api.github.com/users/dalepotter/received_events","type":"User","site_admin":false},"body":"","created_at":"2017-11-09T10:35:04Z","updated_at":"2017-11-14T12:07:34Z","closed_at":null,"merged_at":null,"merge_commit_sha":"920f4e7cc610e0e49467fac5bb01cce0acbabfee","assignee":null,"assignees":[],"requested_reviewers":[],"milestone":{"url":"https://api.github.com/repos/IATI/IATI-Schemas/milestones/14","html_url":"https://github.com/IATI/IATI-Schemas/milestone/14","labels_url":"https://api.github.com/repos/IATI/IATI-Schemas/milestones/14/labels","id":2878022,"number":14,"title":"2.03 Release","description":"","creator":{"login":"hayfield","id":720905,"avatar_url":"https://avatars3.githubusercontent.com/u/720905?v=4","gravatar_id":"","url":"https://api.github.com/users/hayfield","html_url":"https://github.com/hayfield","followers_url":"https://api.github.com/users/hayfield/followers","following_url":"https://api.github.com/users/hayfield/following{/other_user}","gists_url":"https://api.github.com/users/hayfield/gists{/gist_id}","starred_url":"https://api.github.com/users/hayfield/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hayfield/subscriptions","organizations_url":"https://api.github.com/users/hayfield/orgs","repos_url":"https://api.github.com/users/hayfield/repos","events_url":"https://api.github.com/users/hayfield/events{/privacy}","received_events_url":"https://api.github.com/users/hayfield/received_events","type":"User","site_admin":false},"open_issues":27,"closed_issues":5,"state":"open","created_at":"2017-10-31T11:14:42Z","updated_at":"2017-11-09T16:01:57Z","due_on":null,"closed_at":null},"commits_url":"https://api.github.com/repos/IATI/IATI-Schemas/pulls/367/commits","review_comments_url":"https://api.github.com/repos/IATI/IATI-Schemas/pulls/367/comments","review_comment_url":"https://api.github.com/repos/IATI/IATI-Schemas/pulls/comments{/number}","comments_url":"https://api.github.com/repos/IATI/IATI-Schemas/issues/367/comments","statuses_url":"https://api.github.com/repos/IATI/IATI-Schemas/statuses/d0782e3d5289117f4a6e52881bb3d9bfb3b62766","head":{"label":"IATI:2-03-test-schemas-with-pyiati-and-pytest","ref":"2-03-test-schemas-with-pyiati-and-pytest","sha":"d0782e3d5289117f4a6e52881bb3d9bfb3b62766","user":{"login":"IATI","id":5502974,"avatar_url":"https://avatars3.githubusercontent.com/u/5502974?v=4","gravatar_id":"","url":"https://api.github.com/users/IATI","html_url":"https://github.com/IATI","followers_url":"https://api.github.com/users/IATI/followers","following_url":"https://api.github.com/users/IATI/following{/other_user}","gists_url":"https://api.github.com/users/IATI/gists{/gist_id}","starred_url":"https://api.github.com/users/IATI/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/IATI/subscriptions","organizations_url":"https://api.github.com/users/IATI/orgs","repos_url":"https://api.github.com/users/IATI/repos","events_url":"https://api.github.com/users/IATI/events{/privacy}","received_events_url":"https://api.github.com/users/IATI/received_events","type":"Organization","site_admin":false},"repo":{"id":6761984,"name":"IATI-Schemas","full_name":"IATI/IATI-Schemas","owner":{"login":"IATI","id":5502974,"avatar_url":"https://avatars3.githubusercontent.com/u/5502974?v=4","gravatar_id":"","url":"https://api.github.com/users/IATI","html_url":"https://github.com/IATI","followers_url":"https://api.github.com/users/IATI/followers","following_url":"https://api.github.com/users/IATI/following{/other_user}","gists_url":"https://api.github.com/users/IATI/gists{/gist_id}","starred_url":"https://api.github.com/users/IATI/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/IATI/subscriptions","organizations_url":"https://api.github.com/users/IATI/orgs","repos_url":"https://api.github.com/users/IATI/repos","events_url":"https://api.github.com/users/IATI/events{/privacy}","received_events_url":"https://api.github.com/users/IATI/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/IATI/IATI-Schemas","description":"Schema development for the International Aid Transparency Initiative.","fork":false,"url":"https://api.github.com/repos/IATI/IATI-Schemas","forks_url":"https://api.github.com/repos/IATI/IATI-Schemas/forks","keys_url":"https://api.github.com/repos/IATI/IATI-Schemas/keys{/key_id}","collaborators_url":"https://api.github.com/repos/IATI/IATI-Schemas/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/IATI/IATI-Schemas/teams","hooks_url":"https://api.github.com/repos/IATI/IATI-Schemas/hooks","issue_events_url":"https://api.github.com/repos/IATI/IATI-Schemas/issues/events{/number}","events_url":"https://api.github.com/repos/IATI/IATI-Schemas/events","assignees_url":"https://api.github.com/repos/IATI/IATI-Schemas/assignees{/user}","branches_url":"https://api.github.com/repos/IATI/IATI-Schemas/branches{/branch}","tags_url":"https://api.github.com/repos/IATI/IATI-Schemas/tags","blobs_url":"https://api.github.com/repos/IATI/IATI-Schemas/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/IATI/IATI-Schemas/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/IATI/IATI-Schemas/git/refs{/sha}","trees_url":"https://api.github.com/repos/IATI/IATI-Schemas/git/trees{/sha}","statuses_url":"https://api.github.com/repos/IATI/IATI-Schemas/statuses/{sha}","languages_url":"https://api.github.com/repos/IATI/IATI-Schemas/languages","stargazers_url":"https://api.github.com/repos/IATI/IATI-Schemas/stargazers","contributors_url":"https://api.github.com/repos/IATI/IATI-Schemas/contributors","subscribers_url":"https://api.github.com/repos/IATI/IATI-Schemas/subscribers","subscription_url":"https://api.github.com/repos/IATI/IATI-Schemas/subscription","commits_url":"https://api.github.com/repos/IATI/IATI-Schemas/commits{/sha}","git_commits_url":"https://api.github.com/repos/IATI/IATI-Schemas/git/commits{/sha}","comments_url":"https://api.github.com/repos/IATI/IATI-Schemas/comments{/number}","issue_comment_url":"https://api.github.com/repos/IATI/IATI-Schemas/issues/comments{/number}","contents_url":"https://api.github.com/repos/IATI/IATI-Schemas/contents/{+path}","compare_url":"https://api.github.com/repos/IATI/IATI-Schemas/compare/{base}...{head}","merges_url":"https://api.github.com/repos/IATI/IATI-Schemas/merges","archive_url":"https://api.github.com/repos/IATI/IATI-Schemas/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/IATI/IATI-Schemas/downloads","issues_url":"https://api.github.com/repos/IATI/IATI-Schemas/issues{/number}","pulls_url":"https://api.github.com/repos/IATI/IATI-Schemas/pulls{/number}","milestones_url":"https://api.github.com/repos/IATI/IATI-Schemas/milestones{/number}","notifications_url":"https://api.github.com/repos/IATI/IATI-Schemas/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/IATI/IATI-Schemas/labels{/name}","releases_url":"https://api.github.com/repos/IATI/IATI-Schemas/releases{/id}","deployments_url":"https://api.github.com/repos/IATI/IATI-Schemas/deployments","created_at":"2012-11-19T14:56:22Z","updated_at":"2017-06-19T14:51:42Z","pushed_at":"2017-11-14T12:05:27Z","git_url":"git://github.com/IATI/IATI-Schemas.git","ssh_url":"git@github.com:IATI/IATI-Schemas.git","clone_url":"https://github.com/IATI/IATI-Schemas.git","svn_url":"https://github.com/IATI/IATI-Schemas","homepage":null,"size":1444,"stargazers_count":8,"watchers_count":8,"language":"XSLT","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":4,"mirror_url":null,"archived":false,"open_issues_count":86,"forks":4,"open_issues":86,"watchers":8,"default_branch":"version-2.02"}},"base":{"label":"IATI:version-2.03dev","ref":"version-2.03dev","sha":"aec67de5005c17e6816b8e41eb83ec239b60c26b","user":{"login":"IATI","id":5502974,"avatar_url":"https://avatars3.githubusercontent.com/u/5502974?v=4","gravatar_id":"","url":"https://api.github.com/users/IATI","html_url":"https://github.com/IATI","followers_url":"https://api.github.com/users/IATI/followers","following_url":"https://api.github.com/users/IATI/following{/other_user}","gists_url":"https://api.github.com/users/IATI/gists{/gist_id}","starred_url":"https://api.github.com/users/IATI/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/IATI/subscriptions","organizations_url":"https://api.github.com/users/IATI/orgs","repos_url":"https://api.github.com/users/IATI/repos","events_url":"https://api.github.com/users/IATI/events{/privacy}","received_events_url":"https://api.github.com/users/IATI/received_events","type":"Organization","site_admin":false},"repo":{"id":6761984,"name":"IATI-Schemas","full_name":"IATI/IATI-Schemas","owner":{"login":"IATI","id":5502974,"avatar_url":"https://avatars3.githubusercontent.com/u/5502974?v=4","gravatar_id":"","url":"https://api.github.com/users/IATI","html_url":"https://github.com/IATI","followers_url":"https://api.github.com/users/IATI/followers","following_url":"https://api.github.com/users/IATI/following{/other_user}","gists_url":"https://api.github.com/users/IATI/gists{/gist_id}","starred_url":"https://api.github.com/users/IATI/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/IATI/subscriptions","organizations_url":"https://api.github.com/users/IATI/orgs","repos_url":"https://api.github.com/users/IATI/repos","events_url":"https://api.github.com/users/IATI/events{/privacy}","received_events_url":"https://api.github.com/users/IATI/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/IATI/IATI-Schemas","description":"Schema development for the International Aid Transparency Initiative.","fork":false,"url":"https://api.github.com/repos/IATI/IATI-Schemas","forks_url":"https://api.github.com/repos/IATI/IATI-Schemas/forks","keys_url":"https://api.github.com/repos/IATI/IATI-Schemas/keys{/key_id}","collaborators_url":"https://api.github.com/repos/IATI/IATI-Schemas/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/IATI/IATI-Schemas/teams","hooks_url":"https://api.github.com/repos/IATI/IATI-Schemas/hooks","issue_events_url":"https://api.github.com/repos/IATI/IATI-Schemas/issues/events{/number}","events_url":"https://api.github.com/repos/IATI/IATI-Schemas/events","assignees_url":"https://api.github.com/repos/IATI/IATI-Schemas/assignees{/user}","branches_url":"https://api.github.com/repos/IATI/IATI-Schemas/branches{/branch}","tags_url":"https://api.github.com/repos/IATI/IATI-Schemas/tags","blobs_url":"https://api.github.com/repos/IATI/IATI-Schemas/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/IATI/IATI-Schemas/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/IATI/IATI-Schemas/git/refs{/sha}","trees_url":"https://api.github.com/repos/IATI/IATI-Schemas/git/trees{/sha}","statuses_url":"https://api.github.com/repos/IATI/IATI-Schemas/statuses/{sha}","languages_url":"https://api.github.com/repos/IATI/IATI-Schemas/languages","stargazers_url":"https://api.github.com/repos/IATI/IATI-Schemas/stargazers","contributors_url":"https://api.github.com/repos/IATI/IATI-Schemas/contributors","subscribers_url":"https://api.github.com/repos/IATI/IATI-Schemas/subscribers","subscription_url":"https://api.github.com/repos/IATI/IATI-Schemas/subscription","commits_url":"https://api.github.com/repos/IATI/IATI-Schemas/commits{/sha}","git_commits_url":"https://api.github.com/repos/IATI/IATI-Schemas/git/commits{/sha}","comments_url":"https://api.github.com/repos/IATI/IATI-Schemas/comments{/number}","issue_comment_url":"https://api.github.com/repos/IATI/IATI-Schemas/issues/comments{/number}","contents_url":"https://api.github.com/repos/IATI/IATI-Schemas/contents/{+path}","compare_url":"https://api.github.com/repos/IATI/IATI-Schemas/compare/{base}...{head}","merges_url":"https://api.github.com/repos/IATI/IATI-Schemas/merges","archive_url":"https://api.github.com/repos/IATI/IATI-Schemas/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/IATI/IATI-Schemas/downloads","issues_url":"https://api.github.com/repos/IATI/IATI-Schemas/issues{/number}","pulls_url":"https://api.github.com/repos/IATI/IATI-Schemas/pulls{/number}","milestones_url":"https://api.github.com/repos/IATI/IATI-Schemas/milestones{/number}","notifications_url":"https://api.github.com/repos/IATI/IATI-Schemas/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/IATI/IATI-Schemas/labels{/name}","releases_url":"https://api.github.com/repos/IATI/IATI-Schemas/releases{/id}","deployments_url":"https://api.github.com/repos/IATI/IATI-Schemas/deployments","created_at":"2012-11-19T14:56:22Z","updated_at":"2017-06-19T14:51:42Z","pushed_at":"2017-11-14T12:05:27Z","git_url":"git://github.com/IATI/IATI-Schemas.git","ssh_url":"git@github.com:IATI/IATI-Schemas.git","clone_url":"https://github.com/IATI/IATI-Schemas.git","svn_url":"https://github.com/IATI/IATI-Schemas","homepage":null,"size":1444,"stargazers_count":8,"watchers_count":8,"language":"XSLT","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":4,"mirror_url":null,"archived":false,"open_issues_count":86,"forks":4,"open_issues":86,"watchers":8,"default_branch":"version-2.02"}},"_links":{"self":{"href":"https://api.github.com/repos/IATI/IATI-Schemas/pulls/367"},"html":{"href":"https://github.com/IATI/IATI-Schemas/pull/367"},"issue":{"href":"https://api.github.com/repos/IATI/IATI-Schemas/issues/367"},"comments":{"href":"https://api.github.com/repos/IATI/IATI-Schemas/issues/367/comments"},"review_comments":{"href":"https://api.github.com/repos/IATI/IATI-Schemas/pulls/367/comments"},"review_comment":{"href":"https://api.github.com/repos/IATI/IATI-Schemas/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/IATI/IATI-Schemas/pulls/367/commits"},"statuses":{"href":"https://api.github.com/repos/IATI/IATI-Schemas/statuses/d0782e3d5289117f4a6e52881bb3d9bfb3b62766"}},"author_association":"OWNER"}}
{"actor":{"display_login":"hayfield"}}