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

Side by Side Diff: tko/parsers/version_0_unittest.py

Issue 3713002: tko/parsers: make status_line parsing more robust to bad inputs (Closed) Base URL: http://git.chromium.org/git/autotest.git
Patch Set: Created 10 years, 2 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 | Annotate | Revision Log
« no previous file with comments | « tko/parsers/version_0.py ('k') | no next file » | 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/python 1 #!/usr/bin/python
2 2
3 import unittest 3 import unittest
4 4
5 import common 5 import common
6 from autotest_lib.client.common_lib.test_utils import mock 6 from autotest_lib.client.common_lib.test_utils import mock
7 from autotest_lib.tko import models 7 from autotest_lib.tko import models
8 from autotest_lib.tko.parsers import version_0 8 from autotest_lib.tko.parsers import version_0
9 9
10 10
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after
209 self.assertEquals(line.status, "GOOD") 209 self.assertEquals(line.status, "GOOD")
210 self.assertEquals(line.subdir, None) 210 self.assertEquals(line.subdir, None)
211 self.assertEquals(line.testname, None) 211 self.assertEquals(line.testname, None)
212 self.assertEquals(line.reason, "Test Passed") 212 self.assertEquals(line.reason, "Test Passed")
213 self.assertEquals(line.optional_fields, 213 self.assertEquals(line.optional_fields,
214 {"field1": "val1", "field2": "val2"}) 214 {"field1": "val1", "field2": "val2"})
215 215
216 def test_parse_line_handles_newline(self): 216 def test_parse_line_handles_newline(self):
217 input_data = ("\t\tGOOD\t----\t----\t" 217 input_data = ("\t\tGOOD\t----\t----\t"
218 "field1=val1\tfield2=val2\tNo newline here!") 218 "field1=val1\tfield2=val2\tNo newline here!")
219 for suffix in ("", "\n"): 219 for suffix in ("", "\n", "\n\n"):
220 line = version_0.status_line.parse_line(input_data + 220 line = version_0.status_line.parse_line(input_data +
221 suffix) 221 suffix)
222 self.assertEquals(line.indent, 2) 222 self.assertEquals(line.indent, 2)
223 self.assertEquals(line.type, "STATUS") 223 self.assertEquals(line.type, "STATUS")
224 self.assertEquals(line.status, "GOOD") 224 self.assertEquals(line.status, "GOOD")
225 self.assertEquals(line.subdir, None) 225 self.assertEquals(line.subdir, None)
226 self.assertEquals(line.testname, None) 226 self.assertEquals(line.testname, None)
227 self.assertEquals(line.reason, "No newline here!") 227 self.assertEquals(line.reason, "No newline here!")
228 self.assertEquals(line.optional_fields, 228 self.assertEquals(line.optional_fields,
229 {"field1": "val1", 229 {"field1": "val1",
(...skipping 24 matching lines...) Expand all
254 self.assertEquals(line.type, "STATUS") 254 self.assertEquals(line.type, "STATUS")
255 self.assertEquals(line.status, "GOOD") 255 self.assertEquals(line.status, "GOOD")
256 self.assertEquals(line.subdir, "field") 256 self.assertEquals(line.subdir, "field")
257 self.assertEquals(line.testname, "second field") 257 self.assertEquals(line.testname, "second field")
258 self.assertEquals(line.reason, "needed last field") 258 self.assertEquals(line.reason, "needed last field")
259 self.assertEquals(line.optional_fields, {}) 259 self.assertEquals(line.optional_fields, {})
260 260
261 261
262 def test_parse_line_fails_on_bad_optional_fields(self): 262 def test_parse_line_fails_on_bad_optional_fields(self):
263 input_data = "GOOD\tfield1\tfield2\tfield3\tfield4" 263 input_data = "GOOD\tfield1\tfield2\tfield3\tfield4"
264 self.assertRaises(AssertionError, 264 self.assertEquals(None,
265 version_0.status_line.parse_line, 265 version_0.status_line.parse_line(input_data))
266 input_data)
267 266
268 267
269 if __name__ == "__main__": 268 if __name__ == "__main__":
270 unittest.main() 269 unittest.main()
OLDNEW
« no previous file with comments | « tko/parsers/version_0.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698