We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
[BUG] Development guide missing `test` argument for conda install and pytest install failure on windows
### Missing `test` argument

The current [developement guide](https://bokeh.pydata.org/en/latest/docs/dev_guide/setup.html#conda-packages) is missing the `test` argument for windows setups. 

As for OSX / Linux (bash / sh), it is: 
- ```conda install `python scripts/deps.py build run test```.

As for windows, the `test` argument is missing for the `deps.py`:
- ```conda install $(python scripts/deps.py build run).split() | where {$_}```
- ```for /F "delims=" %i in ('python scripts\deps.py build run') do (conda install %i)```

Instead, it should be:
- ```conda install $(python scripts/deps.py build run test).split() | where {$_}```
- ```for /F "delims=" %i in ('python scripts\deps.py build run test') do (conda install %i)```

### `pytest<5.0.0` fails
In addition, running ```for /F "delims=" %i in ('python scripts\deps.py build run test') do (conda install %i)``` fails with error `System can't find given file.` which is due to `pytest<5.0.0`. Providing double quotes actually fixes the issue -> `conda install "pytest<5.0.0"`.

--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `scripts/deps.py`
Content:
```
1 import sys
2 import jinja2
3 import yaml
4 
5 
6 def load_setup_py_data():
7     import os
8     import setuptools
9     os.environ['CONDA_BUILD_STATE'] = 'RENDER'
10     data = {}
11 
12     def _setup(**kw): data.update(kw)
13     setuptools.setup = _setup
14     return data
15 
16 meta_src = jinja2.Template(open("conda.recipe/meta.yaml").read())
17 meta_src = yaml.load(meta_src.render(load_setup_py_data=load_setup_py_data),
18                      Loader=yaml.FullLoader)
19 
20 section = {
21     "build"  : meta_src["requirements"]["build"],
22     "deploy" : meta_src["extra"]["deploy"],
23     "run"    : meta_src["requirements"]["run"],
24     "test"   : meta_src["test"]["requires"],
25 }
26 
27 spec = []
28 for name in sys.argv[1:]:
29     spec += section[name]
30 
31 # bare python unpins python version causing upgrade to latest
32 if 'python' in spec: spec.remove('python')
33 
34 deps = ""
35 deps += " ".join(s for s in spec)
36 deps = deps.replace(' >=', '>=')  # conda syntax doesn't allow spaces b/w pkg name and version spec
37 deps = deps.replace(' <', '<')
38 deps = deps.replace(' [unix]', ' ')
39 
40 print(deps)
41
```
--- END FILES ---

Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.

Here is an example:

```diff
diff --git a/examples/server_async.py b/examples/server_async.py
--- a/examples/server_async.py
+++ b/examples/server_async.py
@@ -313,4 +313,4 @@
 
 
 if __name__ == "__main__":
-    asyncio.run(run_async_server("."), debug=True)
+    asyncio.run(run_async_server(), debug=True)
diff --git a/examples/server_sync.py b/examples/server_sync.py
--- a/examples/server_sync.py
+++ b/examples/server_sync.py
@@ -313,5 +313,5 @@
 
 
 if __name__ == "__main__":
-    server = run_sync_server(".")
+    server = run_sync_server()
     server.shutdown()

```

diff --git a/scripts/deps.py b/scripts/deps.py
--- a/scripts/deps.py
+++ b/scripts/deps.py
@@ -1,4 +1,5 @@
 import sys
+import platform
 import jinja2
 import yaml
 
@@ -31,6 +32,10 @@
 # bare python unpins python version causing upgrade to latest
 if 'python' in spec: spec.remove('python')
 
+# add double quotes to specs for windows, fixes #9065
+if "windows" in platform.platform().lower():
+    spec = ['"{}"'.format(s) for s in spec]
+
 deps = ""
 deps += " ".join(s for s in spec)
 deps = deps.replace(' >=', '>=')  # conda syntax doesn't allow spaces b/w pkg name and version spec

{"golden_diff": "diff --git a/scripts/deps.py b/scripts/deps.py\n--- a/scripts/deps.py\n+++ b/scripts/deps.py\n@@ -1,4 +1,5 @@\n import sys\n+import platform\n import jinja2\n import yaml\n \n@@ -31,6 +32,10 @@\n # bare python unpins python version causing upgrade to latest\n if 'python' in spec: spec.remove('python')\n \n+# add double quotes to specs for windows, fixes #9065\n+if \"windows\" in platform.platform().lower():\n+    spec = ['\"{}\"'.format(s) for s in spec]\n+\n deps = \"\"\n deps += \" \".join(s for s in spec)\n deps = deps.replace(' >=', '>=')  # conda syntax doesn't allow spaces b/w pkg name and version spec\n", "issue": "[BUG] Development guide missing `test` argument for conda install and pytest install failure on windows\n### Missing `test` argument\r\n\r\nThe current [developement guide](https://bokeh.pydata.org/en/latest/docs/dev_guide/setup.html#conda-packages) is missing the `test` argument for windows setups. \r\n\r\nAs for OSX / Linux (bash / sh), it is: \r\n- ```conda install `python scripts/deps.py build run test```.\r\n\r\nAs for windows, the `test` argument is missing for the `deps.py`:\r\n- ```conda install $(python scripts/deps.py build run).split() | where {$_}```\r\n- ```for /F \"delims=\" %i in ('python scripts\\deps.py build run') do (conda install %i)```\r\n\r\nInstead, it should be:\r\n- ```conda install $(python scripts/deps.py build run test).split() | where {$_}```\r\n- ```for /F \"delims=\" %i in ('python scripts\\deps.py build run test') do (conda install %i)```\r\n\r\n### `pytest<5.0.0` fails\r\nIn addition, running ```for /F \"delims=\" %i in ('python scripts\\deps.py build run test') do (conda install %i)``` fails with error `System can't find given file.` which is due to `pytest<5.0.0`. Providing double quotes actually fixes the issue -> `conda install \"pytest<5.0.0\"`.\n", "before_files": [{"content": "import sys\nimport jinja2\nimport yaml\n\n\ndef load_setup_py_data():\n    import os\n    import setuptools\n    os.environ['CONDA_BUILD_STATE'] = 'RENDER'\n    data = {}\n\n    def _setup(**kw): data.update(kw)\n    setuptools.setup = _setup\n    return data\n\nmeta_src = jinja2.Template(open(\"conda.recipe/meta.yaml\").read())\nmeta_src = yaml.load(meta_src.render(load_setup_py_data=load_setup_py_data),\n                     Loader=yaml.FullLoader)\n\nsection = {\n    \"build\"  : meta_src[\"requirements\"][\"build\"],\n    \"deploy\" : meta_src[\"extra\"][\"deploy\"],\n    \"run\"    : meta_src[\"requirements\"][\"run\"],\n    \"test\"   : meta_src[\"test\"][\"requires\"],\n}\n\nspec = []\nfor name in sys.argv[1:]:\n    spec += section[name]\n\n# bare python unpins python version causing upgrade to latest\nif 'python' in spec: spec.remove('python')\n\ndeps = \"\"\ndeps += \" \".join(s for s in spec)\ndeps = deps.replace(' >=', '>=')  # conda syntax doesn't allow spaces b/w pkg name and version spec\ndeps = deps.replace(' <', '<')\ndeps = deps.replace(' [unix]', ' ')\n\nprint(deps)\n", "path": "scripts/deps.py"}], "after_files": [{"content": "import sys\nimport platform\nimport jinja2\nimport yaml\n\n\ndef load_setup_py_data():\n    import os\n    import setuptools\n    os.environ['CONDA_BUILD_STATE'] = 'RENDER'\n    data = {}\n\n    def _setup(**kw): data.update(kw)\n    setuptools.setup = _setup\n    return data\n\nmeta_src = jinja2.Template(open(\"conda.recipe/meta.yaml\").read())\nmeta_src = yaml.load(meta_src.render(load_setup_py_data=load_setup_py_data),\n                     Loader=yaml.FullLoader)\n\nsection = {\n    \"build\"  : meta_src[\"requirements\"][\"build\"],\n    \"deploy\" : meta_src[\"extra\"][\"deploy\"],\n    \"run\"    : meta_src[\"requirements\"][\"run\"],\n    \"test\"   : meta_src[\"test\"][\"requires\"],\n}\n\nspec = []\nfor name in sys.argv[1:]:\n    spec += section[name]\n\n# bare python unpins python version causing upgrade to latest\nif 'python' in spec: spec.remove('python')\n\n# add double quotes to specs for windows, fixes #9065\nif \"windows\" in platform.platform().lower():\n    spec = ['\"{}\"'.format(s) for s in spec]\n\ndeps = \"\"\ndeps += \" \".join(s for s in spec)\ndeps = deps.replace(' >=', '>=')  # conda syntax doesn't allow spaces b/w pkg name and version spec\ndeps = deps.replace(' <', '<')\ndeps = deps.replace(' [unix]', ' ')\n\nprint(deps)\n", "path": "scripts/deps.py"}]}