| 591 | self.assertSequenceEqual(mustermanns_by_seniority, [self.max, mary]) |
| 592 | |
| 593 | def test_order_by_multiline_sql(self): |
| 594 | raw_order_by = ( |
| 595 | RawSQL( |
| 596 | """ |
| 597 | CASE WHEN num_employees > 1000 |
| 598 | THEN num_chairs |
| 599 | ELSE 0 END |
| 600 | """, |
| 601 | [], |
| 602 | ).desc(), |
| 603 | RawSQL( |
| 604 | """ |
| 605 | CASE WHEN num_chairs > 1 |
| 606 | THEN 1 |
| 607 | ELSE 0 END |
| 608 | """, |
| 609 | [], |
| 610 | ).asc(), |
| 611 | ) |
| 612 | for qs in ( |
| 613 | Company.objects.all(), |
| 614 | Company.objects.distinct(), |
| 615 | ): |
| 616 | with self.subTest(qs=qs): |
| 617 | self.assertSequenceEqual( |
| 618 | qs.order_by(*raw_order_by), |
| 619 | [self.example_inc, self.gmbh, self.foobar_ltd], |
| 620 | ) |
| 621 | |
| 622 | def test_outerref(self): |
| 623 | inner = Company.objects.filter(point_of_contact=OuterRef("pk")) |