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()
Beispiel #2
0
 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)
Beispiel #4
0
 def mime_type(self, filename):
     return file_mime.mime_type(filename)
Beispiel #5
0
 def test_mp4_wrong_extension(self):
     self.assertEqual('video/mp4',
                      file_mime.mime_type(self.mp4_file_wrong_extension))
Beispiel #6
0
 def test_mp4(self):
     self.assertEqual('video/mp4', file_mime.mime_type(self.mp4_file))
Beispiel #7
0
 def test_jpg_wrong_extension(self):
     self.assertEqual('image/jpeg',
                      file_mime.mime_type(self.jpg_file_wrong_extension))
Beispiel #8
0
 def test_jpg(self):
     self.assertEqual('image/jpeg', file_mime.mime_type(self.jpg_file))
Beispiel #9
0
 def test_png_wrong_extension(self):
     self.assertEqual('image/png',
                      file_mime.mime_type(self.png_file_wrong_extension))
Beispiel #10
0
 def test_png(self):
     self.assertEqual('image/png', file_mime.mime_type(self.png_file))
Beispiel #11
0
 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))