##// END OF EJS Templates
test that FileContentsManager.open turns permission error into 403
Min RK -
Show More
@@ -5,6 +5,7 b' from __future__ import print_function'
5 import os
5 import os
6 import time
6 import time
7
7
8 from nose import SkipTest
8 from tornado.web import HTTPError
9 from tornado.web import HTTPError
9 from unittest import TestCase
10 from unittest import TestCase
10 from tempfile import NamedTemporaryFile
11 from tempfile import NamedTemporaryFile
@@ -128,6 +129,25 b' class TestFileContentsManager(TestCase):'
128 sorted(dir_model['content'], key=lambda x: x['name']),
129 sorted(dir_model['content'], key=lambda x: x['name']),
129 [symlink_model, file_model],
130 [symlink_model, file_model],
130 )
131 )
132
133 def test_403(self):
134 if hasattr(os, 'getuid'):
135 if os.getuid() == 0:
136 raise SkipTest("Can't test permissions as root")
137
138 with TemporaryDirectory() as td:
139 cm = FileContentsManager(root_dir=td)
140 model = cm.new_untitled(type='file')
141 os_path = cm._get_os_path(model['path'])
142
143 os.chmod(os_path, 0o400)
144 try:
145 with cm.open(os_path, 'w') as f:
146 f.write(u"don't care")
147 except HTTPError as e:
148 self.assertEqual(e.status_code, 403)
149 else:
150 self.fail("Should have raised HTTPError(403)")
131
151
132
152
133 class TestContentsManager(TestCase):
153 class TestContentsManager(TestCase):
General Comments 0
You need to be logged in to leave comments. Login now