| 117 | |
| 118 | |
| 119 | def test_complex_assignment() -> None: |
| 120 | source = ( |
| 121 | 'a = 1 + 1; b = a #: compound statement\n' |
| 122 | 'c, d = (1, 1) #: unpack assignment\n' |
| 123 | 'e = True #: first assignment\n' |
| 124 | 'e = False #: second assignment\n' |
| 125 | 'f = g = None #: multiple assignment at once\n' |
| 126 | '(theta, phi) = (0, 0.5) #: unpack assignment via tuple\n' |
| 127 | '[x, y] = (5, 6) #: unpack assignment via list\n' |
| 128 | 'h, *i, j = (1, 2, 3, 4) #: unpack assignment2\n' |
| 129 | 'k, *self.attr = (5, 6, 7) #: unpack assignment3\n' |
| 130 | 'l, *m[0] = (8, 9, 0) #: unpack assignment4\n' |
| 131 | ) |
| 132 | parser = Parser(source) |
| 133 | parser.parse() |
| 134 | assert parser.comments == { |
| 135 | ('', 'b'): 'compound statement', |
| 136 | ('', 'c'): 'unpack assignment', |
| 137 | ('', 'd'): 'unpack assignment', |
| 138 | ('', 'e'): 'second assignment', |
| 139 | ('', 'f'): 'multiple assignment at once', |
| 140 | ('', 'g'): 'multiple assignment at once', |
| 141 | ('', 'theta'): 'unpack assignment via tuple', |
| 142 | ('', 'phi'): 'unpack assignment via tuple', |
| 143 | ('', 'x'): 'unpack assignment via list', |
| 144 | ('', 'y'): 'unpack assignment via list', |
| 145 | ('', 'h'): 'unpack assignment2', |
| 146 | ('', 'i'): 'unpack assignment2', |
| 147 | ('', 'j'): 'unpack assignment2', |
| 148 | ('', 'k'): 'unpack assignment3', |
| 149 | ('', 'l'): 'unpack assignment4', |
| 150 | } |
| 151 | assert parser.definitions == {} |
| 152 | |
| 153 | |
| 154 | def test_assignment_in_try_clause() -> None: |