diff --git a/parse.py b/parse.py index 062a421..788f579 100644 --- a/parse.py +++ b/parse.py @@ -1261,11 +1261,11 @@ def _handle_field(self, field): # align "=" has been handled if align == '<': - s = '%s%s+' % (s, fill) + s = '%s%s*' % (s, fill) elif align == '>': s = '%s*%s' % (fill, s) elif align == '^': - s = '%s*%s%s+' % (fill, s, fill) + s = '%s*%s%s*' % (fill, s, fill) return s diff --git a/test_parse.py b/test_parse.py index 1752a42..26c1b83 100755 --- a/test_parse.py +++ b/test_parse.py @@ -865,17 +865,22 @@ def test_pickling_bug_110(self): # prior to the fix, this would raise an AttributeError pickle.dumps(p) - def test_search_centered_bug_112(self): - r = parse.parse("{:^},{:^}", " 12 , 34 ") - self.assertEqual(r[1], "34") - r = parse.search("{:^},{:^}", " 12 , 34 ") - self.assertEqual(r[1], "34") - - def test_search_left_align_bug_112(self): - r = parse.parse("{:<},{:<}", "12 ,34 ") - self.assertEqual(r[1], "34") - r = parse.search("{:<},{:<}", "12 ,34 ") - self.assertEqual(r[1], "34") + def test_unused_centered_alignment_bug(self): + r = parse.parse("{:^2S}", "foo") + self.assertEqual(r[0], "foo") + r = parse.search("{:^2S}", "foo") + self.assertEqual(r[0], "foo") + + # specifically test for the case in issue #118 as well + r = parse.parse("Column {:d}:{:^}", "Column 1: Timestep") + self.assertEqual(r[0], 1) + self.assertEqual(r[1], "Timestep") + + def test_unused_left_alignment_bug(self): + r = parse.parse("{:<2S}", "foo") + self.assertEqual(r[0], "foo") + r = parse.search("{:<2S}", "foo") + self.assertEqual(r[0], "foo") def test_match_trailing_newline(self): r = parse.parse('{}', 'test\n')