{"action":"created","comment":{"url":"https://api.github.com/repos/bokeh/bokeh/pulls/comments/37229668","id":37229668,"diff_hunk":"@@ -71,220 +42,126 @@ def cleaner(env_path):\n def conda_creator(env_name, pkgs):\n     \"\"\"Create a conda environment of a given name containing a given string of pkgs.\n     \"\"\"\n-    call_wrapper(\"conda create --yes -n %s %s %s\" % (env_name, pkgs, OPTIONS[\"channel\"]), shell=True)\n+\n+    subprocess.call(\"conda create --yes -n %s %s\" % (env_name, pkgs), shell=True)\n \n \n def bokeh_installer(env_name, install_string):\n     \"\"\"Activate an environment and run its install string to either install or update bokeh using\n     conda or pip.\n     \"\"\"\n+\n     if os.name == 'nt':\n         command_string = 'activate %s & %s' % (env_name, install_string)\n     else:\n         command_string = 'source activate %s; %s' % (env_name, install_string)\n \n-    result = call_wrapper(command_string, shell=True)\n+    result = subprocess.call(command_string, shell=True, executable=\"/bin/bash\")\n \n     return result == 0\n \n \n-def version_check(env_name, expected_ver):\n-    \"\"\"Check a given environment's version of bokeh.\n-    \"\"\"\n-    if os.name == 'nt':\n-        command_string = 'activate %s & python -c \"import sys, bokeh; sys.exit(0 if bokeh.__version__ == %r else 1)\"' % (env_name, expected_ver)\n-    else:\n-        command_string = 'source activate %s; python -c \"import sys, bokeh; sys.exit(0 if bokeh.__version__ == %r else 1)\"' % (env_name, expected_ver)\n-\n-    result = call_wrapper(command_string, shell=True)\n-\n-    return result == 0\n-\n-\n-def run_tests(env_name):\n-    \"\"\"Run py.test in a given environment.  Writes results to a tmpfile that will be returned as a string\n-    in the event of a failure.\n-    \"\"\"\n-\n-    test_failure = ''\n-    file_name  = \"tmpfile.txt\"\n-    tmpfile = open(file_name, \"w+\")\n-\n-    if os.name == 'nt':\n-        command_string = 'activate %s & py.test -s --cov=bokeh\"' % env_name\n-    else:\n-        command_string = 'source activate %s; py.test -s --cov=bokeh\"' % env_name\n-\n-    result = call_wrapper(command_string, shell=True, stderr=tmpfile)\n-\n-    tmpfile.close()\n-\n-    if result != 0:\n-        with open(file_name, \"r\") as tmpfile:\n-            test_failure = (tmpfile.read())\n-\n-    os.remove(file_name)\n-\n-    return result == 0, test_failure\n-\n-\n-def server_check(env_name):\n-    pass\n-    # Open subprocess, run bokeh server\n-    # Check return code, if 0, True, if 1, False\n-    # Kill subprocess\n-\n-\n-def logger(failure_list, logfile='logfile.txt'):\n-    \"\"\"Log items in a list of errors to a logfile.\n-    \"\"\"\n-\n-    while os.path.exists(logfile):\n-        logfile = logfile.split('-')\n-        if len(logfile) == 1:\n-            logfile.append('2')\n-        else:\n-            logfile[1] = str(int(logfile[1]) + 1)\n-        logfile = '-'.join(logfile)\n-\n-    with open(logfile, 'w') as log:\n-        for failure in failure_list:\n-            log.write(failure)\n-\n-\n if __name__ == '__main__':\n \n     parser = get_parser()\n     ops = parser.parse_args()\n-    OPTIONS[\"dry-run\"] = ops.dry_run\n \n-    preversion = ops.previous\n-    current_version = ops.version\n+    ver = ops.version\n \n     envs = {\n         \"py27_conda_clean\"    : {\n-            \"init\"    : \"python=2.7 pytest pytest-cov mock\",\n+            \"init\"    : \"python=2.7 pytest mock\",\n             \"install\" : '; '.join([\n                     # install latest version from dev channel\n                     \"conda install --yes -c bokeh/channel/dev bokeh\",\n                     # install dependencies needed for testing\n+                    \"conda install --yes  -c jrderuiter pytest-cov\",\n                     \"conda install --yes  -c auto websocket-client\",\n-                    \"conda install --yes  -c bokeh pytest pytest-cov mock blaze abstract-rendering beautiful-soup \"\n-                    \"ipython scipy websocket multiuserblazeserver pillow\",\n+                    \"conda install --yes  -c bokeh nose mock blaze abstract-rendering beautiful-soup ipython scipy websocket multiuserblazeserver pillow\",\n                 ])\n             },\n         \"py27_conda_update\"   : {\n-            \"init\"    : \"python=2.7 pytest pytest-cov mock bokeh=%s\" % preversion,\n+            \"init\"    : \"python=2.7 nose mock bokeh=%s\" % ver,\n             \"install\" : '; '.join([\n                     \"conda update --yes -c bokeh/channel/dev bokeh\",\n                     # install dependencies needed for testing\n                     \"conda install --yes -c auto websocket-client\",\n-                    \"conda install --yes -c bokeh pytest pytest-cov mock blaze abstract-rendering beautiful-soup \"\n-                    \"ipython scipy websocket multiuserblazeserver pillow\",\n+                    \"conda install --yes -c bokeh nose mock blaze abstract-rendering beautiful-soup ipython scipy websocket multiuserblazeserver pillow\",\n                 ])\n             },\n         \"py27_pip_clean\"      : {\n-            \"init\"    : \"python=2.7 pytest pytest-cov mock pip\",\n+            \"init\"    : \"python=2.7 pytest mock pip\",\n             \"install\" : '; '.join([\n-                \"pip install --pre -i https://pypi.binstar.org/bokeh/channel/dev/simple\"\n-                \" bokeh --extra-index-url https://pypi.python.org/simple/\",\n+                # Latest version of pip not included in anaconda 2.3.0\n+                \"pip install --pre -i https://pypi.anaconda.org/bokeh/channel/dev/simple bokeh --extra-index-url https://pypi.python.org/simple/\",\n                 # install dependencies needed for testing\n-                \"pip install pytest pytest-cov mock blaze abstract-rendering beautifulsoup4\"\n-                \" ipython scipy websocket-client multiuserblazeserver\",\n+                \"conda install --yes  -c jrderuiter pytest-cov\",\n+                \"conda install --yes -c auto websocket-client\",\n+                \"conda install --yes -c bokeh nose mock blaze abstract-rendering beautiful-soup ipython scipy websocket-client multiuserblazeserver\",","path":"scripts/test_matrix.py","position":202,"original_position":202,"commit_id":"56f076030ff7c93f3022b125e5f99b0be823bbc7","original_commit_id":"56f076030ff7c93f3022b125e5f99b0be823bbc7","user":{"login":"damianavila","id":1640669,"avatar_url":"https://avatars.githubusercontent.com/u/1640669?v=3","gravatar_id":"","url":"https://api.github.com/users/damianavila","html_url":"https://github.com/damianavila","followers_url":"https://api.github.com/users/damianavila/followers","following_url":"https://api.github.com/users/damianavila/following{/other_user}","gists_url":"https://api.github.com/users/damianavila/gists{/gist_id}","starred_url":"https://api.github.com/users/damianavila/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/damianavila/subscriptions","organizations_url":"https://api.github.com/users/damianavila/orgs","repos_url":"https://api.github.com/users/damianavila/repos","events_url":"https://api.github.com/users/damianavila/events{/privacy}","received_events_url":"https://api.github.com/users/damianavila/received_events","type":"User","site_admin":false},"body":"remove `bokeh`","created_at":"2015-08-17T19:58:16Z","updated_at":"2015-08-17T19:58:16Z","html_url":"https://github.com/bokeh/bokeh/pull/2490#discussion_r37229668","pull_request_url":"https://api.github.com/repos/bokeh/bokeh/pulls/2490","_links":{"self":{"href":"https://api.github.com/repos/bokeh/bokeh/pulls/comments/37229668"},"html":{"href":"https://github.com/bokeh/bokeh/pull/2490#discussion_r37229668"},"pull_request":{"href":"https://api.github.com/repos/bokeh/bokeh/pulls/2490"}}},"pull_request":{"url":"https://api.github.com/repos/bokeh/bokeh/pulls/2490","id":39090241,"html_url":"https://github.com/bokeh/bokeh/pull/2490","diff_url":"https://github.com/bokeh/bokeh/pull/2490.diff","patch_url":"https://github.com/bokeh/bokeh/pull/2490.patch","issue_url":"https://api.github.com/repos/bokeh/bokeh/issues/2490","number":2490,"state":"open","locked":false,"title":"test matrix","user":{"login":"Maggie-M","id":1417520,"avatar_url":"https://avatars.githubusercontent.com/u/1417520?v=3","gravatar_id":"","url":"https://api.github.com/users/Maggie-M","html_url":"https://github.com/Maggie-M","followers_url":"https://api.github.com/users/Maggie-M/followers","following_url":"https://api.github.com/users/Maggie-M/following{/other_user}","gists_url":"https://api.github.com/users/Maggie-M/gists{/gist_id}","starred_url":"https://api.github.com/users/Maggie-M/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Maggie-M/subscriptions","organizations_url":"https://api.github.com/users/Maggie-M/orgs","repos_url":"https://api.github.com/users/Maggie-M/repos","events_url":"https://api.github.com/users/Maggie-M/events{/privacy}","received_events_url":"https://api.github.com/users/Maggie-M/received_events","type":"User","site_admin":false},"body":"fixes #2486 \r\n\r\n@damianavila The automated testing aspect of this script is not working reliably right now, so I've temporarily removed it.  The script now creates all of the different environments, where tests can be run manually (updating bokeh, checking version, running bokeh.test()).\r\n\r\nI'm still looking at the second error listed in that issue.","created_at":"2015-07-02T14:46:51Z","updated_at":"2015-08-17T19:58:16Z","closed_at":null,"merged_at":null,"merge_commit_sha":"d0299a01c07723f4caa0ba9919fb14e291e96776","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/bokeh/bokeh/pulls/2490/commits","review_comments_url":"https://api.github.com/repos/bokeh/bokeh/pulls/2490/comments","review_comment_url":"https://api.github.com/repos/bokeh/bokeh/pulls/comments{/number}","comments_url":"https://api.github.com/repos/bokeh/bokeh/issues/2490/comments","statuses_url":"https://api.github.com/repos/bokeh/bokeh/statuses/56f076030ff7c93f3022b125e5f99b0be823bbc7","head":{"label":"bokeh:task/simplify_test_matrix","ref":"task/simplify_test_matrix","sha":"56f076030ff7c93f3022b125e5f99b0be823bbc7","user":{"login":"bokeh","id":8440965,"avatar_url":"https://avatars.githubusercontent.com/u/8440965?v=3","gravatar_id":"","url":"https://api.github.com/users/bokeh","html_url":"https://github.com/bokeh","followers_url":"https://api.github.com/users/bokeh/followers","following_url":"https://api.github.com/users/bokeh/following{/other_user}","gists_url":"https://api.github.com/users/bokeh/gists{/gist_id}","starred_url":"https://api.github.com/users/bokeh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bokeh/subscriptions","organizations_url":"https://api.github.com/users/bokeh/orgs","repos_url":"https://api.github.com/users/bokeh/repos","events_url":"https://api.github.com/users/bokeh/events{/privacy}","received_events_url":"https://api.github.com/users/bokeh/received_events","type":"Organization","site_admin":false},"repo":{"id":3834332,"name":"bokeh","full_name":"bokeh/bokeh","owner":{"login":"bokeh","id":8440965,"avatar_url":"https://avatars.githubusercontent.com/u/8440965?v=3","gravatar_id":"","url":"https://api.github.com/users/bokeh","html_url":"https://github.com/bokeh","followers_url":"https://api.github.com/users/bokeh/followers","following_url":"https://api.github.com/users/bokeh/following{/other_user}","gists_url":"https://api.github.com/users/bokeh/gists{/gist_id}","starred_url":"https://api.github.com/users/bokeh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bokeh/subscriptions","organizations_url":"https://api.github.com/users/bokeh/orgs","repos_url":"https://api.github.com/users/bokeh/repos","events_url":"https://api.github.com/users/bokeh/events{/privacy}","received_events_url":"https://api.github.com/users/bokeh/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/bokeh/bokeh","description":"Interactive Web Plotting for Python","fork":false,"url":"https://api.github.com/repos/bokeh/bokeh","forks_url":"https://api.github.com/repos/bokeh/bokeh/forks","keys_url":"https://api.github.com/repos/bokeh/bokeh/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bokeh/bokeh/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bokeh/bokeh/teams","hooks_url":"https://api.github.com/repos/bokeh/bokeh/hooks","issue_events_url":"https://api.github.com/repos/bokeh/bokeh/issues/events{/number}","events_url":"https://api.github.com/repos/bokeh/bokeh/events","assignees_url":"https://api.github.com/repos/bokeh/bokeh/assignees{/user}","branches_url":"https://api.github.com/repos/bokeh/bokeh/branches{/branch}","tags_url":"https://api.github.com/repos/bokeh/bokeh/tags","blobs_url":"https://api.github.com/repos/bokeh/bokeh/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bokeh/bokeh/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bokeh/bokeh/git/refs{/sha}","trees_url":"https://api.github.com/repos/bokeh/bokeh/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bokeh/bokeh/statuses/{sha}","languages_url":"https://api.github.com/repos/bokeh/bokeh/languages","stargazers_url":"https://api.github.com/repos/bokeh/bokeh/stargazers","contributors_url":"https://api.github.com/repos/bokeh/bokeh/contributors","subscribers_url":"https://api.github.com/repos/bokeh/bokeh/subscribers","subscription_url":"https://api.github.com/repos/bokeh/bokeh/subscription","commits_url":"https://api.github.com/repos/bokeh/bokeh/commits{/sha}","git_commits_url":"https://api.github.com/repos/bokeh/bokeh/git/commits{/sha}","comments_url":"https://api.github.com/repos/bokeh/bokeh/comments{/number}","issue_comment_url":"https://api.github.com/repos/bokeh/bokeh/issues/comments{/number}","contents_url":"https://api.github.com/repos/bokeh/bokeh/contents/{+path}","compare_url":"https://api.github.com/repos/bokeh/bokeh/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bokeh/bokeh/merges","archive_url":"https://api.github.com/repos/bokeh/bokeh/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bokeh/bokeh/downloads","issues_url":"https://api.github.com/repos/bokeh/bokeh/issues{/number}","pulls_url":"https://api.github.com/repos/bokeh/bokeh/pulls{/number}","milestones_url":"https://api.github.com/repos/bokeh/bokeh/milestones{/number}","notifications_url":"https://api.github.com/repos/bokeh/bokeh/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bokeh/bokeh/labels{/name}","releases_url":"https://api.github.com/repos/bokeh/bokeh/releases{/id}","created_at":"2012-03-26T15:40:01Z","updated_at":"2015-08-17T16:48:30Z","pushed_at":"2015-08-17T17:02:57Z","git_url":"git://github.com/bokeh/bokeh.git","ssh_url":"git@github.com:bokeh/bokeh.git","clone_url":"https://github.com/bokeh/bokeh.git","svn_url":"https://github.com/bokeh/bokeh","homepage":"http://bokeh.pydata.org/en/latest/","size":164043,"stargazers_count":3106,"watchers_count":3106,"language":"CoffeeScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":531,"mirror_url":null,"open_issues_count":493,"forks":531,"open_issues":493,"watchers":3106,"default_branch":"master"}},"base":{"label":"bokeh:master","ref":"master","sha":"2e46187532d3c34ee759da59cb97dccc6e2c2b42","user":{"login":"bokeh","id":8440965,"avatar_url":"https://avatars.githubusercontent.com/u/8440965?v=3","gravatar_id":"","url":"https://api.github.com/users/bokeh","html_url":"https://github.com/bokeh","followers_url":"https://api.github.com/users/bokeh/followers","following_url":"https://api.github.com/users/bokeh/following{/other_user}","gists_url":"https://api.github.com/users/bokeh/gists{/gist_id}","starred_url":"https://api.github.com/users/bokeh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bokeh/subscriptions","organizations_url":"https://api.github.com/users/bokeh/orgs","repos_url":"https://api.github.com/users/bokeh/repos","events_url":"https://api.github.com/users/bokeh/events{/privacy}","received_events_url":"https://api.github.com/users/bokeh/received_events","type":"Organization","site_admin":false},"repo":{"id":3834332,"name":"bokeh","full_name":"bokeh/bokeh","owner":{"login":"bokeh","id":8440965,"avatar_url":"https://avatars.githubusercontent.com/u/8440965?v=3","gravatar_id":"","url":"https://api.github.com/users/bokeh","html_url":"https://github.com/bokeh","followers_url":"https://api.github.com/users/bokeh/followers","following_url":"https://api.github.com/users/bokeh/following{/other_user}","gists_url":"https://api.github.com/users/bokeh/gists{/gist_id}","starred_url":"https://api.github.com/users/bokeh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bokeh/subscriptions","organizations_url":"https://api.github.com/users/bokeh/orgs","repos_url":"https://api.github.com/users/bokeh/repos","events_url":"https://api.github.com/users/bokeh/events{/privacy}","received_events_url":"https://api.github.com/users/bokeh/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/bokeh/bokeh","description":"Interactive Web Plotting for Python","fork":false,"url":"https://api.github.com/repos/bokeh/bokeh","forks_url":"https://api.github.com/repos/bokeh/bokeh/forks","keys_url":"https://api.github.com/repos/bokeh/bokeh/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bokeh/bokeh/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bokeh/bokeh/teams","hooks_url":"https://api.github.com/repos/bokeh/bokeh/hooks","issue_events_url":"https://api.github.com/repos/bokeh/bokeh/issues/events{/number}","events_url":"https://api.github.com/repos/bokeh/bokeh/events","assignees_url":"https://api.github.com/repos/bokeh/bokeh/assignees{/user}","branches_url":"https://api.github.com/repos/bokeh/bokeh/branches{/branch}","tags_url":"https://api.github.com/repos/bokeh/bokeh/tags","blobs_url":"https://api.github.com/repos/bokeh/bokeh/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bokeh/bokeh/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bokeh/bokeh/git/refs{/sha}","trees_url":"https://api.github.com/repos/bokeh/bokeh/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bokeh/bokeh/statuses/{sha}","languages_url":"https://api.github.com/repos/bokeh/bokeh/languages","stargazers_url":"https://api.github.com/repos/bokeh/bokeh/stargazers","contributors_url":"https://api.github.com/repos/bokeh/bokeh/contributors","subscribers_url":"https://api.github.com/repos/bokeh/bokeh/subscribers","subscription_url":"https://api.github.com/repos/bokeh/bokeh/subscription","commits_url":"https://api.github.com/repos/bokeh/bokeh/commits{/sha}","git_commits_url":"https://api.github.com/repos/bokeh/bokeh/git/commits{/sha}","comments_url":"https://api.github.com/repos/bokeh/bokeh/comments{/number}","issue_comment_url":"https://api.github.com/repos/bokeh/bokeh/issues/comments{/number}","contents_url":"https://api.github.com/repos/bokeh/bokeh/contents/{+path}","compare_url":"https://api.github.com/repos/bokeh/bokeh/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bokeh/bokeh/merges","archive_url":"https://api.github.com/repos/bokeh/bokeh/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bokeh/bokeh/downloads","issues_url":"https://api.github.com/repos/bokeh/bokeh/issues{/number}","pulls_url":"https://api.github.com/repos/bokeh/bokeh/pulls{/number}","milestones_url":"https://api.github.com/repos/bokeh/bokeh/milestones{/number}","notifications_url":"https://api.github.com/repos/bokeh/bokeh/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bokeh/bokeh/labels{/name}","releases_url":"https://api.github.com/repos/bokeh/bokeh/releases{/id}","created_at":"2012-03-26T15:40:01Z","updated_at":"2015-08-17T16:48:30Z","pushed_at":"2015-08-17T17:02:57Z","git_url":"git://github.com/bokeh/bokeh.git","ssh_url":"git@github.com:bokeh/bokeh.git","clone_url":"https://github.com/bokeh/bokeh.git","svn_url":"https://github.com/bokeh/bokeh","homepage":"http://bokeh.pydata.org/en/latest/","size":164043,"stargazers_count":3106,"watchers_count":3106,"language":"CoffeeScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":531,"mirror_url":null,"open_issues_count":493,"forks":531,"open_issues":493,"watchers":3106,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/bokeh/bokeh/pulls/2490"},"html":{"href":"https://github.com/bokeh/bokeh/pull/2490"},"issue":{"href":"https://api.github.com/repos/bokeh/bokeh/issues/2490"},"comments":{"href":"https://api.github.com/repos/bokeh/bokeh/issues/2490/comments"},"review_comments":{"href":"https://api.github.com/repos/bokeh/bokeh/pulls/2490/comments"},"review_comment":{"href":"https://api.github.com/repos/bokeh/bokeh/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/bokeh/bokeh/pulls/2490/commits"},"statuses":{"href":"https://api.github.com/repos/bokeh/bokeh/statuses/56f076030ff7c93f3022b125e5f99b0be823bbc7"}}}}