[jsinterp] Fixing deep copy zip in test_jsinterp_parse

This commit is contained in:
sulyi 2016-12-10 13:58:26 +01:00
parent 200903cee8
commit 9d1f75667c

View File

@ -5,6 +5,7 @@ from __future__ import unicode_literals
# Allow direct execution # Allow direct execution
import os import os
import sys import sys
import copy
if sys.version_info < (2, 7): if sys.version_info < (2, 7):
import unittest2 as unittest import unittest2 as unittest
@ -23,13 +24,15 @@ from youtube_dl.jsinterp.tstream import (
) )
def traverse(o, tree_types=(list, tuple)): def traverse(node, tree_types=(list, tuple)):
if isinstance(o, tree_types) or type(o) == zip: if type(node) == zip:
for value in o: node = list(copy.deepcopy(node))
if isinstance(node, tree_types):
for value in node:
for subvalue in traverse(value, tree_types): for subvalue in traverse(value, tree_types):
yield subvalue yield subvalue
else: else:
yield o yield node
class TestJSInterpreterParser(unittest.TestCase): class TestJSInterpreterParser(unittest.TestCase):
@ -315,13 +318,13 @@ class TestJSInterpreterParser(unittest.TestCase):
def test_assignments(self): def test_assignments(self):
jsi = JSInterpreter('var x = 20; x = 30 + 1; return x;') jsi = JSInterpreter('var x = 20; x = 30 + 1; return x;')
ast = [ ast = [
(Token.VAR, list(zip( (Token.VAR, zip(
['x'], ['x'],
[(Token.ASSIGN, [(Token.ASSIGN,
None, None,
(Token.OPEXPR, [(Token.MEMBER, (Token.INT, 20), None, None)]), (Token.OPEXPR, [(Token.MEMBER, (Token.INT, 20), None, None)]),
None)] None)]
))), )),
(Token.EXPR, [ (Token.EXPR, [
(Token.ASSIGN, (Token.ASSIGN,