From 37e3db00a264423a7cf70f663119bbc6a57990eb Mon Sep 17 00:00:00 2001 From: JaePil Jung Date: Sun, 13 Jan 2019 01:29:45 +0900 Subject: [PATCH] Add --allow-run test code (#1504) --- tools/permission_prompt_test.py | 26 +++++++++++++++++++++++++- tools/permission_prompt_test.ts | 5 ++++- 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/tools/permission_prompt_test.py b/tools/permission_prompt_test.py index 9a450143c9..ad23c6557b 100755 --- a/tools/permission_prompt_test.py +++ b/tools/permission_prompt_test.py @@ -51,7 +51,8 @@ class Prompt(object): bytes_input, allow_write=False, allow_net=False, - allow_env=False): + allow_env=False, + allow_run=False): "Returns (return_code, stdout, stderr)." cmd = [self.deno_exe, PERMISSIONS_PROMPT_TEST_TS, arg] if allow_write: @@ -60,6 +61,8 @@ class Prompt(object): cmd.append("--allow-net") if allow_env: cmd.append("--allow-env") + if allow_run: + cmd.append("--allow-run") return tty_capture(cmd, bytes_input) def warm_up(self): @@ -120,6 +123,24 @@ class Prompt(object): assert b'PermissionDenied: permission denied' in stderr assert b'Deno requests network access' in stderr + def test_run_yes(self): + code, stdout, stderr = self.run('needsRun', b'y\n') + assert code == 0 + assert stdout == b'hello' + assert b'Deno requests access to run' in stderr + + def test_run_arg(self): + code, stdout, stderr = self.run('needsRun', b'', allow_run=True) + assert code == 0 + assert stdout == b'hello' + assert stderr == b'' + + def test_run_no(self): + code, _stdout, stderr = self.run('needsRun', b'N\n') + assert code == 1 + assert b'PermissionDenied: permission denied' in stderr + assert b'Deno requests access to run' in stderr + def permission_prompt_test(deno_exe): p = Prompt(deno_exe) @@ -133,6 +154,9 @@ def permission_prompt_test(deno_exe): p.test_net_yes() p.test_net_arg() p.test_net_no() + p.test_run_yes() + p.test_run_arg() + p.test_run_no() def main(): diff --git a/tools/permission_prompt_test.ts b/tools/permission_prompt_test.ts index cf8a09805c..5165e008f4 100644 --- a/tools/permission_prompt_test.ts +++ b/tools/permission_prompt_test.ts @@ -1,4 +1,4 @@ -import { args, listen, env, exit, makeTempDirSync } from "deno"; +import { args, listen, env, exit, makeTempDirSync, run } from "deno"; const name = args[1]; const test = { @@ -10,6 +10,9 @@ const test = { }, needsNet: () => { listen("tcp", "127.0.0.1:4540"); + }, + needsRun: () => { + run({ args: ["python", "-c", "import sys; sys.stdout.write('hello')"] }); } }[name];