(self, *, with_env=False, use_bytes=False)
| 3280 | return [f'"{arg}"' if " " in arg.strip() else arg for arg in args] |
| 3281 | |
| 3282 | def create_args(self, *, with_env=False, use_bytes=False): |
| 3283 | self.exitcode = 17 |
| 3284 | |
| 3285 | filename = os_helper.TESTFN |
| 3286 | self.addCleanup(os_helper.unlink, filename) |
| 3287 | |
| 3288 | if not with_env: |
| 3289 | code = 'import sys; sys.exit(%s)' % self.exitcode |
| 3290 | else: |
| 3291 | self.env = dict(os.environ) |
| 3292 | # create an unique key |
| 3293 | self.key = str(uuid.uuid4()) |
| 3294 | self.env[self.key] = self.key |
| 3295 | # read the variable from os.environ to check that it exists |
| 3296 | code = ('import sys, os; magic = os.environ[%r]; sys.exit(%s)' |
| 3297 | % (self.key, self.exitcode)) |
| 3298 | |
| 3299 | with open(filename, "w", encoding="utf-8") as fp: |
| 3300 | fp.write(code) |
| 3301 | |
| 3302 | program = sys.executable |
| 3303 | args = self.quote_args([program, filename]) |
| 3304 | if use_bytes: |
| 3305 | program = os.fsencode(program) |
| 3306 | args = [os.fsencode(a) for a in args] |
| 3307 | self.env = {os.fsencode(k): os.fsencode(v) |
| 3308 | for k, v in self.env.items()} |
| 3309 | |
| 3310 | return program, args |
| 3311 | |
| 3312 | @warnings_helper.ignore_fork_in_thread_deprecation_warnings() |
| 3313 | @requires_os_func('spawnl') |
no test coverage detected