{"action":"created","comment":{"url":"https://api.github.com/repos/omoskalyov/python_aqa_course/pulls/comments/220960077","pull_request_review_id":159492564,"id":220960077,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIyMDk2MDA3Nw==","diff_hunk":"@@ -12,3 +13,52 @@ Phase 4: UI Testing (Selenium)\n Phase 5: Reporting (Allure)  \n Phase 6: Re-using API calls to prepare test Data  \n \n+The project has automation tests written on Python 3:  \n+ - tests/phase1 - unit tests for testing fibonacci function  \n+ - tests/phase2 - api (REST) tests for testing Jira site  \n+ - tests/phase3 - unit tests for testing \"reruns\" library  \n+ - tests/phase4 - web (Selenium) tests for testing Jira site  \n+\n+Web tests are split across features via marks:\n+ - feature_login\n+ - feature_issue\n+\n+To run tests from the project:\n+1. Ensure:\n+    - python 3 is installed on your OS  \n+    - ensure the python executable is added to the system path  \n+    - Chrome browser is installed on your OS  \n+2. Checkout the project to file system\n+3. Open console and go to the project root dir\n+4. Install and activate python virtual environment: \n+    ``` \n+    python3 -m venv venv  # on windows the filename could be just \"python\"  \n+    . venv/bin/activate\n+    ```  \n+5. Install project dependencies:  \n+    `pip install -r requirements.txt`\n+6. Download and install Allure framework (for reporting):\n+    ```\n+    curl -o allure-2.7.0.zip -Ls https://bintray.com/qameta/generic/download_file?file_path=io%2Fqameta%2Fallure%2Fallure%2F2.7.0%2Fallure-2.7.0.zip  \n+    unzip allure-2.7.0.zip  \n+    export PATH=$PATH:$(pwd)/allure-2.7.0/bin/  \n+    echo \"export PATH=$PATH:$(pwd)/allure-2.7.0/bin/\" >> $BASH_ENV  \n+    allure --version\n+    ```  \n+7. Run the tests related to any phase:\n+   - define tests folder in the pytest.ini (e.g. \"testpaths = tests/phase4\")\n+   - run the next commands:\n+     - `chmod +x drivers/linux/chromedriver`\n+     - `pytest --reruns 2 -v -l --alluredir=test_results`  \n+     If you need to run tests in parallel on 4 threads:  \n+     - `pytest -n4 --alluredir=test_results`  \n+     If you need to run tests related to a specific feature (mark) only:  \n+      - `pytest -v -m feature_login --alluredir=test_results`\n+8. Generate Allure report via one of the next commands:  \n+ - `allure generate --clean test_results  #  the allure report will be generated to the \"allure-report\" folder`\n+ - `allure serve test_results  #  the report will be generated and automatically opened in default browser`\n+             \n+Notes:  \n+ - the project was created in PyCharm IDE.\n+      \n+           ","path":"README.md","position":65,"original_position":65,"commit_id":"159bc37686813c3e5d16bca7865686099c3f6613","original_commit_id":"159bc37686813c3e5d16bca7865686099c3f6613","user":{"login":"andynati","id":15650980,"node_id":"MDQ6VXNlcjE1NjUwOTgw","avatar_url":"https://avatars3.githubusercontent.com/u/15650980?v=4","gravatar_id":"","url":"https://api.github.com/users/andynati","html_url":"https://github.com/andynati","followers_url":"https://api.github.com/users/andynati/followers","following_url":"https://api.github.com/users/andynati/following{/other_user}","gists_url":"https://api.github.com/users/andynati/gists{/gist_id}","starred_url":"https://api.github.com/users/andynati/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/andynati/subscriptions","organizations_url":"https://api.github.com/users/andynati/orgs","repos_url":"https://api.github.com/users/andynati/repos","events_url":"https://api.github.com/users/andynati/events{/privacy}","received_events_url":"https://api.github.com/users/andynati/received_events","type":"User","site_admin":false},"body":"Great Readme, thank you! )","created_at":"2018-09-27T15:01:18Z","updated_at":"2018-09-27T15:01:18Z","html_url":"https://github.com/omoskalyov/python_aqa_course/pull/5#discussion_r220960077","pull_request_url":"https://api.github.com/repos/omoskalyov/python_aqa_course/pulls/5","author_association":"COLLABORATOR","_links":{"self":{"href":"https://api.github.com/repos/omoskalyov/python_aqa_course/pulls/comments/220960077"},"html":{"href":"https://github.com/omoskalyov/python_aqa_course/pull/5#discussion_r220960077"},"pull_request":{"href":"https://api.github.com/repos/omoskalyov/python_aqa_course/pulls/5"}}},"pull_request":{"url":"https://api.github.com/repos/omoskalyov/python_aqa_course/pulls/5","id":218376917,"node_id":"MDExOlB1bGxSZXF1ZXN0MjE4Mzc2OTE3","html_url":"https://github.com/omoskalyov/python_aqa_course/pull/5","diff_url":"https://github.com/omoskalyov/python_aqa_course/pull/5.diff","patch_url":"https://github.com/omoskalyov/python_aqa_course/pull/5.patch","issue_url":"https://api.github.com/repos/omoskalyov/python_aqa_course/issues/5","number":5,"state":"open","locked":false,"title":"Phase5","user":{"login":"omoskalyov","id":42592157,"node_id":"MDQ6VXNlcjQyNTkyMTU3","avatar_url":"https://avatars3.githubusercontent.com/u/42592157?v=4","gravatar_id":"","url":"https://api.github.com/users/omoskalyov","html_url":"https://github.com/omoskalyov","followers_url":"https://api.github.com/users/omoskalyov/followers","following_url":"https://api.github.com/users/omoskalyov/following{/other_user}","gists_url":"https://api.github.com/users/omoskalyov/gists{/gist_id}","starred_url":"https://api.github.com/users/omoskalyov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/omoskalyov/subscriptions","organizations_url":"https://api.github.com/users/omoskalyov/orgs","repos_url":"https://api.github.com/users/omoskalyov/repos","events_url":"https://api.github.com/users/omoskalyov/events{/privacy}","received_events_url":"https://api.github.com/users/omoskalyov/received_events","type":"User","site_admin":false},"body":"Adding phase5 task implementation to master.","created_at":"2018-09-26T16:17:57Z","updated_at":"2018-09-27T15:01:18Z","closed_at":null,"merged_at":null,"merge_commit_sha":"4897cdf1e0d4694f345563ca6242a0f7d53c658f","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/omoskalyov/python_aqa_course/pulls/5/commits","review_comments_url":"https://api.github.com/repos/omoskalyov/python_aqa_course/pulls/5/comments","review_comment_url":"https://api.github.com/repos/omoskalyov/python_aqa_course/pulls/comments{/number}","comments_url":"https://api.github.com/repos/omoskalyov/python_aqa_course/issues/5/comments","statuses_url":"https://api.github.com/repos/omoskalyov/python_aqa_course/statuses/159bc37686813c3e5d16bca7865686099c3f6613","head":{"label":"omoskalyov:phase5","ref":"phase5","sha":"159bc37686813c3e5d16bca7865686099c3f6613","user":{"login":"omoskalyov","id":42592157,"node_id":"MDQ6VXNlcjQyNTkyMTU3","avatar_url":"https://avatars3.githubusercontent.com/u/42592157?v=4","gravatar_id":"","url":"https://api.github.com/users/omoskalyov","html_url":"https://github.com/omoskalyov","followers_url":"https://api.github.com/users/omoskalyov/followers","following_url":"https://api.github.com/users/omoskalyov/following{/other_user}","gists_url":"https://api.github.com/users/omoskalyov/gists{/gist_id}","starred_url":"https://api.github.com/users/omoskalyov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/omoskalyov/subscriptions","organizations_url":"https://api.github.com/users/omoskalyov/orgs","repos_url":"https://api.github.com/users/omoskalyov/repos","events_url":"https://api.github.com/users/omoskalyov/events{/privacy}","received_events_url":"https://api.github.com/users/omoskalyov/received_events","type":"User","site_admin":false},"repo":{"id":146500877,"node_id":"MDEwOlJlcG9zaXRvcnkxNDY1MDA4Nzc=","name":"python_aqa_course","full_name":"omoskalyov/python_aqa_course","private":false,"owner":{"login":"omoskalyov","id":42592157,"node_id":"MDQ6VXNlcjQyNTkyMTU3","avatar_url":"https://avatars3.githubusercontent.com/u/42592157?v=4","gravatar_id":"","url":"https://api.github.com/users/omoskalyov","html_url":"https://github.com/omoskalyov","followers_url":"https://api.github.com/users/omoskalyov/followers","following_url":"https://api.github.com/users/omoskalyov/following{/other_user}","gists_url":"https://api.github.com/users/omoskalyov/gists{/gist_id}","starred_url":"https://api.github.com/users/omoskalyov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/omoskalyov/subscriptions","organizations_url":"https://api.github.com/users/omoskalyov/orgs","repos_url":"https://api.github.com/users/omoskalyov/repos","events_url":"https://api.github.com/users/omoskalyov/events{/privacy}","received_events_url":"https://api.github.com/users/omoskalyov/received_events","type":"User","site_admin":false},"html_url":"https://github.com/omoskalyov/python_aqa_course","description":"Python AQA course","fork":false,"url":"https://api.github.com/repos/omoskalyov/python_aqa_course","forks_url":"https://api.github.com/repos/omoskalyov/python_aqa_course/forks","keys_url":"https://api.github.com/repos/omoskalyov/python_aqa_course/keys{/key_id}","collaborators_url":"https://api.github.com/repos/omoskalyov/python_aqa_course/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/omoskalyov/python_aqa_course/teams","hooks_url":"https://api.github.com/repos/omoskalyov/python_aqa_course/hooks","issue_events_url":"https://api.github.com/repos/omoskalyov/python_aqa_course/issues/events{/number}","events_url":"https://api.github.com/repos/omoskalyov/python_aqa_course/events","assignees_url":"https://api.github.com/repos/omoskalyov/python_aqa_course/assignees{/user}","branches_url":"https://api.github.com/repos/omoskalyov/python_aqa_course/branches{/branch}","tags_url":"https://api.github.com/repos/omoskalyov/python_aqa_course/tags","blobs_url":"https://api.github.com/repos/omoskalyov/python_aqa_course/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/omoskalyov/python_aqa_course/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/omoskalyov/python_aqa_course/git/refs{/sha}","trees_url":"https://api.github.com/repos/omoskalyov/python_aqa_course/git/trees{/sha}","statuses_url":"https://api.github.com/repos/omoskalyov/python_aqa_course/statuses/{sha}","languages_url":"https://api.github.com/repos/omoskalyov/python_aqa_course/languages","stargazers_url":"https://api.github.com/repos/omoskalyov/python_aqa_course/stargazers","contributors_url":"https://api.github.com/repos/omoskalyov/python_aqa_course/contributors","subscribers_url":"https://api.github.com/repos/omoskalyov/python_aqa_course/subscribers","subscription_url":"https://api.github.com/repos/omoskalyov/python_aqa_course/subscription","commits_url":"https://api.github.com/repos/omoskalyov/python_aqa_course/commits{/sha}","git_commits_url":"https://api.github.com/repos/omoskalyov/python_aqa_course/git/commits{/sha}","comments_url":"https://api.github.com/repos/omoskalyov/python_aqa_course/comments{/number}","issue_comment_url":"https://api.github.com/repos/omoskalyov/python_aqa_course/issues/comments{/number}","contents_url":"https://api.github.com/repos/omoskalyov/python_aqa_course/contents/{+path}","compare_url":"https://api.github.com/repos/omoskalyov/python_aqa_course/compare/{base}...{head}","merges_url":"https://api.github.com/repos/omoskalyov/python_aqa_course/merges","archive_url":"https://api.github.com/repos/omoskalyov/python_aqa_course/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/omoskalyov/python_aqa_course/downloads","issues_url":"https://api.github.com/repos/omoskalyov/python_aqa_course/issues{/number}","pulls_url":"https://api.github.com/repos/omoskalyov/python_aqa_course/pulls{/number}","milestones_url":"https://api.github.com/repos/omoskalyov/python_aqa_course/milestones{/number}","notifications_url":"https://api.github.com/repos/omoskalyov/python_aqa_course/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/omoskalyov/python_aqa_course/labels{/name}","releases_url":"https://api.github.com/repos/omoskalyov/python_aqa_course/releases{/id}","deployments_url":"https://api.github.com/repos/omoskalyov/python_aqa_course/deployments","created_at":"2018-08-28T20:07:38Z","updated_at":"2018-09-24T11:57:02Z","pushed_at":"2018-09-26T16:17:57Z","git_url":"git://github.com/omoskalyov/python_aqa_course.git","ssh_url":"git@github.com:omoskalyov/python_aqa_course.git","clone_url":"https://github.com/omoskalyov/python_aqa_course.git","svn_url":"https://github.com/omoskalyov/python_aqa_course","homepage":null,"size":7376,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":1,"license":null,"forks":0,"open_issues":1,"watchers":0,"default_branch":"master"}},"base":{"label":"omoskalyov:master","ref":"master","sha":"94dd7ff5d1a76b15b380e6aa6f11bf174e01e6f0","user":{"login":"omoskalyov","id":42592157,"node_id":"MDQ6VXNlcjQyNTkyMTU3","avatar_url":"https://avatars3.githubusercontent.com/u/42592157?v=4","gravatar_id":"","url":"https://api.github.com/users/omoskalyov","html_url":"https://github.com/omoskalyov","followers_url":"https://api.github.com/users/omoskalyov/followers","following_url":"https://api.github.com/users/omoskalyov/following{/other_user}","gists_url":"https://api.github.com/users/omoskalyov/gists{/gist_id}","starred_url":"https://api.github.com/users/omoskalyov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/omoskalyov/subscriptions","organizations_url":"https://api.github.com/users/omoskalyov/orgs","repos_url":"https://api.github.com/users/omoskalyov/repos","events_url":"https://api.github.com/users/omoskalyov/events{/privacy}","received_events_url":"https://api.github.com/users/omoskalyov/received_events","type":"User","site_admin":false},"repo":{"id":146500877,"node_id":"MDEwOlJlcG9zaXRvcnkxNDY1MDA4Nzc=","name":"python_aqa_course","full_name":"omoskalyov/python_aqa_course","private":false,"owner":{"login":"omoskalyov","id":42592157,"node_id":"MDQ6VXNlcjQyNTkyMTU3","avatar_url":"https://avatars3.githubusercontent.com/u/42592157?v=4","gravatar_id":"","url":"https://api.github.com/users/omoskalyov","html_url":"https://github.com/omoskalyov","followers_url":"https://api.github.com/users/omoskalyov/followers","following_url":"https://api.github.com/users/omoskalyov/following{/other_user}","gists_url":"https://api.github.com/users/omoskalyov/gists{/gist_id}","starred_url":"https://api.github.com/users/omoskalyov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/omoskalyov/subscriptions","organizations_url":"https://api.github.com/users/omoskalyov/orgs","repos_url":"https://api.github.com/users/omoskalyov/repos","events_url":"https://api.github.com/users/omoskalyov/events{/privacy}","received_events_url":"https://api.github.com/users/omoskalyov/received_events","type":"User","site_admin":false},"html_url":"https://github.com/omoskalyov/python_aqa_course","description":"Python AQA course","fork":false,"url":"https://api.github.com/repos/omoskalyov/python_aqa_course","forks_url":"https://api.github.com/repos/omoskalyov/python_aqa_course/forks","keys_url":"https://api.github.com/repos/omoskalyov/python_aqa_course/keys{/key_id}","collaborators_url":"https://api.github.com/repos/omoskalyov/python_aqa_course/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/omoskalyov/python_aqa_course/teams","hooks_url":"https://api.github.com/repos/omoskalyov/python_aqa_course/hooks","issue_events_url":"https://api.github.com/repos/omoskalyov/python_aqa_course/issues/events{/number}","events_url":"https://api.github.com/repos/omoskalyov/python_aqa_course/events","assignees_url":"https://api.github.com/repos/omoskalyov/python_aqa_course/assignees{/user}","branches_url":"https://api.github.com/repos/omoskalyov/python_aqa_course/branches{/branch}","tags_url":"https://api.github.com/repos/omoskalyov/python_aqa_course/tags","blobs_url":"https://api.github.com/repos/omoskalyov/python_aqa_course/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/omoskalyov/python_aqa_course/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/omoskalyov/python_aqa_course/git/refs{/sha}","trees_url":"https://api.github.com/repos/omoskalyov/python_aqa_course/git/trees{/sha}","statuses_url":"https://api.github.com/repos/omoskalyov/python_aqa_course/statuses/{sha}","languages_url":"https://api.github.com/repos/omoskalyov/python_aqa_course/languages","stargazers_url":"https://api.github.com/repos/omoskalyov/python_aqa_course/stargazers","contributors_url":"https://api.github.com/repos/omoskalyov/python_aqa_course/contributors","subscribers_url":"https://api.github.com/repos/omoskalyov/python_aqa_course/subscribers","subscription_url":"https://api.github.com/repos/omoskalyov/python_aqa_course/subscription","commits_url":"https://api.github.com/repos/omoskalyov/python_aqa_course/commits{/sha}","git_commits_url":"https://api.github.com/repos/omoskalyov/python_aqa_course/git/commits{/sha}","comments_url":"https://api.github.com/repos/omoskalyov/python_aqa_course/comments{/number}","issue_comment_url":"https://api.github.com/repos/omoskalyov/python_aqa_course/issues/comments{/number}","contents_url":"https://api.github.com/repos/omoskalyov/python_aqa_course/contents/{+path}","compare_url":"https://api.github.com/repos/omoskalyov/python_aqa_course/compare/{base}...{head}","merges_url":"https://api.github.com/repos/omoskalyov/python_aqa_course/merges","archive_url":"https://api.github.com/repos/omoskalyov/python_aqa_course/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/omoskalyov/python_aqa_course/downloads","issues_url":"https://api.github.com/repos/omoskalyov/python_aqa_course/issues{/number}","pulls_url":"https://api.github.com/repos/omoskalyov/python_aqa_course/pulls{/number}","milestones_url":"https://api.github.com/repos/omoskalyov/python_aqa_course/milestones{/number}","notifications_url":"https://api.github.com/repos/omoskalyov/python_aqa_course/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/omoskalyov/python_aqa_course/labels{/name}","releases_url":"https://api.github.com/repos/omoskalyov/python_aqa_course/releases{/id}","deployments_url":"https://api.github.com/repos/omoskalyov/python_aqa_course/deployments","created_at":"2018-08-28T20:07:38Z","updated_at":"2018-09-24T11:57:02Z","pushed_at":"2018-09-26T16:17:57Z","git_url":"git://github.com/omoskalyov/python_aqa_course.git","ssh_url":"git@github.com:omoskalyov/python_aqa_course.git","clone_url":"https://github.com/omoskalyov/python_aqa_course.git","svn_url":"https://github.com/omoskalyov/python_aqa_course","homepage":null,"size":7376,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":1,"license":null,"forks":0,"open_issues":1,"watchers":0,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/omoskalyov/python_aqa_course/pulls/5"},"html":{"href":"https://github.com/omoskalyov/python_aqa_course/pull/5"},"issue":{"href":"https://api.github.com/repos/omoskalyov/python_aqa_course/issues/5"},"comments":{"href":"https://api.github.com/repos/omoskalyov/python_aqa_course/issues/5/comments"},"review_comments":{"href":"https://api.github.com/repos/omoskalyov/python_aqa_course/pulls/5/comments"},"review_comment":{"href":"https://api.github.com/repos/omoskalyov/python_aqa_course/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/omoskalyov/python_aqa_course/pulls/5/commits"},"statuses":{"href":"https://api.github.com/repos/omoskalyov/python_aqa_course/statuses/159bc37686813c3e5d16bca7865686099c3f6613"}},"author_association":"OWNER"}}
{"actor":{"display_login":"andynati"}}