We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
[Bug] Avocado crash with TypeError
With the following change on the time-sensitive job Avocado crashes:

```python
diff --git a/selftests/pre_release/jobs/timesensitive.py b/selftests/pre_release/jobs/timesensitive.py
index a9fbebcd..456719aa 100755
--- a/selftests/pre_release/jobs/timesensitive.py
+++ b/selftests/pre_release/jobs/timesensitive.py
@@ -4,6 +4,7 @@ import os
 import sys
 
 from avocado.core.job import Job
+from avocado.core.suite import TestSuite
 
 THIS_DIR = os.path.dirname(os.path.abspath(__file__))
 ROOT_DIR = os.path.dirname(os.path.dirname(os.path.dirname(THIS_DIR)))
@@ -19,6 +20,7 @@ CONFIG = {
 
 
 if __name__ == '__main__':
-    with Job(CONFIG) as j:
+    suite = TestSuite.from_config(CONFIG)
+    with Job(CONFIG, [suite]) as j:
         os.environ['AVOCADO_CHECK_LEVEL'] = '3'
         sys.exit(j.run())
```

Crash:

```
[wrampazz@wrampazz avocado.dev]$ selftests/pre_release/jobs/timesensitive.py
JOB ID     : 5c1cf735be942802efc655a82ec84e46c1301080
JOB LOG    : /home/wrampazz/avocado/job-results/job-2020-08-27T16.12-5c1cf73/job.log

Avocado crashed: TypeError: expected str, bytes or os.PathLike object, not NoneType
Traceback (most recent call last):

  File "/home/wrampazz/src/avocado/avocado.dev/avocado/core/job.py", line 605, in run_tests
    summary |= suite.run(self)

  File "/home/wrampazz/src/avocado/avocado.dev/avocado/core/suite.py", line 266, in run
    return self.runner.run_suite(job, self)

  File "/home/wrampazz/src/avocado/avocado.dev/avocado/plugins/runner_nrunner.py", line 237, in run_suite
    loop.run_until_complete(asyncio.wait_for(asyncio.gather(*workers),

  File "/usr/lib64/python3.8/asyncio/base_events.py", line 616, in run_until_complete
    return future.result()

  File "/usr/lib64/python3.8/asyncio/tasks.py", line 455, in wait_for
    return await fut

  File "/home/wrampazz/src/avocado/avocado.dev/avocado/core/task/statemachine.py", line 155, in run
    await self.start()

  File "/home/wrampazz/src/avocado/avocado.dev/avocado/core/task/statemachine.py", line 113, in start
    start_ok = await self._spawner.spawn_task(runtime_task)

  File "/home/wrampazz/src/avocado/avocado.dev/avocado/plugins/spawners/process.py", line 29, in spawn_task
    runtime_task.spawner_handle = await asyncio.create_subprocess_exec(

  File "/usr/lib64/python3.8/asyncio/subprocess.py", line 236, in create_subprocess_exec
    transport, protocol = await loop.subprocess_exec(

  File "/usr/lib64/python3.8/asyncio/base_events.py", line 1630, in subprocess_exec
    transport = await self._make_subprocess_transport(

  File "/usr/lib64/python3.8/asyncio/unix_events.py", line 197, in _make_subprocess_transport
    transp = _UnixSubprocessTransport(self, protocol, args, shell,

  File "/usr/lib64/python3.8/asyncio/base_subprocess.py", line 36, in __init__
    self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,

  File "/usr/lib64/python3.8/asyncio/unix_events.py", line 789, in _start
    self._proc = subprocess.Popen(

  File "/usr/lib64/python3.8/subprocess.py", line 854, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,

  File "/usr/lib64/python3.8/subprocess.py", line 1637, in _execute_child
    self.pid = _posixsubprocess.fork_exec(

TypeError: expected str, bytes or os.PathLike object, not NoneType

Please include the traceback info and command line used on your bug report
Report bugs visiting https://github.com/avocado-framework/avocado/issues/new
```

--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `selftests/pre_release/jobs/timesensitive.py`
Content:
```
1 #!/bin/env python3
2 
3 import os
4 import sys
5 
6 from avocado.core.job import Job
7 
8 THIS_DIR = os.path.dirname(os.path.abspath(__file__))
9 ROOT_DIR = os.path.dirname(os.path.dirname(os.path.dirname(THIS_DIR)))
10 
11 
12 CONFIG = {
13     'run.test_runner': 'nrunner',
14     'run.references': [os.path.join(ROOT_DIR, 'selftests', 'unit'),
15                        os.path.join(ROOT_DIR, 'selftests', 'functional')],
16     'filter.by_tags.tags': ['parallel:1'],
17     'nrunner.max_parallel_tasks': 1,
18     }
19 
20 
21 if __name__ == '__main__':
22     with Job(CONFIG) as j:
23         os.environ['AVOCADO_CHECK_LEVEL'] = '3'
24         sys.exit(j.run())
25
```
--- 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/selftests/pre_release/jobs/timesensitive.py b/selftests/pre_release/jobs/timesensitive.py
--- a/selftests/pre_release/jobs/timesensitive.py
+++ b/selftests/pre_release/jobs/timesensitive.py
@@ -14,11 +14,12 @@
     'run.references': [os.path.join(ROOT_DIR, 'selftests', 'unit'),
                        os.path.join(ROOT_DIR, 'selftests', 'functional')],
     'filter.by_tags.tags': ['parallel:1'],
+    'nrunner.status_server_uri': '127.0.0.1:8888',
     'nrunner.max_parallel_tasks': 1,
     }
 
 
 if __name__ == '__main__':
-    with Job(CONFIG) as j:
+    with Job.from_config(CONFIG) as j:
         os.environ['AVOCADO_CHECK_LEVEL'] = '3'
         sys.exit(j.run())

{"golden_diff": "diff --git a/selftests/pre_release/jobs/timesensitive.py b/selftests/pre_release/jobs/timesensitive.py\n--- a/selftests/pre_release/jobs/timesensitive.py\n+++ b/selftests/pre_release/jobs/timesensitive.py\n@@ -14,11 +14,12 @@\n     'run.references': [os.path.join(ROOT_DIR, 'selftests', 'unit'),\n                        os.path.join(ROOT_DIR, 'selftests', 'functional')],\n     'filter.by_tags.tags': ['parallel:1'],\n+    'nrunner.status_server_uri': '127.0.0.1:8888',\n     'nrunner.max_parallel_tasks': 1,\n     }\n \n \n if __name__ == '__main__':\n-    with Job(CONFIG) as j:\n+    with Job.from_config(CONFIG) as j:\n         os.environ['AVOCADO_CHECK_LEVEL'] = '3'\n         sys.exit(j.run())\n", "issue": "[Bug] Avocado crash with TypeError\nWith the following change on the time-sensitive job Avocado crashes:\r\n\r\n```python\r\ndiff --git a/selftests/pre_release/jobs/timesensitive.py b/selftests/pre_release/jobs/timesensitive.py\r\nindex a9fbebcd..456719aa 100755\r\n--- a/selftests/pre_release/jobs/timesensitive.py\r\n+++ b/selftests/pre_release/jobs/timesensitive.py\r\n@@ -4,6 +4,7 @@ import os\r\n import sys\r\n \r\n from avocado.core.job import Job\r\n+from avocado.core.suite import TestSuite\r\n \r\n THIS_DIR = os.path.dirname(os.path.abspath(__file__))\r\n ROOT_DIR = os.path.dirname(os.path.dirname(os.path.dirname(THIS_DIR)))\r\n@@ -19,6 +20,7 @@ CONFIG = {\r\n \r\n \r\n if __name__ == '__main__':\r\n-    with Job(CONFIG) as j:\r\n+    suite = TestSuite.from_config(CONFIG)\r\n+    with Job(CONFIG, [suite]) as j:\r\n         os.environ['AVOCADO_CHECK_LEVEL'] = '3'\r\n         sys.exit(j.run())\r\n```\r\n\r\nCrash:\r\n\r\n```\r\n[wrampazz@wrampazz avocado.dev]$ selftests/pre_release/jobs/timesensitive.py\r\nJOB ID     : 5c1cf735be942802efc655a82ec84e46c1301080\r\nJOB LOG    : /home/wrampazz/avocado/job-results/job-2020-08-27T16.12-5c1cf73/job.log\r\n\r\nAvocado crashed: TypeError: expected str, bytes or os.PathLike object, not NoneType\r\nTraceback (most recent call last):\r\n\r\n  File \"/home/wrampazz/src/avocado/avocado.dev/avocado/core/job.py\", line 605, in run_tests\r\n    summary |= suite.run(self)\r\n\r\n  File \"/home/wrampazz/src/avocado/avocado.dev/avocado/core/suite.py\", line 266, in run\r\n    return self.runner.run_suite(job, self)\r\n\r\n  File \"/home/wrampazz/src/avocado/avocado.dev/avocado/plugins/runner_nrunner.py\", line 237, in run_suite\r\n    loop.run_until_complete(asyncio.wait_for(asyncio.gather(*workers),\r\n\r\n  File \"/usr/lib64/python3.8/asyncio/base_events.py\", line 616, in run_until_complete\r\n    return future.result()\r\n\r\n  File \"/usr/lib64/python3.8/asyncio/tasks.py\", line 455, in wait_for\r\n    return await fut\r\n\r\n  File \"/home/wrampazz/src/avocado/avocado.dev/avocado/core/task/statemachine.py\", line 155, in run\r\n    await self.start()\r\n\r\n  File \"/home/wrampazz/src/avocado/avocado.dev/avocado/core/task/statemachine.py\", line 113, in start\r\n    start_ok = await self._spawner.spawn_task(runtime_task)\r\n\r\n  File \"/home/wrampazz/src/avocado/avocado.dev/avocado/plugins/spawners/process.py\", line 29, in spawn_task\r\n    runtime_task.spawner_handle = await asyncio.create_subprocess_exec(\r\n\r\n  File \"/usr/lib64/python3.8/asyncio/subprocess.py\", line 236, in create_subprocess_exec\r\n    transport, protocol = await loop.subprocess_exec(\r\n\r\n  File \"/usr/lib64/python3.8/asyncio/base_events.py\", line 1630, in subprocess_exec\r\n    transport = await self._make_subprocess_transport(\r\n\r\n  File \"/usr/lib64/python3.8/asyncio/unix_events.py\", line 197, in _make_subprocess_transport\r\n    transp = _UnixSubprocessTransport(self, protocol, args, shell,\r\n\r\n  File \"/usr/lib64/python3.8/asyncio/base_subprocess.py\", line 36, in __init__\r\n    self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,\r\n\r\n  File \"/usr/lib64/python3.8/asyncio/unix_events.py\", line 789, in _start\r\n    self._proc = subprocess.Popen(\r\n\r\n  File \"/usr/lib64/python3.8/subprocess.py\", line 854, in __init__\r\n    self._execute_child(args, executable, preexec_fn, close_fds,\r\n\r\n  File \"/usr/lib64/python3.8/subprocess.py\", line 1637, in _execute_child\r\n    self.pid = _posixsubprocess.fork_exec(\r\n\r\nTypeError: expected str, bytes or os.PathLike object, not NoneType\r\n\r\nPlease include the traceback info and command line used on your bug report\r\nReport bugs visiting https://github.com/avocado-framework/avocado/issues/new\r\n```\n", "before_files": [{"content": "#!/bin/env python3\n\nimport os\nimport sys\n\nfrom avocado.core.job import Job\n\nTHIS_DIR = os.path.dirname(os.path.abspath(__file__))\nROOT_DIR = os.path.dirname(os.path.dirname(os.path.dirname(THIS_DIR)))\n\n\nCONFIG = {\n    'run.test_runner': 'nrunner',\n    'run.references': [os.path.join(ROOT_DIR, 'selftests', 'unit'),\n                       os.path.join(ROOT_DIR, 'selftests', 'functional')],\n    'filter.by_tags.tags': ['parallel:1'],\n    'nrunner.max_parallel_tasks': 1,\n    }\n\n\nif __name__ == '__main__':\n    with Job(CONFIG) as j:\n        os.environ['AVOCADO_CHECK_LEVEL'] = '3'\n        sys.exit(j.run())\n", "path": "selftests/pre_release/jobs/timesensitive.py"}], "after_files": [{"content": "#!/bin/env python3\n\nimport os\nimport sys\n\nfrom avocado.core.job import Job\n\nTHIS_DIR = os.path.dirname(os.path.abspath(__file__))\nROOT_DIR = os.path.dirname(os.path.dirname(os.path.dirname(THIS_DIR)))\n\n\nCONFIG = {\n    'run.test_runner': 'nrunner',\n    'run.references': [os.path.join(ROOT_DIR, 'selftests', 'unit'),\n                       os.path.join(ROOT_DIR, 'selftests', 'functional')],\n    'filter.by_tags.tags': ['parallel:1'],\n    'nrunner.status_server_uri': '127.0.0.1:8888',\n    'nrunner.max_parallel_tasks': 1,\n    }\n\n\nif __name__ == '__main__':\n    with Job.from_config(CONFIG) as j:\n        os.environ['AVOCADO_CHECK_LEVEL'] = '3'\n        sys.exit(j.run())\n", "path": "selftests/pre_release/jobs/timesensitive.py"}]}