Test delegation of send()
(self)
| 139 | ]) |
| 140 | |
| 141 | def test_delegation_of_send(self): |
| 142 | """ |
| 143 | Test delegation of send() |
| 144 | """ |
| 145 | trace = [] |
| 146 | def g1(): |
| 147 | trace.append("Starting g1") |
| 148 | x = yield "g1 ham" |
| 149 | trace.append("g1 received %s" % (x,)) |
| 150 | yield from g2() |
| 151 | x = yield "g1 eggs" |
| 152 | trace.append("g1 received %s" % (x,)) |
| 153 | trace.append("Finishing g1") |
| 154 | def g2(): |
| 155 | trace.append("Starting g2") |
| 156 | x = yield "g2 spam" |
| 157 | trace.append("g2 received %s" % (x,)) |
| 158 | x = yield "g2 more spam" |
| 159 | trace.append("g2 received %s" % (x,)) |
| 160 | trace.append("Finishing g2") |
| 161 | g = g1() |
| 162 | y = next(g) |
| 163 | x = 1 |
| 164 | try: |
| 165 | while 1: |
| 166 | y = g.send(x) |
| 167 | trace.append("Yielded %s" % (y,)) |
| 168 | x += 1 |
| 169 | except StopIteration: |
| 170 | pass |
| 171 | self.assertEqual(trace,[ |
| 172 | "Starting g1", |
| 173 | "g1 received 1", |
| 174 | "Starting g2", |
| 175 | "Yielded g2 spam", |
| 176 | "g2 received 2", |
| 177 | "Yielded g2 more spam", |
| 178 | "g2 received 3", |
| 179 | "Finishing g2", |
| 180 | "Yielded g1 eggs", |
| 181 | "g1 received 4", |
| 182 | "Finishing g1", |
| 183 | ]) |
| 184 | |
| 185 | def test_handling_exception_while_delegating_send(self): |
| 186 | """ |
nothing calls this directly
no test coverage detected