Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(495)

Side by Side Diff: native_client_sdk/src/tools/lib/tests/quote_test.py

Issue 720233003: [NaCl SDK] Convert python scripts from optparse to argparse. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « native_client_sdk/src/tools/httpd.py ('k') | native_client_sdk/src/tools/nacl_config.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright 2014 The Chromium Authors. All rights reserved. 2 # Copyright 2014 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 import optparse 6 import argparse
7 import os 7 import os
8 import sys 8 import sys
9 import unittest 9 import unittest
10 10
11 SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__)) 11 SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__))
12 PARENT_DIR = os.path.dirname(SCRIPT_DIR) 12 PARENT_DIR = os.path.dirname(SCRIPT_DIR)
13 13
14 sys.path.append(PARENT_DIR) 14 sys.path.append(PARENT_DIR)
15 15
16 import quote 16 import quote
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
85 self.check_invertible('abcdefg', 'bc') 85 self.check_invertible('abcdefg', 'bc')
86 self.check_invertible('a\\bcdefg', 'bc') 86 self.check_invertible('a\\bcdefg', 'bc')
87 self.check_invertible('ab\\cdefg', 'bc') 87 self.check_invertible('ab\\cdefg', 'bc')
88 self.check_invertible('\\ab\\cdefg', 'abc') 88 self.check_invertible('\\ab\\cdefg', 'abc')
89 self.check_invertible('abcde\\fg', 'efg') 89 self.check_invertible('abcde\\fg', 'efg')
90 self.check_invertible('a\\b', '') 90 self.check_invertible('a\\b', '')
91 91
92 92
93 # Invoke this file directly for simple manual testing. For running 93 # Invoke this file directly for simple manual testing. For running
94 # the unittests, use the -t flag. Any flags to be passed to the 94 # the unittests, use the -t flag. Any flags to be passed to the
95 # unittest module should be passed as after the optparse processing, 95 # unittest module should be passed as after the argparse processing,
96 # e.g., "quote_test.py -t -- -v" to pass the -v flag to the unittest 96 # e.g., "quote_test.py -t -- -v" to pass the -v flag to the unittest
97 # module. 97 # module.
98 98
99 def main(argv): 99 def main(args):
100 global verbose 100 global verbose
101 parser = optparse.OptionParser( 101 parser = argparse.ArgumentParser()
102 usage='Usage: %prog [options] word...') 102 parser.add_argument('-s', '--special-chars',
103 parser.add_option('-s', '--special-chars', dest='special_chars', default=':', 103 dest='special_chars', default=':',
104 help='Special characters to quote (default is ":")') 104 help='Special characters to quote (default is ":")')
105 parser.add_option('-q', '--quote', dest='quote', default='\\', 105 parser.add_argument('-q', '--quote', dest='quote', default='\\',
106 help='Quote or escape character (default is "\")') 106 help='Quote or escape character (default is "\")')
107 parser.add_option('-t', '--run-tests', dest='tests', action='store_true', 107 parser.add_argument('-u', '--unquote-input', dest='unquote_input',
108 help='Run built-in tests\n') 108 action='store_true', help='Unquote command line argument')
109 parser.add_option('-u', '--unquote-input', dest='unquote_input', 109 parser.add_argument('-v', '--verbose', dest='verbose', action='store_true',
110 action='store_true', help='Unquote command line argument') 110 help='Verbose test output')
111 parser.add_option('-v', '--verbose', dest='verbose', action='store_true', 111 parser.add_argument('words', nargs='*')
112 help='Verbose test output') 112 options = parser.parse_args(args)
113 options, args = parser.parse_args(argv)
114 113
115 if options.verbose: 114 if options.verbose:
116 verbose = True 115 verbose = True
117 116
117 if not options.words:
118 unittest.main()
119
118 num_errors = 0 120 num_errors = 0
119 if options.tests: 121 for word in options.words:
120 sys.argv = [sys.argv[0]] + args 122 # NB: there are inputs x for which quote(unquote(x) != x, but
121 unittest.main() 123 # there should be no input x for which unquote(quote(x)) != x.
122 else: 124 if options.unquote_input:
123 for word in args: 125 qq = quote.unquote(word, options.special_chars, options.quote)
124 # NB: there are inputs x for which quote(unquote(x) != x, but 126 sys.stdout.write('unquote(%s) = %s\n'
125 # there should be no input x for which unquote(quote(x)) != x. 127 % (word, ''.join(qq)))
126 if options.unquote_input: 128 # There is no expected output for unquote -- this is just for
127 qq = quote.unquote(word, options.special_chars, options.quote) 129 # manual testing, so it is okay that we do not (and cannot)
128 sys.stdout.write('unquote(%s) = %s\n' 130 # update num_errors here.
129 % (word, ''.join(qq))) 131 else:
130 # There is no expected output for unquote -- this is just for 132 q = quote.quote(word, options.special_chars, options.quote)
131 # manual testing, so it is okay that we do not (and cannot) 133 qq = quote.unquote(q, options.special_chars, options.quote)
132 # update num_errors here. 134 sys.stdout.write('quote(%s) = %s, unquote(%s) = %s\n'
133 else: 135 % (word, q, q, ''.join(qq)))
134 q = quote.quote(word, options.special_chars, options.quote) 136 if word != ''.join(qq):
135 qq = quote.unquote(q, options.special_chars, options.quote) 137 num_errors += 1
136 sys.stdout.write('quote(%s) = %s, unquote(%s) = %s\n' 138 if num_errors > 0:
137 % (word, q, q, ''.join(qq))) 139 sys.stderr.write('[ FAILED ] %d test failures\n' % num_errors)
138 if word != ''.join(qq):
139 num_errors += 1
140 if num_errors > 0:
141 sys.stderr.write('[ FAILED ] %d test failures\n' % num_errors)
142 return num_errors 140 return num_errors
143 141
144 if __name__ == '__main__': 142 if __name__ == '__main__':
145 sys.exit(main(sys.argv[1:])) 143 sys.exit(main(sys.argv[1:]))
OLDNEW
« no previous file with comments | « native_client_sdk/src/tools/httpd.py ('k') | native_client_sdk/src/tools/nacl_config.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698