|
@ -144,7 +144,9 @@ class TestUpdateStats(unittest.TestCase): |
|
|
def test_update_stats(self): |
|
|
def test_update_stats(self): |
|
|
path = os.path.join("/home", "user") |
|
|
path = os.path.join("/home", "user") |
|
|
|
|
|
|
|
|
self.ditem.update_stats({"filename": "somefilename", |
|
|
|
|
|
|
|
|
# 1st playlist item |
|
|
|
|
|
|
|
|
|
|
|
self.ditem.update_stats({"filename": "somefilename.f1", |
|
|
"extension": ".mp4", |
|
|
"extension": ".mp4", |
|
|
"filesize": "9.45MiB", |
|
|
"filesize": "9.45MiB", |
|
|
"percent": "2.0%", |
|
|
"percent": "2.0%", |
|
@ -156,7 +158,7 @@ class TestUpdateStats(unittest.TestCase): |
|
|
"playlist_index": "1"}) |
|
|
"playlist_index": "1"}) |
|
|
|
|
|
|
|
|
self.assertEqual(self.ditem.path, path) |
|
|
self.assertEqual(self.ditem.path, path) |
|
|
self.assertEqual(self.ditem.filenames, ["somefilename"]) |
|
|
|
|
|
|
|
|
self.assertEqual(self.ditem.filenames, ["somefilename.f1"]) |
|
|
self.assertEqual(self.ditem.extensions, [".mp4"]) |
|
|
self.assertEqual(self.ditem.extensions, [".mp4"]) |
|
|
|
|
|
|
|
|
# Do not update filesizes unless percentage is 100% |
|
|
# Do not update filesizes unless percentage is 100% |
|
@ -165,7 +167,7 @@ class TestUpdateStats(unittest.TestCase): |
|
|
|
|
|
|
|
|
self.assertEqual( |
|
|
self.assertEqual( |
|
|
self.ditem.progress_stats, |
|
|
self.ditem.progress_stats, |
|
|
{"filename": "somefilename", |
|
|
|
|
|
|
|
|
{"filename": "somefilename.f1", |
|
|
"extension": ".mp4", |
|
|
"extension": ".mp4", |
|
|
"filesize": "9.45MiB", |
|
|
"filesize": "9.45MiB", |
|
|
"percent": "2.0%", |
|
|
"percent": "2.0%", |
|
@ -186,9 +188,47 @@ class TestUpdateStats(unittest.TestCase): |
|
|
self.assertEqual(self.ditem.filesizes, [9909043.20]) |
|
|
self.assertEqual(self.ditem.filesizes, [9909043.20]) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
self.ditem.update_stats({"filename": "someotherfilename", |
|
|
|
|
|
|
|
|
self.ditem.update_stats({"filename": "somefilename.f2", |
|
|
"extension": ".m4a", |
|
|
"extension": ".m4a", |
|
|
"filesize": "2.00MiB", |
|
|
|
|
|
|
|
|
"filesize": "2.22MiB", |
|
|
|
|
|
"percent": "33.0%", |
|
|
|
|
|
"speed": "200.00KiB/s", |
|
|
|
|
|
"eta": "00:20", |
|
|
|
|
|
"status": "Downloading", |
|
|
|
|
|
"path": path}) |
|
|
|
|
|
|
|
|
|
|
|
self.assertEqual(self.ditem.path, path) |
|
|
|
|
|
self.assertEqual(self.ditem.filenames, ["somefilename.f1", "somefilename.f2"]) |
|
|
|
|
|
self.assertEqual(self.ditem.extensions, [".mp4", ".m4a"]) |
|
|
|
|
|
self.assertEqual(self.ditem.filesizes, [9909043.20]) |
|
|
|
|
|
|
|
|
|
|
|
self.assertEqual( |
|
|
|
|
|
self.ditem.progress_stats, |
|
|
|
|
|
{"filename": "somefilename.f2", |
|
|
|
|
|
"extension": ".m4a", |
|
|
|
|
|
"filesize": "2.22MiB", |
|
|
|
|
|
"percent": "33.0%", |
|
|
|
|
|
"speed": "200.00KiB/s", |
|
|
|
|
|
"eta": "00:20", |
|
|
|
|
|
"status": "Downloading", |
|
|
|
|
|
"playlist_size": "10", |
|
|
|
|
|
"playlist_index": "1"} |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
# Since the percentage is 100% this should update the filesizes list |
|
|
|
|
|
self.ditem.update_stats({"filesize": "2.22MiB", |
|
|
|
|
|
"percent": "100%", |
|
|
|
|
|
"speed": "", |
|
|
|
|
|
"eta": "", |
|
|
|
|
|
"status": "Downloading"}) |
|
|
|
|
|
|
|
|
|
|
|
self.assertEqual(self.ditem.filesizes, [9909043.20, 2327838.72]) |
|
|
|
|
|
|
|
|
|
|
|
# Moving to the 2nd playlist item |
|
|
|
|
|
|
|
|
|
|
|
self.ditem.update_stats({"filename": "someotherfilename.f1", |
|
|
|
|
|
"extension": ".mp4", |
|
|
|
|
|
"filesize": "10.25MiB", |
|
|
"percent": "50.0%", |
|
|
"percent": "50.0%", |
|
|
"speed": "200.00KiB/s", |
|
|
"speed": "200.00KiB/s", |
|
|
"eta": "00:38", |
|
|
"eta": "00:38", |
|
@ -197,14 +237,17 @@ class TestUpdateStats(unittest.TestCase): |
|
|
"playlist_size": "10", |
|
|
"playlist_size": "10", |
|
|
"playlist_index": "2"}) |
|
|
"playlist_index": "2"}) |
|
|
|
|
|
|
|
|
self.assertEqual(self.ditem.filenames, ["somefilename", "someotherfilename"]) |
|
|
|
|
|
self.assertEqual(self.ditem.extensions, [".mp4", ".m4a"]) |
|
|
|
|
|
self.assertEqual(self.ditem.filesizes, [9909043.20]) |
|
|
|
|
|
|
|
|
# We must reset filenames, extensions & filesizes lists when changing playlist index |
|
|
|
|
|
# else the filesizes for the post processed files will be wrong |
|
|
|
|
|
self.assertEqual(self.ditem.filenames, ["someotherfilename.f1"]) |
|
|
|
|
|
self.assertEqual(self.ditem.extensions, [".mp4"]) |
|
|
|
|
|
self.assertEqual(self.ditem.filesizes, []) |
|
|
|
|
|
|
|
|
self.assertEqual( |
|
|
self.assertEqual( |
|
|
self.ditem.progress_stats, |
|
|
self.ditem.progress_stats, |
|
|
{"filename": "someotherfilename", |
|
|
|
|
|
"extension": ".m4a", |
|
|
|
|
|
"filesize": "2.00MiB", |
|
|
|
|
|
|
|
|
{"filename": "someotherfilename.f1", |
|
|
|
|
|
"extension": ".mp4", |
|
|
|
|
|
"filesize": "10.25MiB", |
|
|
"percent": "50.0%", |
|
|
"percent": "50.0%", |
|
|
"speed": "200.00KiB/s", |
|
|
"speed": "200.00KiB/s", |
|
|
"eta": "00:38", |
|
|
"eta": "00:38", |
|
@ -214,26 +257,74 @@ class TestUpdateStats(unittest.TestCase): |
|
|
) |
|
|
) |
|
|
|
|
|
|
|
|
# Since the percentage is 100% this should update the filesizes list |
|
|
# Since the percentage is 100% this should update the filesizes list |
|
|
self.ditem.update_stats({"filesize": "2.00MiB", |
|
|
|
|
|
|
|
|
self.ditem.update_stats({"filesize": "10.25MiB", |
|
|
"percent": "100%", |
|
|
"percent": "100%", |
|
|
"speed": "", |
|
|
"speed": "", |
|
|
"eta": "", |
|
|
"eta": "", |
|
|
"status": "Downloading"}) |
|
|
"status": "Downloading"}) |
|
|
|
|
|
|
|
|
self.assertEqual(self.ditem.filenames, ["somefilename", "someotherfilename"]) |
|
|
|
|
|
|
|
|
self.assertEqual(self.ditem.filesizes, [10747904.0]) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
self.ditem.update_stats({"filename": "someotherfilename.f2", |
|
|
|
|
|
"extension": ".m4a", |
|
|
|
|
|
"filesize": "3.33MiB", |
|
|
|
|
|
"percent": "33.0%", |
|
|
|
|
|
"speed": "200.00KiB/s", |
|
|
|
|
|
"eta": "00:30", |
|
|
|
|
|
"status": "Downloading", |
|
|
|
|
|
"path": path}) |
|
|
|
|
|
|
|
|
|
|
|
self.assertEqual(self.ditem.path, path) |
|
|
|
|
|
self.assertEqual(self.ditem.filenames, ["someotherfilename.f1", "someotherfilename.f2"]) |
|
|
self.assertEqual(self.ditem.extensions, [".mp4", ".m4a"]) |
|
|
self.assertEqual(self.ditem.extensions, [".mp4", ".m4a"]) |
|
|
self.assertEqual(self.ditem.filesizes, [9909043.20, 2097152.00]) |
|
|
|
|
|
|
|
|
self.assertEqual(self.ditem.filesizes, [10747904.0]) |
|
|
|
|
|
|
|
|
self.assertEqual( |
|
|
self.assertEqual( |
|
|
self.ditem.progress_stats, |
|
|
self.ditem.progress_stats, |
|
|
{"filename": "someotherfilename", |
|
|
|
|
|
|
|
|
{"filename": "someotherfilename.f2", |
|
|
"extension": ".m4a", |
|
|
"extension": ".m4a", |
|
|
"filesize": "2.00MiB", |
|
|
|
|
|
|
|
|
"filesize": "3.33MiB", |
|
|
|
|
|
"percent": "33.0%", |
|
|
|
|
|
"speed": "200.00KiB/s", |
|
|
|
|
|
"eta": "00:30", |
|
|
|
|
|
"status": "Downloading", |
|
|
|
|
|
"playlist_size": "10", |
|
|
|
|
|
"playlist_index": "2"} |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
# Since the percentage is 100% this should update the filesizes list |
|
|
|
|
|
self.ditem.update_stats({"filesize": "3.33MiB", |
|
|
|
|
|
"percent": "100%", |
|
|
|
|
|
"speed": "", |
|
|
|
|
|
"eta": "", |
|
|
|
|
|
"status": "Downloading"}) |
|
|
|
|
|
|
|
|
|
|
|
self.assertEqual(self.ditem.filesizes, [10747904.0, 3491758.08]) |
|
|
|
|
|
|
|
|
|
|
|
# Let's move to the 3rd playlist item |
|
|
|
|
|
|
|
|
|
|
|
# Here we mimic youtube-dl's "max downloads limit reached" |
|
|
|
|
|
# this line should not reset the filenames, extensions & filesizes lists |
|
|
|
|
|
# since we will lose the ability to play the last playlist item |
|
|
|
|
|
self.ditem.update_stats({"status": "Downloading", |
|
|
|
|
|
"playlist_size": "10", |
|
|
|
|
|
"playlist_index": "3"}) |
|
|
|
|
|
|
|
|
|
|
|
self.assertEqual(self.ditem.filenames, ["someotherfilename.f1", "someotherfilename.f2"]) |
|
|
|
|
|
self.assertEqual(self.ditem.extensions, [".mp4", ".m4a"]) |
|
|
|
|
|
self.assertEqual(self.ditem.filesizes, [10747904.0, 3491758.08]) |
|
|
|
|
|
self.assertEqual( |
|
|
|
|
|
self.ditem.progress_stats, |
|
|
|
|
|
{"filename": "someotherfilename.f2", |
|
|
|
|
|
"extension": ".m4a", |
|
|
|
|
|
"filesize": "3.33MiB", |
|
|
"percent": "100%", |
|
|
"percent": "100%", |
|
|
"speed": "-", |
|
|
"speed": "-", |
|
|
"eta": "-", |
|
|
"eta": "-", |
|
|
"status": "Downloading", |
|
|
"status": "Downloading", |
|
|
"playlist_size": "10", |
|
|
"playlist_size": "10", |
|
|
"playlist_index": "2"} |
|
|
|
|
|
|
|
|
"playlist_index": "3"} |
|
|
) |
|
|
) |
|
|
|
|
|
|
|
|
def test_update_stats_invalid_input(self): |
|
|
def test_update_stats_invalid_input(self): |
|
|