def test_download_with_auth(self): tester = file_web_server_tester(debug=self.DEBUG, users={'fred': 'flintpass'}) tester.write_temp_content([ 'file foo.txt "this is foo.txt\n"', 'file subdir/bar.txt "bar.txt\n"', 'file subdir/subberdir/baz.txt "this is baz.txt\n"', 'file emptyfile.txt', 'dir emptydir', ]) tester.start() url = tester.make_url('foo.txt') download_tmp = url_util.download_to_temp_file(url, auth=('fred', 'flintpass'), suffix='.txt') self.assertEqual('text/plain', file_mime.mime_type(download_tmp)) self.assertEqual('this is foo.txt\n', file_util.read(download_tmp, codec='utf8')) url = tester.make_url('subdir/subberdir/baz.txt') download_tmp = url_util.download_to_temp_file(url, auth=('fred', 'flintpass'), suffix='.txt') self.assertEqual('text/plain', file_mime.mime_type(download_tmp)) self.assertEqual('this is baz.txt\n', file_util.read(download_tmp, codec='utf8')) with self.assertRaises((url_compat.HTTPError, RuntimeError)) as ctx: url = tester.make_url('notthere.txt') tmp = url_util.download_to_temp_file(url) tester.stop()
def handle_request(self, environ, start_response): path_info = environ['PATH_INFO'] self.log_i('handle_request(%s)' % (path_info)) if path_info not in self._known_tarballs: return self.response_error(start_response, 404) extension = file_util.extension(path_info) if 'large' in path_info: items = [ temp_archive.item('kiwi.bin', content=self._make_large_content()), ] else: items = [ temp_archive.item('apple.txt', content='apple.txt\n'), temp_archive.item('orange.txt', content='orange.txt\n'), ] tmp_archive = temp_archive.make_temp_archive(items, extension) tmp_mime_type = file_mime.mime_type(tmp_archive) content = file_util.read(tmp_archive) headers = [ ('Content-Type', str(tmp_mime_type)), ('Content-Length', str(len(content))), ] result = self.response_success(start_response, 200, [content], headers) file_util.remove(tmp_archive) return result
def install(self, package_filename): 'Install a package.' check.check_string(package_filename) if not path.isfile(package_filename): raise native_package_error( 'Package file not found: "{}"'.format(package_filename)) mime_type = file_mime.mime_type(package_filename) if mime_type != 'application/x-xar': raise native_package_error( 'Invalid package file: "{}"'.format(package_filename)) package_filename = path.abspath(package_filename) args = [ 'installer', '-verboseR', '-pkg', package_filename, '-target', '/' ] sudo.call_sudo(args)
def mime_type(self, filename): return file_mime.mime_type(filename)
def test_mp4_wrong_extension(self): self.assertEqual('video/mp4', file_mime.mime_type(self.mp4_file_wrong_extension))
def test_mp4(self): self.assertEqual('video/mp4', file_mime.mime_type(self.mp4_file))
def test_jpg_wrong_extension(self): self.assertEqual('image/jpeg', file_mime.mime_type(self.jpg_file_wrong_extension))
def test_jpg(self): self.assertEqual('image/jpeg', file_mime.mime_type(self.jpg_file))
def test_png_wrong_extension(self): self.assertEqual('image/png', file_mime.mime_type(self.png_file_wrong_extension))
def test_png(self): self.assertEqual('image/png', file_mime.mime_type(self.png_file))
def test_mime_type(self): tmp = self.make_temp_file(content='this is text\n', suffix='.txt') self.assertEqual('text/plain', file_mime.mime_type(tmp))