annotate Lib/test/test_shlex.py @ 54294:dba767bc3155 legacy-trunk

remove mention of old ctypes version
author Benjamin Peterson <benjamin@python.org>
date Sat, 23 May 2009 20:59:09 +0000
parents 1d84bf5f9478
children e54ee8d2c16b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
28656
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
1 # -*- coding: iso-8859-1 -*-
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
2 import unittest
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
3 import shlex
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
4
28664
e33fedb581f4 Get test to work under regrtest when running whole suite
Neal Norwitz <nnorwitz@gmail.com>
parents: 28656
diff changeset
5 from test import test_support
e33fedb581f4 Get test to work under regrtest when running whole suite
Neal Norwitz <nnorwitz@gmail.com>
parents: 28656
diff changeset
6
28656
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
7 try:
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
8 from cStringIO import StringIO
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
9 except ImportError:
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
10 from StringIO import StringIO
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
11
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
12
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
13 # The original test data set was from shellwords, by Hartmut Goebel.
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
14
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
15 data = r"""x|x|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
16 foo bar|foo|bar|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
17 foo bar|foo|bar|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
18 foo bar |foo|bar|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
19 foo bar bla fasel|foo|bar|bla|fasel|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
20 x y z xxxx|x|y|z|xxxx|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
21 \x bar|\|x|bar|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
22 \ x bar|\|x|bar|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
23 \ bar|\|bar|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
24 foo \x bar|foo|\|x|bar|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
25 foo \ x bar|foo|\|x|bar|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
26 foo \ bar|foo|\|bar|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
27 foo "bar" bla|foo|"bar"|bla|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
28 "foo" "bar" "bla"|"foo"|"bar"|"bla"|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
29 "foo" bar "bla"|"foo"|bar|"bla"|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
30 "foo" bar bla|"foo"|bar|bla|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
31 foo 'bar' bla|foo|'bar'|bla|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
32 'foo' 'bar' 'bla'|'foo'|'bar'|'bla'|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
33 'foo' bar 'bla'|'foo'|bar|'bla'|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
34 'foo' bar bla|'foo'|bar|bla|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
35 blurb foo"bar"bar"fasel" baz|blurb|foo"bar"bar"fasel"|baz|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
36 blurb foo'bar'bar'fasel' baz|blurb|foo'bar'bar'fasel'|baz|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
37 ""|""|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
38 ''|''|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
39 foo "" bar|foo|""|bar|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
40 foo '' bar|foo|''|bar|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
41 foo "" "" "" bar|foo|""|""|""|bar|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
42 foo '' '' '' bar|foo|''|''|''|bar|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
43 \""|\|""|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
44 "\"|"\"|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
45 "foo\ bar"|"foo\ bar"|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
46 "foo\\ bar"|"foo\\ bar"|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
47 "foo\\ bar\"|"foo\\ bar\"|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
48 "foo\\" bar\""|"foo\\"|bar|\|""|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
49 "foo\\ bar\" dfadf"|"foo\\ bar\"|dfadf"|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
50 "foo\\\ bar\" dfadf"|"foo\\\ bar\"|dfadf"|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
51 "foo\\\x bar\" dfadf"|"foo\\\x bar\"|dfadf"|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
52 "foo\x bar\" dfadf"|"foo\x bar\"|dfadf"|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
53 \''|\|''|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
54 'foo\ bar'|'foo\ bar'|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
55 'foo\\ bar'|'foo\\ bar'|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
56 "foo\\\x bar\" df'a\ 'df'|"foo\\\x bar\"|df'a|\|'df'|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
57 \"foo"|\|"foo"|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
58 \"foo"\x|\|"foo"|\|x|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
59 "foo\x"|"foo\x"|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
60 "foo\ "|"foo\ "|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
61 foo\ xx|foo|\|xx|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
62 foo\ x\x|foo|\|x|\|x|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
63 foo\ x\x\""|foo|\|x|\|x|\|""|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
64 "foo\ x\x"|"foo\ x\x"|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
65 "foo\ x\x\\"|"foo\ x\x\\"|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
66 "foo\ x\x\\""foobar"|"foo\ x\x\\"|"foobar"|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
67 "foo\ x\x\\"\''"foobar"|"foo\ x\x\\"|\|''|"foobar"|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
68 "foo\ x\x\\"\'"fo'obar"|"foo\ x\x\\"|\|'"fo'|obar"|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
69 "foo\ x\x\\"\'"fo'obar" 'don'\''t'|"foo\ x\x\\"|\|'"fo'|obar"|'don'|\|''|t'|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
70 'foo\ bar'|'foo\ bar'|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
71 'foo\\ bar'|'foo\\ bar'|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
72 foo\ bar|foo|\|bar|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
73 foo#bar\nbaz|foobaz|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
74 :-) ;-)|:|-|)|;|-|)|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
75 áéíóú|á|é|í|ó|ú|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
76 """
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
77
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
78 posix_data = r"""x|x|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
79 foo bar|foo|bar|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
80 foo bar|foo|bar|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
81 foo bar |foo|bar|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
82 foo bar bla fasel|foo|bar|bla|fasel|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
83 x y z xxxx|x|y|z|xxxx|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
84 \x bar|x|bar|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
85 \ x bar| x|bar|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
86 \ bar| bar|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
87 foo \x bar|foo|x|bar|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
88 foo \ x bar|foo| x|bar|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
89 foo \ bar|foo| bar|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
90 foo "bar" bla|foo|bar|bla|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
91 "foo" "bar" "bla"|foo|bar|bla|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
92 "foo" bar "bla"|foo|bar|bla|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
93 "foo" bar bla|foo|bar|bla|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
94 foo 'bar' bla|foo|bar|bla|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
95 'foo' 'bar' 'bla'|foo|bar|bla|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
96 'foo' bar 'bla'|foo|bar|bla|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
97 'foo' bar bla|foo|bar|bla|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
98 blurb foo"bar"bar"fasel" baz|blurb|foobarbarfasel|baz|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
99 blurb foo'bar'bar'fasel' baz|blurb|foobarbarfasel|baz|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
100 ""||
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
101 ''||
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
102 foo "" bar|foo||bar|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
103 foo '' bar|foo||bar|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
104 foo "" "" "" bar|foo||||bar|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
105 foo '' '' '' bar|foo||||bar|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
106 \"|"|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
107 "\""|"|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
108 "foo\ bar"|foo\ bar|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
109 "foo\\ bar"|foo\ bar|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
110 "foo\\ bar\""|foo\ bar"|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
111 "foo\\" bar\"|foo\|bar"|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
112 "foo\\ bar\" dfadf"|foo\ bar" dfadf|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
113 "foo\\\ bar\" dfadf"|foo\\ bar" dfadf|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
114 "foo\\\x bar\" dfadf"|foo\\x bar" dfadf|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
115 "foo\x bar\" dfadf"|foo\x bar" dfadf|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
116 \'|'|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
117 'foo\ bar'|foo\ bar|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
118 'foo\\ bar'|foo\\ bar|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
119 "foo\\\x bar\" df'a\ 'df"|foo\\x bar" df'a\ 'df|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
120 \"foo|"foo|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
121 \"foo\x|"foox|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
122 "foo\x"|foo\x|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
123 "foo\ "|foo\ |
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
124 foo\ xx|foo xx|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
125 foo\ x\x|foo xx|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
126 foo\ x\x\"|foo xx"|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
127 "foo\ x\x"|foo\ x\x|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
128 "foo\ x\x\\"|foo\ x\x\|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
129 "foo\ x\x\\""foobar"|foo\ x\x\foobar|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
130 "foo\ x\x\\"\'"foobar"|foo\ x\x\'foobar|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
131 "foo\ x\x\\"\'"fo'obar"|foo\ x\x\'fo'obar|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
132 "foo\ x\x\\"\'"fo'obar" 'don'\''t'|foo\ x\x\'fo'obar|don't|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
133 "foo\ x\x\\"\'"fo'obar" 'don'\''t' \\|foo\ x\x\'fo'obar|don't|\|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
134 'foo\ bar'|foo\ bar|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
135 'foo\\ bar'|foo\\ bar|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
136 foo\ bar|foo bar|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
137 foo#bar\nbaz|foo|baz|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
138 :-) ;-)|:-)|;-)|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
139 áéíóú|áéíóú|
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
140 """
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
141
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
142 class ShlexTest(unittest.TestCase):
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
143 def setUp(self):
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
144 self.data = [x.split("|")[:-1]
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
145 for x in data.splitlines()]
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
146 self.posix_data = [x.split("|")[:-1]
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
147 for x in posix_data.splitlines()]
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
148 for item in self.data:
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
149 item[0] = item[0].replace(r"\n", "\n")
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
150 for item in self.posix_data:
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
151 item[0] = item[0].replace(r"\n", "\n")
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
152
28703
2ce39a7be79d - Changed shlex.split() method to have more useful and
Gustavo Niemeyer <gustavo@niemeyer.net>
parents: 28664
diff changeset
153 def splitTest(self, data, comments):
28656
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
154 for i in range(len(data)):
28703
2ce39a7be79d - Changed shlex.split() method to have more useful and
Gustavo Niemeyer <gustavo@niemeyer.net>
parents: 28664
diff changeset
155 l = shlex.split(data[i][0], comments=comments)
28656
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
156 self.assertEqual(l, data[i][1:],
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
157 "%s: %s != %s" %
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
158 (data[i][0], l, data[i][1:]))
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
159
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
160 def oldSplit(self, s):
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
161 ret = []
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
162 lex = shlex.shlex(StringIO(s))
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
163 tok = lex.get_token()
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
164 while tok:
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
165 ret.append(tok)
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
166 tok = lex.get_token()
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
167 return ret
28774
c9bee11eaa8b Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents: 28703
diff changeset
168
28656
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
169 def testSplitPosix(self):
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
170 """Test data splitting with posix parser"""
28774
c9bee11eaa8b Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents: 28703
diff changeset
171 self.splitTest(self.posix_data, comments=True)
28656
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
172
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
173 def testCompat(self):
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
174 """Test compatibility interface"""
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
175 for i in range(len(self.data)):
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
176 l = self.oldSplit(self.data[i][0])
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
177 self.assertEqual(l, self.data[i][1:],
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
178 "%s: %s != %s" %
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
179 (self.data[i][0], l, self.data[i][1:]))
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
180
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
181 # Allow this test to be used with old shlex.py
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
182 if not getattr(shlex, "split", None):
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
183 for methname in dir(ShlexTest):
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
184 if methname.startswith("test") and methname != "testCompat":
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
185 delattr(ShlexTest, methname)
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
186
28664
e33fedb581f4 Get test to work under regrtest when running whole suite
Neal Norwitz <nnorwitz@gmail.com>
parents: 28656
diff changeset
187 def test_main():
e33fedb581f4 Get test to work under regrtest when running whole suite
Neal Norwitz <nnorwitz@gmail.com>
parents: 28656
diff changeset
188 test_support.run_unittest(ShlexTest)
e33fedb581f4 Get test to work under regrtest when running whole suite
Neal Norwitz <nnorwitz@gmail.com>
parents: 28656
diff changeset
189
28656
4d2259cb77a0 Implemented posix-mode parsing support in shlex.py, as dicussed in
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
diff changeset
190 if __name__ == "__main__":
28664
e33fedb581f4 Get test to work under regrtest when running whole suite
Neal Norwitz <nnorwitz@gmail.com>
parents: 28656
diff changeset
191 test_main()