(self)
| 699 | ]) |
| 700 | |
| 701 | def test_compile_time_concat(self): |
| 702 | x = 'def' |
| 703 | self.assertEqual('abc' f'## {x}ghi', 'abc## defghi') |
| 704 | self.assertEqual('abc' f'{x}' 'ghi', 'abcdefghi') |
| 705 | self.assertEqual('abc' f'{x}' 'gh' f'i{x:4}', 'abcdefghidef ') |
| 706 | self.assertEqual('{x}' f'{x}', '{x}def') |
| 707 | self.assertEqual('{x' f'{x}', '{xdef') |
| 708 | self.assertEqual('{x}' f'{x}', '{x}def') |
| 709 | self.assertEqual('{{x}}' f'{x}', '{{x}}def') |
| 710 | self.assertEqual('{{x' f'{x}', '{{xdef') |
| 711 | self.assertEqual('x}}' f'{x}', 'x}}def') |
| 712 | self.assertEqual(f'{x}' 'x}}', 'defx}}') |
| 713 | self.assertEqual(f'{x}' '', 'def') |
| 714 | self.assertEqual('' f'{x}' '', 'def') |
| 715 | self.assertEqual('' f'{x}', 'def') |
| 716 | self.assertEqual(f'{x}' '2', 'def2') |
| 717 | self.assertEqual('1' f'{x}' '2', '1def2') |
| 718 | self.assertEqual('1' f'{x}', '1def') |
| 719 | self.assertEqual(f'{x}' f'-{x}', 'def-def') |
| 720 | self.assertEqual('' f'', '') |
| 721 | self.assertEqual('' f'' '', '') |
| 722 | self.assertEqual('' f'' '' f'', '') |
| 723 | self.assertEqual(f'', '') |
| 724 | self.assertEqual(f'' '', '') |
| 725 | self.assertEqual(f'' '' f'', '') |
| 726 | self.assertEqual(f'' '' f'' '', '') |
| 727 | |
| 728 | # This is not really [f'{'] + [f'}'] since we treat the inside |
| 729 | # of braces as a purely new context, so it is actually f'{ and |
| 730 | # then eval(' f') (a valid expression) and then }' which would |
| 731 | # constitute a valid f-string. |
| 732 | self.assertEqual(f'{' f'}', ' f') |
| 733 | |
| 734 | self.assertAllRaise(SyntaxError, "expecting '}'", |
| 735 | ['''f'{3' f"}"''', # can't concat to get a valid f-string |
| 736 | ]) |
| 737 | |
| 738 | def test_comments(self): |
| 739 | # These aren't comments, since they're in strings. |
nothing calls this directly
no test coverage detected