Skip to content

Commit fd4af18

Browse files
committed
shlex tests: Add testForceQuote
Test special cases of strings that don't need quoting, do need quoting, do use `force`, don't use `force` etc. I've tried to be exhaustive.
1 parent 0e722d6 commit fd4af18

1 file changed

Lines changed: 22 additions & 0 deletions

File tree

Lib/test/test_shlex.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -341,6 +341,28 @@ def testQuote(self):
341341
"'test%s'\"'\"'name'\"'\"''" % u)
342342
self.assertRaises(TypeError, shlex.quote, 42)
343343
self.assertRaises(TypeError, shlex.quote, b"abc")
344+
# self.assertRaises(TypeError, shlex.quote, None)
345+
346+
def testForceQuote(self):
347+
# ensure default `force` behavior does not unnecessarily quote strings
348+
self.assertEqual(shlex.quote("no-quotes-needed"),
349+
"no-quotes-needed")
350+
351+
# ensure `force=False` does not unnecessarily quote strings
352+
self.assertEqual(shlex.quote("no-quotes-needed", force=False),
353+
"no-quotes-needed")
354+
355+
# ensure `force=True` does quote strings that
356+
# would not be quoted if using `force=False`
357+
self.assertEqual(shlex.quote("no-quotes-needed", force=True),
358+
"'no-quotes-needed'")
359+
360+
# ensure `force` does not affect outcome for strings that
361+
# need quoting anyways
362+
self.assertEqual(shlex.quote("quotes needed", force=False),
363+
"'quotes needed'")
364+
self.assertEqual(shlex.quote("quotes needed", force=True),
365+
"'quotes needed'")
344366

345367
def testJoin(self):
346368
for split_command, command in [

0 commit comments

Comments
 (0)