def _save_file(self, dest, response):
        content_length = int(response.headers['content-length'])
        msg = '[?] {0} length = {1}'.format(dest, 
            convert_byte_size(content_length))
        print(msg)
        logger.info(msg)

        with open(dest, 'wb') as f:
            dl = 0
            for chunk in response.iter_content(chunk_size=1024*256):
                if chunk:
                    dl += len(chunk)
                    done = int(50 * dl / content_length)
                    f.write(chunk)
                    f.flush()
                    if not self._is_async:
                        self.print_progress_bar(done, dl, content_length)
        print()
        msg = '\n[+] Finished downloading {0}'.format(dest)
        logging.info(msg)
        print(msg)
 def test_megabyte(self):
     self.assertEqual(convert_byte_size(self._size5), '1.0MB')
 def test_kilobyte(self):
     self.assertEqual(convert_byte_size(self._size4), '1.0KB')
 def test_zero_size(self):
     self.assertEqual(convert_byte_size(self._size3), '0B')
 def test_negative_size(self):
     with self.assertRaises(ValueError):
         convert_byte_size(self._size2)
 def test_none_size(self):
     with self.assertRaises(TypeError):
         convert_byte_size(self._size1)