[jsinterp] Fixing deep copy zip in test_jsinterp_parse
This commit is contained in:
parent
200903cee8
commit
9d1f75667c
@ -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,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user