def test_makereadonly_dir(self): temp = tempfile.mkdtemp() try: self.assertTrue(is_writable(temp)) make_readonly(temp) self.assertFalse(is_writable(temp)) finally: rmtree_readonly(temp)
def test_makereadonly_dir(self): temp = tempfile.mkdtemp() try: path = Path(temp) self.assertTrue(stat.S_IWUSR & path.stat()[stat.ST_MODE]) make_readonly(temp) self.assertFalse(stat.S_IWUSR & path.stat()[stat.ST_MODE]) finally: rmtree_readonly(temp)
def test_rmtree_readonly(self): d = tempfile.mkdtemp() path = Path(d) try: (path / 'a file').open('w') (path / 'a directory').mkdir() (path / 'a directory' / 'another file').open('w') make_readonly(path) self.assertTrue(path.is_dir()) finally: rmtree_readonly(path) self.assertFalse(path.is_dir())
def test_save_crops_read_only_directory(self): "Can't write crops to a read-only directory" # This case is doing more than simply testing filesystem behavour # because it tests the failure code in InselectImage temp = tempfile.mkdtemp() try: make_readonly(temp) i = InselectImage(TESTDATA / 'test_segment.png') with self.assertRaises(InselectError): i.save_crops([Rect(0, 0, 1, 1)], [Path(temp) / 'x.png']) finally: rmtree_readonly(temp)
def test_open_readonly_doc(self, mock_warning): "User is warned when opening a read-only inselect document" with temp_directory_with_files(TESTDATA / 'test_segment.inselect', TESTDATA / 'test_segment.png', ) as tempdir: make_readonly(tempdir / 'test_segment.inselect') self.window.open_file(tempdir / 'test_segment.inselect') self.assertTrue(mock_warning.called) expected = (u'The file [test_segment.inselect] is read-only.\n\n' u'You will not be able to save any changes that you ' 'make.') self.assertTrue(expected in mock_warning.call_args[0])
def test_open_readonly_doc(self, mock_warning): "User is warned when opening a read-only inselect document" with temp_directory_with_files( TESTDATA / 'shapes.inselect', TESTDATA / 'shapes.png', ) as tempdir: make_readonly(tempdir / 'shapes.inselect') self.window.open_file(path=tempdir / 'shapes.inselect') self.assertTrue(mock_warning.called) expected = ('The file [shapes.inselect] is read-only.\n\n' 'You will not be able to save any changes that you ' 'make.') self.assertTrue(expected in mock_warning.call_args[0])
def test_thumbnail_read_only(self): "Can't write thumbnail to a read-only directory" # This case is doing more than simply testing filesystem behavour # because it tests the failure code in InselectDocument with temp_directory_with_files(TESTDATA / 'test_segment.png') as tempdir: mode = make_readonly(tempdir) self.assertRaises( InselectError, InselectDocument.new_from_scan, tempdir / 'test_segment.png', thumbnail_width_pixels=2048 ) # Restor the original mode tempdir.chmod(mode)
def test_thumbnail_read_only(self): "Can't write thumbnail to a read-only directory" # This case is doing more than simply testing filesystem behavour # because it tests the failure code in InselectDocument with temp_directory_with_files(TESTDATA / 'shapes.png') as tempdir: mode = make_readonly(tempdir) self.assertRaises(InselectError, InselectDocument.new_from_scan, tempdir / 'shapes.png', thumbnail_width_pixels=2048) # Restor the original mode tempdir.chmod(mode)
def test_ensure_thumbnail_read_only(self): "Can't write thumbnail to a read-only directory" # This case is doing more than simply testing filesystem behavour # because it tests the failure code in InselectDocument source_doc = TESTDATA / 'test_segment.inselect' source_img = TESTDATA / 'test_segment.png' with temp_directory_with_files(source_doc, source_img) as tempdir: doc = InselectDocument.load(tempdir / 'test_segment.inselect') mode = make_readonly(tempdir) self.assertRaises(InselectError, doc.ensure_thumbnail) # Restor the original mode tempdir.chmod(mode)
def test_makereadonly_file(self): f = tempfile.NamedTemporaryFile() path = Path(f.name) self.assertTrue(is_writable(path)) make_readonly(path) self.assertFalse(is_writable(path))
def test_makereadonly_file(self): f = tempfile.NamedTemporaryFile() path = Path(f.name) self.assertTrue(stat.S_IWUSR & path.stat()[stat.ST_MODE]) make_readonly(path) self.assertFalse(stat.S_IWUSR & path.stat()[stat.ST_MODE])