| 375 | eq_(m1.first(), 2) |
| 376 | |
| 377 | def test_index_extra(self): |
| 378 | ex1a, ex1b, ex2, ex3a, ex3b = ( |
| 379 | object(), |
| 380 | object(), |
| 381 | object(), |
| 382 | object(), |
| 383 | object(), |
| 384 | ) |
| 385 | |
| 386 | result = self._fixture( |
| 387 | extras=[ |
| 388 | (ex1a, ex1b), |
| 389 | (ex2,), |
| 390 | ( |
| 391 | ex3a, |
| 392 | ex3b, |
| 393 | ), |
| 394 | ] |
| 395 | ) |
| 396 | eq_( |
| 397 | result.columns(ex2, ex3b).columns(ex3a).all(), |
| 398 | [(1,), (2,), (2,), (2,)], |
| 399 | ) |
| 400 | |
| 401 | result = self._fixture( |
| 402 | extras=[ |
| 403 | (ex1a, ex1b), |
| 404 | (ex2,), |
| 405 | ( |
| 406 | ex3a, |
| 407 | ex3b, |
| 408 | ), |
| 409 | ] |
| 410 | ) |
| 411 | eq_([row._mapping[ex1b] for row in result], [1, 2, 1, 4]) |
| 412 | |
| 413 | result = self._fixture( |
| 414 | extras=[ |
| 415 | (ex1a, ex1b), |
| 416 | (ex2,), |
| 417 | ( |
| 418 | ex3a, |
| 419 | ex3b, |
| 420 | ), |
| 421 | ] |
| 422 | ) |
| 423 | eq_( |
| 424 | [ |
| 425 | dict(r) |
| 426 | for r in result.columns(ex2, ex3b).columns(ex3a).mappings() |
| 427 | ], |
| 428 | [{"c": 1}, {"c": 2}, {"c": 2}, {"c": 2}], |
| 429 | ) |
| 430 | |
| 431 | def test_unique_default_filters(self): |
| 432 | result = self._fixture( |