diff options
Diffstat (limited to 'tools/complex_permissions_test.py')
-rwxr-xr-x | tools/complex_permissions_test.py | 223 |
1 files changed, 0 insertions, 223 deletions
diff --git a/tools/complex_permissions_test.py b/tools/complex_permissions_test.py deleted file mode 100755 index 9f0fcd7e7..000000000 --- a/tools/complex_permissions_test.py +++ /dev/null @@ -1,223 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -# Copyright 2018-2019 the Deno authors. All rights reserved. MIT license. -import os -import unittest - -import http_server -from test_util import DenoTestCase, run_tests -from util import root_path, tty_capture - -PERMISSIONS_PROMPT_TEST_TS = "tools/complex_permissions_test.ts" - -PROMPT_PATTERN = b'⚠️' -PERMISSION_DENIED_PATTERN = b'PermissionDenied: permission denied' - - -@unittest.skipIf(os.name == 'nt', "Unable to test tty on Windows") -class BaseComplexPermissionTest(DenoTestCase): - def _run_deno(self, flags, args): - "Returns (return_code, stdout, stderr)." - cmd = ([self.deno_exe, "run", "--no-prompt"] + flags + - [PERMISSIONS_PROMPT_TEST_TS] + args) - return tty_capture(cmd, b'') - - -class BaseReadWritePermissionsTest(object): - test_type = None - - def test_inside_project_dir(self): - code, _stdout, stderr = self._run_deno( - ["--allow-" + self.test_type + "=" + root_path], - [self.test_type, "package.json", "cli/tests/subdir/config.json"]) - assert code == 0 - assert PROMPT_PATTERN not in stderr - assert PERMISSION_DENIED_PATTERN not in stderr - - def test_outside_test_dir(self): - code, _stdout, stderr = self._run_deno([ - "--allow-" + self.test_type + "=" + os.path.join( - root_path, "cli/tests") - ], [self.test_type, "package.json"]) - assert code == 1 - assert PROMPT_PATTERN not in stderr - assert PERMISSION_DENIED_PATTERN in stderr - - def test_inside_test_dir(self): - code, _stdout, stderr = self._run_deno([ - "--allow-" + self.test_type + "=" + os.path.join( - root_path, "cli/tests") - ], [self.test_type, "cli/tests/subdir/config.json"]) - assert code == 0 - assert PROMPT_PATTERN not in stderr - assert PERMISSION_DENIED_PATTERN not in stderr - - def test_outside_test_and_js_dir(self): - code, _stdout, stderr = self._run_deno([ - "--allow-" + self.test_type + "=" + os.path.join( - root_path, "cli/tests") + "," + os.path.join( - root_path, "cli/js") - ], [self.test_type, "package.json"]) - assert code == 1 - assert PROMPT_PATTERN not in stderr - assert PERMISSION_DENIED_PATTERN in stderr - - def test_inside_test_and_js_dir(self): - code, _stdout, stderr = self._run_deno([ - "--allow-" + self.test_type + "=" + os.path.join( - root_path, "cli/tests") + "," + os.path.join( - root_path, "cli/js") - ], [ - self.test_type, "cli/js/dir_test.ts", - "cli/tests/subdir/config.json" - ]) - assert code == 0 - assert PROMPT_PATTERN not in stderr - assert PERMISSION_DENIED_PATTERN not in stderr - - def test_relative(self): - # Save and restore curdir - saved_curdir = os.getcwd() - os.chdir(root_path) - code, _stdout, stderr = self._run_deno( - ["--allow-" + self.test_type + "=" + "./cli/tests"], - [self.test_type, "cli/tests/subdir/config.json"]) - assert code == 0 - assert PROMPT_PATTERN not in stderr - assert PERMISSION_DENIED_PATTERN not in stderr - os.chdir(saved_curdir) - - def test_no_prefix(self): - # Save and restore curdir - saved_curdir = os.getcwd() - os.chdir(root_path) - code, _stdout, stderr = self._run_deno( - ["--allow-" + self.test_type + "=" + "cli/tests"], - [self.test_type, "cli/tests/subdir/config.json"]) - assert code == 0 - assert PROMPT_PATTERN not in stderr - assert PERMISSION_DENIED_PATTERN not in stderr - os.chdir(saved_curdir) - - -class TestReadPermissions(BaseReadWritePermissionsTest, - BaseComplexPermissionTest): - test_type = "read" - - -class TestWritePermissions(BaseReadWritePermissionsTest, - BaseComplexPermissionTest): - test_type = "write" - - -class TestNetFetchPermissions(BaseComplexPermissionTest): - test_type = "netFetch" - - def test_allow_localhost_4545(self): - code, _stdout, stderr = self._run_deno( - ["--allow-net=localhost:4545"], - [self.test_type, "http://localhost:4545"]) - assert code == 0 - assert PROMPT_PATTERN not in stderr - assert PERMISSION_DENIED_PATTERN not in stderr - - def test_allow_deno_land(self): - code, _stdout, stderr = self._run_deno( - ["--allow-net=deno.land"], - [self.test_type, "http://localhost:4545"]) - assert code == 1 - assert PROMPT_PATTERN not in stderr - assert PERMISSION_DENIED_PATTERN in stderr - - def test_allow_localhost_4545_fail(self): - code, _stdout, stderr = self._run_deno( - ["--allow-net=localhost:4545"], - [self.test_type, "http://localhost:4546"]) - assert code == 1 - assert PROMPT_PATTERN not in stderr - assert PERMISSION_DENIED_PATTERN in stderr - - def test_allow_localhost(self): - code, _stdout, stderr = self._run_deno(["--allow-net=localhost"], [ - self.test_type, "http://localhost:4545", "http://localhost:4546", - "http://localhost:4547" - ]) - assert code == 0 - assert PROMPT_PATTERN not in stderr - assert PERMISSION_DENIED_PATTERN not in stderr - - -class TestNetDialPermissions(BaseComplexPermissionTest): - test_type = "netDial" - - def test_allow_localhost_ip_4555(self): - code, _stdout, stderr = self._run_deno( - ["--allow-net=127.0.0.1:4545"], [self.test_type, "127.0.0.1:4545"]) - assert code == 0 - assert PROMPT_PATTERN not in stderr - assert PERMISSION_DENIED_PATTERN not in stderr - - def test_allow_deno_land(self): - code, _stdout, stderr = self._run_deno( - ["--allow-net=deno.land"], [self.test_type, "127.0.0.1:4545"]) - assert code == 1 - assert PROMPT_PATTERN not in stderr - assert PERMISSION_DENIED_PATTERN in stderr - - def test_allow_localhost_ip_4545_fail(self): - code, _stdout, stderr = self._run_deno( - ["--allow-net=127.0.0.1:4545"], [self.test_type, "127.0.0.1:4546"]) - assert code == 1 - assert PROMPT_PATTERN not in stderr - assert PERMISSION_DENIED_PATTERN in stderr - - def test_allow_localhost_ip(self): - code, _stdout, stderr = self._run_deno(["--allow-net=127.0.0.1"], [ - self.test_type, "127.0.0.1:4545", "127.0.0.1:4546", - "127.0.0.1:4547" - ]) - assert code == 0 - assert PROMPT_PATTERN not in stderr - assert PERMISSION_DENIED_PATTERN not in stderr - - -class TestNetListenPermissions(BaseComplexPermissionTest): - test_type = "netListen" - - def test_allow_localhost_4555(self): - code, _stdout, stderr = self._run_deno( - ["--allow-net=localhost:4555"], [self.test_type, "localhost:4555"]) - assert code == 0 - assert PROMPT_PATTERN not in stderr - assert PERMISSION_DENIED_PATTERN not in stderr - - def test_allow_deno_land(self): - code, _stdout, stderr = self._run_deno( - ["--allow-net=deno.land"], [self.test_type, "localhost:4545"]) - assert code == 1 - assert PROMPT_PATTERN not in stderr - assert PERMISSION_DENIED_PATTERN in stderr - - def test_allow_localhost_4555_fail(self): - code, _stdout, stderr = self._run_deno( - ["--allow-net=localhost:4555"], [self.test_type, "localhost:4556"]) - assert code == 1 - assert PROMPT_PATTERN not in stderr - assert PERMISSION_DENIED_PATTERN in stderr - - def test_allow_localhost(self): - code, _stdout, stderr = self._run_deno(["--allow-net=localhost"], [ - self.test_type, "localhost:4555", "localhost:4556", - "localhost:4557" - ]) - assert code == 0 - assert PROMPT_PATTERN not in stderr - assert PERMISSION_DENIED_PATTERN not in stderr - - -def complex_permissions_tests(): - return BaseComplexPermissionTest.__subclasses__() - - -if __name__ == "__main__": - run_tests() |