adding download test with md5 check
authorgcmalloc <gcmalloc@gmail.com>
Fri, 28 Sep 2012 13:34:56 +0000 (15:34 +0200)
committergcmalloc <gcmalloc@gmail.com>
Fri, 12 Oct 2012 18:24:58 +0000 (20:24 +0200)
test/test_download.py [new file with mode: 0644]

diff --git a/test/test_download.py b/test/test_download.py
new file mode 100644 (file)
index 0000000..ff0d693
--- /dev/null
@@ -0,0 +1,37 @@
+#!/usr/bin/env python2
+import unittest
+import hashlib
+import os
+
+from youtube_dl.FileDownloader import FileDownloader
+from youtube_dl.InfoExtractors  import YoutubeIE
+
+class DownloadTest(unittest.TestCase):
+    #calculated with the md5sum utility
+    #md5sum (GNU coreutils) 8.19
+    YOUTUBE_MD5 = "ba4092da68c9ded8ef3aaace5ffd1860"
+    YOUTUBE_URL = "http://www.youtube.com/watch?v=u0VbyYcljx8&feature=related"
+    YOUTUBE_FILE = "u0VbyYcljx8.flv"
+
+    def test_youtube(self):
+        #let's download a file from youtube
+        global YOUTUBE_URL
+        fd = FileDownloader({})
+        fd.add_info_extractor(YoutubeIE())
+        fd.download([DownloadTest.YOUTUBE_URL])
+        self.assertTrue(os.path.exists(DownloadTest.YOUTUBE_FILE))
+        md5_down_file = md5_for_file(DownloadTest.YOUTUBE_FILE)
+        self.assertEqual(md5_down_file, DownloadTest.YOUTUBE_MD5)
+
+    def cleanUp(self):
+        if os.path.exists(DownloadTest.YOUTUBE_FILE):
+            os.remove(DownloadTest.YOUTUBE_FILE)
+
+def md5_for_file(f, block_size=2**20):
+    md5 = hashlib.md5()
+    while True:
+        data = f.read(block_size)
+        if not data:
+            break
+        md5.update(data)
+        return md5.digest()