Browse Source

Check input on update_stats method

doc-issue-template
MrS0m30n3 8 years ago
parent
commit
5ad37c1646
2 changed files with 36 additions and 2 deletions
  1. 27
      tests/test_ditem.py
  2. 11
      youtube_dl_gui/downloadmanager.py

27
tests/test_ditem.py

@ -178,6 +178,33 @@ class TestUpdateStats(unittest.TestCase):
def test_update_stats_invalid_input(self):
self.assertRaises(AssertionError, self.ditem.update_stats, [])
def test_update_stats_empty_strings(self):
self.ditem.update_stats({"filename": "",
"extension": "",
"filesize": "",
"percent": "",
"speed": "",
"eta": "",
"status": ""})
self.assertEqual(
self.ditem.progress_stats,
{"filename": "url",
"extension": "-",
"filesize": "-",
"percent": "0%",
"speed": "-",
"eta": "-",
"status": "Queued"}
)
def test_update_stats_not_string(self):
self.ditem.update_stats({"filename": None, "status": 1234, "eta": False})
self.assertEqual(self.ditem.progress_stats["filename"], "url")
self.assertEqual(self.ditem.progress_stats["status"], "Queued")
self.assertEqual(self.ditem.progress_stats["eta"], "-")
class TestDownloadItemPrivate(unittest.TestCase):

11
youtube_dl_gui/downloadmanager.py

@ -122,7 +122,7 @@ class DownloadItem(object):
self.filenames = []
self.extensions = []
self.progress_stats = {
self.default_values = {
"filename": self.url,
"extension": "-",
"filesize": "-",
@ -132,6 +132,8 @@ class DownloadItem(object):
"status": self.stage
}
self.progress_stats = dict(self.default_values)
def get_files(self):
"""Returns a list that contains all the system files bind to this object."""
files = []
@ -148,7 +150,12 @@ class DownloadItem(object):
for key in stats_dict:
if key in self.progress_stats:
self.progress_stats[key] = stats_dict[key]
value = stats_dict[key]
if not isinstance(value, basestring) or not value:
self.progress_stats[key] = self.default_values[key]
else:
self.progress_stats[key] = value
# Extract extra stuff
if key == "filename":

Loading…
Cancel
Save