[tests/results] support testing 'post' metadata
This commit is contained in:
@@ -260,7 +260,7 @@ __tests__ = (
|
|||||||
"#url" : "https://www.facebook.com/facebook/photos_albums",
|
"#url" : "https://www.facebook.com/facebook/photos_albums",
|
||||||
"#class" : facebook.FacebookAlbumsExtractor,
|
"#class" : facebook.FacebookAlbumsExtractor,
|
||||||
"#pattern" : facebook.FacebookSetExtractor.pattern,
|
"#pattern" : facebook.FacebookSetExtractor.pattern,
|
||||||
"#results" : [
|
"#results" : (
|
||||||
"https://www.facebook.com/media/set/?set=a.736550598516963&type=3",
|
"https://www.facebook.com/media/set/?set=a.736550598516963&type=3",
|
||||||
"https://www.facebook.com/media/set/?set=a.736550611850295&type=3",
|
"https://www.facebook.com/media/set/?set=a.736550611850295&type=3",
|
||||||
"https://www.facebook.com/media/set/?set=a.1198986285606723&type=3",
|
"https://www.facebook.com/media/set/?set=a.1198986285606723&type=3",
|
||||||
@@ -269,7 +269,7 @@ __tests__ = (
|
|||||||
"https://www.facebook.com/media/set/?set=a.1152503723588313&type=3",
|
"https://www.facebook.com/media/set/?set=a.1152503723588313&type=3",
|
||||||
"https://www.facebook.com/media/set/?set=a.912647394240615&type=3",
|
"https://www.facebook.com/media/set/?set=a.912647394240615&type=3",
|
||||||
"https://www.facebook.com/media/set/?set=a.862611645910857&type=3",
|
"https://www.facebook.com/media/set/?set=a.862611645910857&type=3",
|
||||||
],
|
),
|
||||||
|
|
||||||
"id" : r"re:\d+",
|
"id" : r"re:\d+",
|
||||||
"thumbnail": {str, None},
|
"thumbnail": {str, None},
|
||||||
@@ -293,6 +293,44 @@ __tests__ = (
|
|||||||
{
|
{
|
||||||
"#url" : "https://www.facebook.com/brando.cha.3/info",
|
"#url" : "https://www.facebook.com/brando.cha.3/info",
|
||||||
"#class" : facebook.FacebookInfoExtractor,
|
"#class" : facebook.FacebookInfoExtractor,
|
||||||
|
"#metadata": "post",
|
||||||
|
|
||||||
|
"id" : "100046356937542",
|
||||||
|
"name" : "Throwaway Idk",
|
||||||
|
"username" : "brando.cha.3",
|
||||||
|
"url" : "https://www.facebook.com/brando.cha.3",
|
||||||
|
"alternate_name": "",
|
||||||
|
"profile_video" : None,
|
||||||
|
"set_id" : "",
|
||||||
|
"user_pfbid" : r"re:pfbid\w{64}",
|
||||||
|
"profilePhoto" : {
|
||||||
|
"id" : "104622291093002",
|
||||||
|
"url" : "https://www.facebook.com/photo/?fbid=104622291093002&set=a.104622317759666",
|
||||||
|
"viewer_image": {
|
||||||
|
"height": 1947,
|
||||||
|
"width" : 1928,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"profile_tabs" : [
|
||||||
|
{
|
||||||
|
"id" : "YXBwX3NlY3Rpb246MTAwMDQ2MzU2OTM3NTQyOjIzNTYzMTgzNDk=",
|
||||||
|
"name" : "Friends",
|
||||||
|
"tracking": "friends",
|
||||||
|
"url" : "https://www.facebook.com/brando.cha.3/friends",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id" : "YXBwX3NlY3Rpb246MTAwMDQ2MzU2OTM3NTQyOjIzMDUyNzI3MzI=",
|
||||||
|
"name" : "Photos",
|
||||||
|
"tracking": "photos",
|
||||||
|
"url" : "https://www.facebook.com/brando.cha.3/photos",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id" : "YXBwX3NlY3Rpb246MTAwMDQ2MzU2OTM3NTQyOjE1NjA2NTMzMDQxNzQ1MTQ=",
|
||||||
|
"name" : "Videos",
|
||||||
|
"tracking": "user_videos",
|
||||||
|
"url" : "https://www.facebook.com/brando.cha.3/videos",
|
||||||
|
},
|
||||||
|
],
|
||||||
},
|
},
|
||||||
|
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -156,7 +156,9 @@ class TestExtractorResults(unittest.TestCase):
|
|||||||
config.set((), "image-range" , result["#range"])
|
config.set((), "image-range" , result["#range"])
|
||||||
config.set((), "chapter-range", result["#range"])
|
config.set((), "chapter-range", result["#range"])
|
||||||
|
|
||||||
tjob = ResultJob(extr, content=("#sha1_content" in result))
|
tjob = ResultJob(extr,
|
||||||
|
content=("#sha1_content" in result),
|
||||||
|
format=(result.get("#metadata") != "post"))
|
||||||
|
|
||||||
if "#exception" in result:
|
if "#exception" in result:
|
||||||
with self.assertRaises(result["#exception"], msg="#exception"), \
|
with self.assertRaises(result["#exception"], msg="#exception"), \
|
||||||
@@ -261,7 +263,11 @@ class TestExtractorResults(unittest.TestCase):
|
|||||||
|
|
||||||
metadata = {k: v for k, v in result.items() if k[0] != "#"}
|
metadata = {k: v for k, v in result.items() if k[0] != "#"}
|
||||||
if metadata:
|
if metadata:
|
||||||
for kwdict in tjob.kwdict_list:
|
if result.get("#metadata") == "post":
|
||||||
|
kwdicts = tjob.kwdict_post
|
||||||
|
else:
|
||||||
|
kwdicts = tjob.kwdict_list
|
||||||
|
for kwdict in kwdicts:
|
||||||
self._test_kwdict(kwdict, metadata)
|
self._test_kwdict(kwdict, metadata)
|
||||||
|
|
||||||
def _test_kwdict(self, kwdict, tests, parent=None):
|
def _test_kwdict(self, kwdict, tests, parent=None):
|
||||||
@@ -345,7 +351,7 @@ class TestExtractorResults(unittest.TestCase):
|
|||||||
class ResultJob(job.DownloadJob):
|
class ResultJob(job.DownloadJob):
|
||||||
"""Generate test-results for extractor runs"""
|
"""Generate test-results for extractor runs"""
|
||||||
|
|
||||||
def __init__(self, url, parent=None, content=False):
|
def __init__(self, url, parent=None, content=False, format=True):
|
||||||
job.DownloadJob.__init__(self, url, parent)
|
job.DownloadJob.__init__(self, url, parent)
|
||||||
self.queue = False
|
self.queue = False
|
||||||
self.content = content
|
self.content = content
|
||||||
@@ -353,6 +359,7 @@ class ResultJob(job.DownloadJob):
|
|||||||
self.url_list = []
|
self.url_list = []
|
||||||
self.url_hash = hashlib.sha1()
|
self.url_hash = hashlib.sha1()
|
||||||
self.kwdict_list = []
|
self.kwdict_list = []
|
||||||
|
self.kwdict_post = []
|
||||||
self.kwdict_hash = hashlib.sha1()
|
self.kwdict_hash = hashlib.sha1()
|
||||||
self.archive_list = []
|
self.archive_list = []
|
||||||
self.archive_hash = hashlib.sha1()
|
self.archive_hash = hashlib.sha1()
|
||||||
@@ -363,12 +370,17 @@ class ResultJob(job.DownloadJob):
|
|||||||
else:
|
else:
|
||||||
self._update_content = lambda url, kwdict: None
|
self._update_content = lambda url, kwdict: None
|
||||||
|
|
||||||
self.format_directory = TestFormatter(
|
if format:
|
||||||
"".join(self.extractor.directory_fmt)).format_map
|
self.format_directory = TestFormatter(
|
||||||
self.format_filename = TestFormatter(
|
"".join(self.extractor.directory_fmt)).format_map
|
||||||
self.extractor.filename_fmt).format_map
|
self.format_filename = TestFormatter(
|
||||||
self.format_archive = TestFormatter(
|
self.extractor.filename_fmt).format_map
|
||||||
self.extractor.archive_fmt).format_map
|
self.format_archive = TestFormatter(
|
||||||
|
self.extractor.archive_fmt).format_map
|
||||||
|
else:
|
||||||
|
self.format_directory = \
|
||||||
|
self.format_filename = \
|
||||||
|
self.format_archive = lambda kwdict: ""
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
self._init()
|
self._init()
|
||||||
@@ -401,6 +413,8 @@ class ResultJob(job.DownloadJob):
|
|||||||
def _update_kwdict(self, kwdict, to_list=True):
|
def _update_kwdict(self, kwdict, to_list=True):
|
||||||
if to_list:
|
if to_list:
|
||||||
self.kwdict_list.append(kwdict.copy())
|
self.kwdict_list.append(kwdict.copy())
|
||||||
|
else:
|
||||||
|
self.kwdict_post.append(kwdict.copy())
|
||||||
kwdict = util.filter_dict(kwdict)
|
kwdict = util.filter_dict(kwdict)
|
||||||
self.kwdict_hash.update(
|
self.kwdict_hash.update(
|
||||||
json.dumps(kwdict, sort_keys=True, default=str).encode())
|
json.dumps(kwdict, sort_keys=True, default=str).encode())
|
||||||
|
|||||||
Reference in New Issue
Block a user