prompt: 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()
  
  ```
  
golden_diff: 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())
  
verification_info: {"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"}]}