diff options
Diffstat (limited to 'Lib/test')
-rw-r--r-- | Lib/test/output/test_tokenize | 592 | ||||
-rw-r--r-- | Lib/test/test_tokenize.py | 22 | ||||
-rw-r--r-- | Lib/test/tokenize_tests.py | 161 |
3 files changed, 775 insertions, 0 deletions
diff --git a/Lib/test/output/test_tokenize b/Lib/test/output/test_tokenize new file mode 100644 index 0000000..42465a0 --- /dev/null +++ b/Lib/test/output/test_tokenize @@ -0,0 +1,592 @@ +test_tokenize +1,0-1,35: COMMENT "# Tests for the 'tokenize' module.\012" +2,0-2,43: COMMENT '# Large bits stolen from test_grammar.py. \012' +3,0-3,1: NEWLINE '\012' +4,0-4,11: COMMENT '# Comments\012' +5,0-5,3: STRING '"#"' +5,3-5,4: NEWLINE '\012' +6,0-6,3: COMMENT "#'\012" +7,0-7,3: COMMENT '#"\012' +8,0-8,3: COMMENT '#\\\012' +9,7-9,9: COMMENT '#\012' +10,4-10,10: COMMENT '# abc\012' +11,0-12,4: STRING "'''#\012#'''" +12,4-12,5: NEWLINE '\012' +13,0-13,1: NEWLINE '\012' +14,0-14,1: NAME 'x' +14,2-14,3: OP '=' +14,4-14,5: NUMBER '1' +14,7-14,8: COMMENT '#' +14,8-14,9: NEWLINE '\012' +15,0-15,1: NEWLINE '\012' +16,0-16,25: COMMENT '# Balancing continuation\012' +17,0-17,1: NEWLINE '\012' +18,0-18,1: NAME 'a' +18,2-18,3: OP '=' +18,4-18,5: OP '(' +18,5-18,6: NUMBER '3' +18,6-18,7: OP ',' +18,8-18,9: NUMBER '4' +18,9-18,10: OP ',' +18,10-18,11: NEWLINE '\012' +19,2-19,3: NUMBER '5' +19,3-19,4: OP ',' +19,5-19,6: NUMBER '6' +19,6-19,7: OP ')' +19,7-19,8: NEWLINE '\012' +20,0-20,1: NAME 'y' +20,2-20,3: OP '=' +20,4-20,5: OP '[' +20,5-20,6: NUMBER '3' +20,6-20,7: OP ',' +20,8-20,9: NUMBER '4' +20,9-20,10: OP ',' +20,10-20,11: NEWLINE '\012' +21,2-21,3: NUMBER '5' +21,3-21,4: OP ']' +21,4-21,5: NEWLINE '\012' +22,0-22,1: NAME 'z' +22,2-22,3: OP '=' +22,4-22,5: OP '{' +22,5-22,8: STRING "'a'" +22,8-22,9: OP ':' +22,9-22,10: NUMBER '5' +22,10-22,11: OP ',' +22,11-22,12: NEWLINE '\012' +23,2-23,5: STRING "'b'" +23,5-23,6: OP ':' +23,6-23,7: NUMBER '6' +23,7-23,8: OP '}' +23,8-23,9: NEWLINE '\012' +24,0-24,1: NAME 'x' +24,2-24,3: OP '=' +24,4-24,5: OP '(' +24,5-24,8: NAME 'len' +24,8-24,9: OP '(' +24,9-24,10: OP '`' +24,10-24,11: NAME 'y' +24,11-24,12: OP '`' +24,12-24,13: OP ')' +24,14-24,15: OP '+' +24,16-24,17: NUMBER '5' +24,17-24,18: OP '*' +24,18-24,19: NAME 'x' +24,20-24,21: OP '-' +24,22-24,23: NAME 'a' +24,23-24,24: OP '[' +24,24-24,25: NEWLINE '\012' +25,3-25,4: NUMBER '3' +25,5-25,6: OP ']' +25,6-25,7: NEWLINE '\012' +26,3-26,4: OP '-' +26,5-26,6: NAME 'x' +26,7-26,8: OP '+' +26,9-26,12: NAME 'len' +26,12-26,13: OP '(' +26,13-26,14: OP '{' +26,14-26,15: NEWLINE '\012' +27,3-27,4: OP '}' +27,4-27,5: NEWLINE '\012' +28,4-28,5: OP ')' +28,5-28,6: NEWLINE '\012' +29,2-29,3: OP ')' +29,3-29,4: NEWLINE '\012' +30,0-30,1: NEWLINE '\012' +31,0-31,37: COMMENT '# Backslash means line continuation:\012' +32,0-32,1: NAME 'x' +32,2-32,3: OP '=' +32,4-32,5: NUMBER '1' +33,0-33,1: OP '+' +33,2-33,3: NUMBER '1' +33,3-33,4: NEWLINE '\012' +34,0-34,1: NEWLINE '\012' +35,0-35,55: COMMENT '# Backslash does not means continuation in comments :\\\012' +36,0-36,1: NAME 'x' +36,2-36,3: OP '=' +36,4-36,5: NUMBER '0' +36,5-36,6: NEWLINE '\012' +37,0-37,1: NEWLINE '\012' +38,0-38,20: COMMENT '# Ordinary integers\012' +39,0-39,4: NUMBER '0xff' +39,5-39,7: OP '<>' +39,8-39,11: NUMBER '255' +39,11-39,12: NEWLINE '\012' +40,0-40,4: NUMBER '0377' +40,5-40,7: OP '<>' +40,8-40,11: NUMBER '255' +40,11-40,12: NEWLINE '\012' +41,0-41,10: NUMBER '2147483647' +41,13-41,15: OP '!=' +41,16-41,28: NUMBER '017777777777' +41,28-41,29: NEWLINE '\012' +42,0-42,1: OP '-' +42,1-42,11: NUMBER '2147483647' +42,11-42,12: OP '-' +42,12-42,13: NUMBER '1' +42,14-42,16: OP '!=' +42,17-42,29: NUMBER '020000000000' +42,29-42,30: NEWLINE '\012' +43,0-43,12: NUMBER '037777777777' +43,13-43,15: OP '!=' +43,16-43,17: OP '-' +43,17-43,18: NUMBER '1' +43,18-43,19: NEWLINE '\012' +44,0-44,10: NUMBER '0xffffffff' +44,11-44,13: OP '!=' +44,14-44,15: OP '-' +44,15-44,16: NUMBER '1' +44,16-44,17: NEWLINE '\012' +45,0-45,1: NEWLINE '\012' +46,0-46,16: COMMENT '# Long integers\012' +47,0-47,1: NAME 'x' +47,2-47,3: OP '=' +47,4-47,6: NUMBER '0L' +47,6-47,7: NEWLINE '\012' +48,0-48,1: NAME 'x' +48,2-48,3: OP '=' +48,4-48,6: NUMBER '0l' +48,6-48,7: NEWLINE '\012' +49,0-49,1: NAME 'x' +49,2-49,3: OP '=' +49,4-49,23: NUMBER '0xffffffffffffffffL' +49,23-49,24: NEWLINE '\012' +50,0-50,1: NAME 'x' +50,2-50,3: OP '=' +50,4-50,23: NUMBER '0xffffffffffffffffl' +50,23-50,24: NEWLINE '\012' +51,0-51,1: NAME 'x' +51,2-51,3: OP '=' +51,4-51,23: NUMBER '077777777777777777L' +51,23-51,24: NEWLINE '\012' +52,0-52,1: NAME 'x' +52,2-52,3: OP '=' +52,4-52,23: NUMBER '077777777777777777l' +52,23-52,24: NEWLINE '\012' +53,0-53,1: NAME 'x' +53,2-53,3: OP '=' +53,4-53,35: NUMBER '123456789012345678901234567890L' +53,35-53,36: NEWLINE '\012' +54,0-54,1: NAME 'x' +54,2-54,3: OP '=' +54,4-54,35: NUMBER '123456789012345678901234567890l' +54,35-54,36: NEWLINE '\012' +55,0-55,1: NEWLINE '\012' +56,0-56,25: COMMENT '# Floating-point numbers\012' +57,0-57,1: NAME 'x' +57,2-57,3: OP '=' +57,4-57,8: NUMBER '3.14' +57,8-57,9: NEWLINE '\012' +58,0-58,1: NAME 'x' +58,2-58,3: OP '=' +58,4-58,8: NUMBER '314.' +58,8-58,9: NEWLINE '\012' +59,0-59,1: NAME 'x' +59,2-59,3: OP '=' +59,4-59,9: NUMBER '0.314' +59,9-59,10: NEWLINE '\012' +60,0-60,18: COMMENT '# XXX x = 000.314\012' +61,0-61,1: NAME 'x' +61,2-61,3: OP '=' +61,4-61,8: NUMBER '.314' +61,8-61,9: NEWLINE '\012' +62,0-62,1: NAME 'x' +62,2-62,3: OP '=' +62,4-62,8: NUMBER '3e14' +62,8-62,9: NEWLINE '\012' +63,0-63,1: NAME 'x' +63,2-63,3: OP '=' +63,4-63,8: NUMBER '3E14' +63,8-63,9: NEWLINE '\012' +64,0-64,1: NAME 'x' +64,2-64,3: OP '=' +64,4-64,9: NUMBER '3e-14' +64,9-64,10: NEWLINE '\012' +65,0-65,1: NAME 'x' +65,2-65,3: OP '=' +65,4-65,9: NUMBER '3e+14' +65,9-65,10: NEWLINE '\012' +66,0-66,1: NAME 'x' +66,2-66,3: OP '=' +66,4-66,9: NUMBER '3.e14' +66,9-66,10: NEWLINE '\012' +67,0-67,1: NAME 'x' +67,2-67,3: OP '=' +67,4-67,9: NUMBER '.3e14' +67,9-67,10: NEWLINE '\012' +68,0-68,1: NAME 'x' +68,2-68,3: OP '=' +68,4-68,9: NUMBER '3.1e4' +68,9-68,10: NEWLINE '\012' +69,0-69,1: NEWLINE '\012' +70,0-70,18: COMMENT '# String literals\012' +71,0-71,1: NAME 'x' +71,2-71,3: OP '=' +71,4-71,6: STRING "''" +71,6-71,7: OP ';' +71,8-71,9: NAME 'y' +71,10-71,11: OP '=' +71,12-71,14: STRING '""' +71,14-71,15: OP ';' +71,15-71,16: NEWLINE '\012' +72,0-72,1: NAME 'x' +72,2-72,3: OP '=' +72,4-72,8: STRING "'\\''" +72,8-72,9: OP ';' +72,10-72,11: NAME 'y' +72,12-72,13: OP '=' +72,14-72,17: STRING '"\'"' +72,17-72,18: OP ';' +72,18-72,19: NEWLINE '\012' +73,0-73,1: NAME 'x' +73,2-73,3: OP '=' +73,4-73,7: STRING '\'"\'' +73,7-73,8: OP ';' +73,9-73,10: NAME 'y' +73,11-73,12: OP '=' +73,13-73,17: STRING '"\\""' +73,17-73,18: OP ';' +73,18-73,19: NEWLINE '\012' +74,0-74,1: NAME 'x' +74,2-74,3: OP '=' +74,4-74,32: STRING '"doesn\'t \\"shrink\\" does it"' +74,32-74,33: NEWLINE '\012' +75,0-75,1: NAME 'y' +75,2-75,3: OP '=' +75,4-75,31: STRING '\'doesn\\\'t "shrink" does it\'' +75,31-75,32: NEWLINE '\012' +76,0-76,1: NAME 'x' +76,2-76,3: OP '=' +76,4-76,32: STRING '"does \\"shrink\\" doesn\'t it"' +76,32-76,33: NEWLINE '\012' +77,0-77,1: NAME 'y' +77,2-77,3: OP '=' +77,4-77,31: STRING '\'does "shrink" doesn\\\'t it\'' +77,31-77,32: NEWLINE '\012' +78,0-78,1: NAME 'x' +78,2-78,3: OP '=' +78,4-83,3: STRING '"""\012The "quick"\012brown fox\012jumps over\012the \'lazy\' dog.\012"""' +83,3-83,4: NEWLINE '\012' +84,0-84,1: NAME 'y' +84,2-84,3: OP '=' +84,4-84,63: STRING '\'\\nThe "quick"\\nbrown fox\\njumps over\\nthe \\\'lazy\\\' dog.\\n\'' +84,63-84,64: NEWLINE '\012' +85,0-85,1: NAME 'y' +85,2-85,3: OP '=' +85,4-90,3: STRING '\'\'\'\012The "quick"\012brown fox\012jumps over\012the \'lazy\' dog.\012\'\'\'' +90,3-90,4: OP ';' +90,4-90,5: NEWLINE '\012' +91,0-91,1: NAME 'y' +91,2-91,3: OP '=' +91,4-96,1: STRING '"\\n\\\012The \\"quick\\"\\n\\\012brown fox\\n\\\012jumps over\\n\\\012the \'lazy\' dog.\\n\\\012"' +96,1-96,2: OP ';' +96,2-96,3: NEWLINE '\012' +97,0-97,1: NAME 'y' +97,2-97,3: OP '=' +97,4-102,1: STRING '\'\\n\\\012The \\"quick\\"\\n\\\012brown fox\\n\\\012jumps over\\n\\\012the \\\'lazy\\\' dog.\\n\\\012\'' +102,1-102,2: OP ';' +102,2-102,3: NEWLINE '\012' +103,0-103,1: NAME 'x' +103,2-103,3: OP '=' +103,4-103,9: STRING "r'\\\\'" +103,10-103,11: OP '+' +103,12-103,17: STRING "R'\\\\'" +103,17-103,18: NEWLINE '\012' +104,0-104,1: NAME 'x' +104,2-104,3: OP '=' +104,4-104,9: STRING "r'\\''" +104,10-104,11: OP '+' +104,12-104,14: STRING "''" +104,14-104,15: NEWLINE '\012' +105,0-105,1: NAME 'y' +105,2-105,3: OP '=' +105,4-107,6: STRING "r'''\012foo bar \\\\\012baz'''" +107,7-107,8: OP '+' +107,9-108,6: STRING "R'''\012foo'''" +108,6-108,7: NEWLINE '\012' +109,0-109,1: NAME 'y' +109,2-109,3: OP '=' +109,4-111,3: STRING 'r"""foo\012bar \\\\ baz\012"""' +111,4-111,5: OP '+' +111,6-112,3: STRING "R'''spam\012'''" +112,3-112,4: NEWLINE '\012' +113,0-113,1: NEWLINE '\012' +114,0-114,14: COMMENT '# Indentation\012' +115,0-115,2: NAME 'if' +115,3-115,4: NUMBER '1' +115,4-115,5: OP ':' +115,5-115,6: NEWLINE '\012' +116,0-116,4: INDENT ' ' +116,4-116,5: NAME 'x' +116,6-116,7: OP '=' +116,8-116,9: NUMBER '2' +116,9-116,10: NEWLINE '\012' +117,0-117,0: DEDENT '' +117,0-117,2: NAME 'if' +117,3-117,4: NUMBER '1' +117,4-117,5: OP ':' +117,5-117,6: NEWLINE '\012' +118,0-118,8: INDENT ' ' +118,8-118,9: NAME 'x' +118,10-118,11: OP '=' +118,12-118,13: NUMBER '2' +118,13-118,14: NEWLINE '\012' +119,0-119,0: DEDENT '' +119,0-119,2: NAME 'if' +119,3-119,4: NUMBER '1' +119,4-119,5: OP ':' +119,5-119,6: NEWLINE '\012' +120,0-120,4: INDENT ' ' +120,4-120,9: NAME 'while' +120,10-120,11: NUMBER '0' +120,11-120,12: OP ':' +120,12-120,13: NEWLINE '\012' +121,0-121,5: INDENT ' ' +121,5-121,7: NAME 'if' +121,8-121,9: NUMBER '0' +121,9-121,10: OP ':' +121,10-121,11: NEWLINE '\012' +122,0-122,11: INDENT ' ' +122,11-122,12: NAME 'x' +122,13-122,14: OP '=' +122,15-122,16: NUMBER '2' +122,16-122,17: NEWLINE '\012' +123,5-123,5: DEDENT '' +123,5-123,6: NAME 'x' +123,7-123,8: OP '=' +123,9-123,10: NUMBER '2' +123,10-123,11: NEWLINE '\012' +124,0-124,0: DEDENT '' +124,0-124,0: DEDENT '' +124,0-124,2: NAME 'if' +124,3-124,4: NUMBER '0' +124,4-124,5: OP ':' +124,5-124,6: NEWLINE '\012' +125,0-125,2: INDENT ' ' +125,2-125,4: NAME 'if' +125,5-125,6: NUMBER '2' +125,6-125,7: OP ':' +125,7-125,8: NEWLINE '\012' +126,0-126,3: INDENT ' ' +126,3-126,8: NAME 'while' +126,9-126,10: NUMBER '0' +126,10-126,11: OP ':' +126,11-126,12: NEWLINE '\012' +127,0-127,8: INDENT ' ' +127,8-127,10: NAME 'if' +127,11-127,12: NUMBER '1' +127,12-127,13: OP ':' +127,13-127,14: NEWLINE '\012' +128,0-128,10: INDENT ' ' +128,10-128,11: NAME 'x' +128,12-128,13: OP '=' +128,14-128,15: NUMBER '2' +128,15-128,16: NEWLINE '\012' +129,0-129,1: NEWLINE '\012' +130,0-130,12: COMMENT '# Operators\012' +131,0-131,1: NEWLINE '\012' +132,0-132,0: DEDENT '' +132,0-132,0: DEDENT '' +132,0-132,0: DEDENT '' +132,0-132,0: DEDENT '' +132,0-132,3: NAME 'def' +132,4-132,7: NAME 'd22' +132,7-132,8: OP '(' +132,8-132,9: NAME 'a' +132,9-132,10: OP ',' +132,11-132,12: NAME 'b' +132,12-132,13: OP ',' +132,14-132,15: NAME 'c' +132,15-132,16: OP '=' +132,16-132,17: NUMBER '1' +132,17-132,18: OP ',' +132,19-132,20: NAME 'd' +132,20-132,21: OP '=' +132,21-132,22: NUMBER '2' +132,22-132,23: OP ')' +132,23-132,24: OP ':' +132,25-132,29: NAME 'pass' +132,29-132,30: NEWLINE '\012' +133,0-133,3: NAME 'def' +133,4-133,8: NAME 'd01v' +133,8-133,9: OP '(' +133,9-133,10: NAME 'a' +133,10-133,11: OP '=' +133,11-133,12: NUMBER '1' +133,12-133,13: OP ',' +133,14-133,15: OP '*' +133,15-133,19: NAME 'rest' +133,19-133,20: OP ',' +133,21-133,23: OP '**' +133,23-133,27: NAME 'rest' +133,27-133,28: OP ')' +133,28-133,29: OP ':' +133,30-133,34: NAME 'pass' +133,34-133,35: NEWLINE '\012' +134,0-134,1: NEWLINE '\012' +135,0-135,1: OP '(' +135,1-135,2: NAME 'x' +135,2-135,3: OP ',' +135,4-135,5: NAME 'y' +135,5-135,6: OP ')' +135,7-135,9: OP '<>' +135,10-135,11: OP '(' +135,11-135,12: OP '{' +135,12-135,15: STRING "'a'" +135,15-135,16: OP ':' +135,16-135,17: NUMBER '1' +135,17-135,18: OP '}' +135,18-135,19: OP ',' +135,20-135,21: OP '{' +135,21-135,24: STRING "'b'" +135,24-135,25: OP ':' +135,25-135,26: NUMBER '2' +135,26-135,27: OP '}' +135,27-135,28: OP ')' +135,28-135,29: NEWLINE '\012' +136,0-136,1: NEWLINE '\012' +137,0-137,13: COMMENT '# comparison\012' +138,0-138,2: NAME 'if' +138,3-138,4: NUMBER '1' +138,5-138,6: OP '<' +138,7-138,8: NUMBER '1' +138,9-138,10: OP '>' +138,11-138,12: NUMBER '1' +138,13-138,15: OP '==' +138,16-138,17: NUMBER '1' +138,18-138,20: OP '>=' +138,21-138,22: NUMBER '1' +138,23-138,25: OP '<=' +138,26-138,27: NUMBER '1' +138,28-138,30: OP '<>' +138,31-138,32: NUMBER '1' +138,33-138,35: OP '!=' +138,36-138,37: NUMBER '1' +138,38-138,40: NAME 'in' +138,41-138,42: NUMBER '1' +138,43-138,46: NAME 'not' +138,47-138,49: NAME 'in' +138,50-138,51: NUMBER '1' +138,52-138,54: NAME 'is' +138,55-138,56: NUMBER '1' +138,57-138,59: NAME 'is' +138,60-138,63: NAME 'not' +138,64-138,65: NUMBER '1' +138,65-138,66: OP ':' +138,67-138,71: NAME 'pass' +138,71-138,72: NEWLINE '\012' +139,0-139,1: NEWLINE '\012' +140,0-140,9: COMMENT '# binary\012' +141,0-141,1: NAME 'x' +141,2-141,3: OP '=' +141,4-141,5: NUMBER '1' +141,6-141,7: OP '&' +141,8-141,9: NUMBER '1' +141,9-141,10: NEWLINE '\012' +142,0-142,1: NAME 'x' +142,2-142,3: OP '=' +142,4-142,5: NUMBER '1' +142,6-142,7: OP '^' +142,8-142,9: NUMBER '1' +142,9-142,10: NEWLINE '\012' +143,0-143,1: NAME 'x' +143,2-143,3: OP '=' +143,4-143,5: NUMBER '1' +143,6-143,7: OP '|' +143,8-143,9: NUMBER '1' +143,9-143,10: NEWLINE '\012' +144,0-144,1: NEWLINE '\012' +145,0-145,8: COMMENT '# shift\012' +146,0-146,1: NAME 'x' +146,2-146,3: OP '=' +146,4-146,5: NUMBER '1' +146,6-146,8: OP '<<' +146,9-146,10: NUMBER '1' +146,11-146,13: OP '>>' +146,14-146,15: NUMBER '1' +146,15-146,16: NEWLINE '\012' +147,0-147,1: NEWLINE '\012' +148,0-148,11: COMMENT '# additive\012' +149,0-149,1: NAME 'x' +149,2-149,3: OP '=' +149,4-149,5: NUMBER '1' +149,6-149,7: OP '-' +149,8-149,9: NUMBER '1' +149,10-149,11: OP '+' +149,12-149,13: NUMBER '1' +149,14-149,15: OP '-' +149,16-149,17: NUMBER '1' +149,18-149,19: OP '+' +149,20-149,21: NUMBER '1' +149,21-149,22: NEWLINE '\012' +150,0-150,1: NEWLINE '\012' +151,0-151,17: COMMENT '# multiplicative\012' +152,0-152,1: NAME 'x' +152,2-152,3: OP '=' +152,4-152,5: NUMBER '1' +152,6-152,7: OP '/' +152,8-152,9: NUMBER '1' +152,10-152,11: OP '*' +152,12-152,13: NUMBER '1' +152,14-152,15: OP '%' +152,16-152,17: NUMBER '1' +152,17-152,18: NEWLINE '\012' +153,0-153,1: NEWLINE '\012' +154,0-154,8: COMMENT '# unary\012' +155,0-155,1: NAME 'x' +155,2-155,3: OP '=' +155,4-155,5: OP '~' +155,5-155,6: NUMBER '1' +155,7-155,8: OP '^' +155,9-155,10: NUMBER '1' +155,11-155,12: OP '&' +155,13-155,14: NUMBER '1' +155,15-155,16: OP '|' +155,17-155,18: NUMBER '1' +155,19-155,20: OP '&' +155,21-155,22: NUMBER '1' +155,23-155,24: OP '^' +155,25-155,26: OP '-' +155,26-155,27: NUMBER '1' +155,27-155,28: NEWLINE '\012' +156,0-156,1: NAME 'x' +156,2-156,3: OP '=' +156,4-156,5: OP '-' +156,5-156,6: NUMBER '1' +156,6-156,7: OP '*' +156,7-156,8: NUMBER '1' +156,8-156,9: OP '/' +156,9-156,10: NUMBER '1' +156,11-156,12: OP '+' +156,13-156,14: NUMBER '1' +156,14-156,15: OP '*' +156,15-156,16: NUMBER '1' +156,17-156,18: OP '-' +156,19-156,20: OP '-' +156,20-156,21: OP '-' +156,21-156,22: OP '-' +156,22-156,23: NUMBER '1' +156,23-156,24: OP '*' +156,24-156,25: NUMBER '1' +156,25-156,26: NEWLINE '\012' +157,0-157,1: NEWLINE '\012' +158,0-158,11: COMMENT '# selector\012' +159,0-159,6: NAME 'import' +159,7-159,10: NAME 'sys' +159,10-159,11: OP ',' +159,12-159,16: NAME 'time' +159,16-159,17: NEWLINE '\012' +160,0-160,1: NAME 'x' +160,2-160,3: OP '=' +160,4-160,7: NAME 'sys' +160,7-160,8: OP '.' +160,8-160,15: NAME 'modules' +160,15-160,16: OP '[' +160,16-160,22: STRING "'time'" +160,22-160,23: OP ']' +160,23-160,24: OP '.' +160,24-160,28: NAME 'time' +160,28-160,29: OP '(' +160,29-160,30: OP ')' +160,30-160,31: NEWLINE '\012' +161,0-161,1: NEWLINE '\012' +162,0-162,0: ENDMARKER '' diff --git a/Lib/test/test_tokenize.py b/Lib/test/test_tokenize.py new file mode 100644 index 0000000..34a7bfb --- /dev/null +++ b/Lib/test/test_tokenize.py @@ -0,0 +1,22 @@ +from test_support import verbose +import tokenize, os, sys + +def findfile(file): + if os.path.isabs(file): return file + path = sys.path + try: + path = [os.path.dirname(__file__)] + path + except NameError: + pass + for dn in path: + fn = os.path.join(dn, file) + if os.path.exists(fn): return fn + return file + +if verbose: + print 'starting...' +file = open(findfile('tokenize_tests.py')) +tokenize.tokenize(file.readline) +if verbose: + print 'finished' + diff --git a/Lib/test/tokenize_tests.py b/Lib/test/tokenize_tests.py new file mode 100644 index 0000000..4883668 --- /dev/null +++ b/Lib/test/tokenize_tests.py @@ -0,0 +1,161 @@ +# Tests for the 'tokenize' module. +# Large bits stolen from test_grammar.py. + +# Comments +"#" +#' +#" +#\ + # + # abc +'''# +#''' + +x = 1 # + +# Balancing continuation + +a = (3, 4, + 5, 6) +y = [3, 4, + 5] +z = {'a':5, + 'b':6} +x = (len(`y`) + 5*x - a[ + 3 ] + - x + len({ + } + ) + ) + +# Backslash means line continuation: +x = 1 \ ++ 1 + +# Backslash does not means continuation in comments :\ +x = 0 + +# Ordinary integers +0xff <> 255 +0377 <> 255 +2147483647 != 017777777777 +-2147483647-1 != 020000000000 +037777777777 != -1 +0xffffffff != -1 + +# Long integers +x = 0L +x = 0l +x = 0xffffffffffffffffL +x = 0xffffffffffffffffl +x = 077777777777777777L +x = 077777777777777777l +x = 123456789012345678901234567890L +x = 123456789012345678901234567890l + +# Floating-point numbers +x = 3.14 +x = 314. +x = 0.314 +# XXX x = 000.314 +x = .314 +x = 3e14 +x = 3E14 +x = 3e-14 +x = 3e+14 +x = 3.e14 +x = .3e14 +x = 3.1e4 + +# String literals +x = ''; y = ""; +x = '\''; y = "'"; +x = '"'; y = "\""; +x = "doesn't \"shrink\" does it" +y = 'doesn\'t "shrink" does it' +x = "does \"shrink\" doesn't it" +y = 'does "shrink" doesn\'t it' +x = """ +The "quick" +brown fox +jumps over +the 'lazy' dog. +""" +y = '\nThe "quick"\nbrown fox\njumps over\nthe \'lazy\' dog.\n' +y = ''' +The "quick" +brown fox +jumps over +the 'lazy' dog. +'''; +y = "\n\ +The \"quick\"\n\ +brown fox\n\ +jumps over\n\ +the 'lazy' dog.\n\ +"; +y = '\n\ +The \"quick\"\n\ +brown fox\n\ +jumps over\n\ +the \'lazy\' dog.\n\ +'; +x = r'\\' + R'\\' +x = r'\'' + '' +y = r''' +foo bar \\ +baz''' + R''' +foo''' +y = r"""foo +bar \\ baz +""" + R'''spam +''' + +# Indentation +if 1: + x = 2 +if 1: + x = 2 +if 1: + while 0: + if 0: + x = 2 + x = 2 +if 0: + if 2: + while 0: + if 1: + x = 2 + +# Operators + +def d22(a, b, c=1, d=2): pass +def d01v(a=1, *rest, **rest): pass + +(x, y) <> ({'a':1}, {'b':2}) + +# comparison +if 1 < 1 > 1 == 1 >= 1 <= 1 <> 1 != 1 in 1 not in 1 is 1 is not 1: pass + +# binary +x = 1 & 1 +x = 1 ^ 1 +x = 1 | 1 + +# shift +x = 1 << 1 >> 1 + +# additive +x = 1 - 1 + 1 - 1 + 1 + +# multiplicative +x = 1 / 1 * 1 % 1 + +# unary +x = ~1 ^ 1 & 1 | 1 & 1 ^ -1 +x = -1*1/1 + 1*1 - ---1*1 + +# selector +import sys, time +x = sys.modules['time'].time() + |