|
11 | 11 | KlantcontactFactory,
|
12 | 12 | )
|
13 | 13 | from openklant.components.klantinteracties.models.tests.factories.partijen import (
|
| 14 | + CategorieFactory, |
| 15 | + CategorieRelatieFactory, |
14 | 16 | PartijFactory,
|
15 | 17 | PartijIdentificatorFactory,
|
16 | 18 | )
|
@@ -568,3 +570,195 @@ def test_filter_identificator_register(self):
|
568 | 570 | self.assertEqual(response.status_code, status.HTTP_200_OK)
|
569 | 571 |
|
570 | 572 | self.assertEqual(response.json()["count"], 0)
|
| 573 | + |
| 574 | + |
| 575 | +class TestCategorieRelatieFilterset(APITestCase): |
| 576 | + url = reverse("klantinteracties:categorierelatie-list") |
| 577 | + |
| 578 | + def setUp(self): |
| 579 | + super().setUp() |
| 580 | + self.partij = PartijFactory.create(nummer="1111111111") |
| 581 | + self.partij2 = PartijFactory.create(nummer="2222222222") |
| 582 | + self.partij3 = PartijFactory.create(nummer="3333333333") |
| 583 | + self.partij4 = PartijFactory.create(nummer="4444444444") |
| 584 | + self.partij5 = PartijFactory.create(nummer="5555555555") |
| 585 | + |
| 586 | + self.categorie = CategorieFactory.create(naam="een") |
| 587 | + self.categorie2 = CategorieFactory.create(naam="twee") |
| 588 | + self.categorie3 = CategorieFactory.create(naam="drie") |
| 589 | + self.categorie4 = CategorieFactory.create(naam="vier") |
| 590 | + self.categorie5 = CategorieFactory.create(naam="vijf") |
| 591 | + |
| 592 | + self.categorie_relatie = CategorieRelatieFactory.create( |
| 593 | + partij=self.partij, categorie=self.categorie |
| 594 | + ) |
| 595 | + self.categorie_relatie2 = CategorieRelatieFactory.create( |
| 596 | + partij=self.partij2, categorie=self.categorie2 |
| 597 | + ) |
| 598 | + self.categorie_relatie3 = CategorieRelatieFactory.create( |
| 599 | + partij=self.partij3, categorie=self.categorie3 |
| 600 | + ) |
| 601 | + self.categorie_relatie4 = CategorieRelatieFactory.create( |
| 602 | + partij=self.partij4, categorie=self.categorie4 |
| 603 | + ) |
| 604 | + self.categorie_relatie5 = CategorieRelatieFactory.create( |
| 605 | + partij=self.partij5, categorie=self.categorie5 |
| 606 | + ) |
| 607 | + |
| 608 | + def test_filter_partij_url(self): |
| 609 | + partij_url = f"http://testserver/klantinteracties/api/v1/partijen/{str(self.partij5.uuid)}" |
| 610 | + response = self.client.get( |
| 611 | + self.url, |
| 612 | + {"partij__url": partij_url}, |
| 613 | + content_type="application/json", |
| 614 | + ) |
| 615 | + self.assertEqual(response.status_code, status.HTTP_200_OK) |
| 616 | + |
| 617 | + data = response.json()["results"] |
| 618 | + |
| 619 | + self.assertEqual(1, len(data)) |
| 620 | + self.assertEqual(str(self.categorie_relatie5.uuid), data[0]["uuid"]) |
| 621 | + |
| 622 | + with self.subTest("no_matches_found_return_nothing"): |
| 623 | + response = self.client.get( |
| 624 | + self.url, |
| 625 | + { |
| 626 | + "partij__url": f"http://testserver/klantinteracties/api/v1/partijen/{str(uuid4())}" |
| 627 | + }, |
| 628 | + ) |
| 629 | + self.assertEqual(response.status_code, status.HTTP_200_OK) |
| 630 | + |
| 631 | + self.assertEqual(response.json()["count"], 0) |
| 632 | + |
| 633 | + with self.subTest("invalid_value_returns_empty_query"): |
| 634 | + response = self.client.get(self.url, {"partij__url": "ValueError"}) |
| 635 | + self.assertEqual(response.status_code, status.HTTP_200_OK) |
| 636 | + |
| 637 | + self.assertEqual(response.json()["count"], 0) |
| 638 | + |
| 639 | + def test_filter_partij_uuid(self): |
| 640 | + response = self.client.get( |
| 641 | + self.url, |
| 642 | + {"partij__uuid": str(self.partij5.uuid)}, |
| 643 | + ) |
| 644 | + self.assertEqual(response.status_code, status.HTTP_200_OK) |
| 645 | + |
| 646 | + data = response.json()["results"] |
| 647 | + |
| 648 | + self.assertEqual(1, len(data)) |
| 649 | + self.assertEqual(str(self.categorie_relatie5.uuid), data[0]["uuid"]) |
| 650 | + |
| 651 | + with self.subTest("no_matches_found_return_nothing"): |
| 652 | + response = self.client.get( |
| 653 | + self.url, |
| 654 | + {"partij__uuid": str(uuid4())}, |
| 655 | + ) |
| 656 | + self.assertEqual(response.status_code, status.HTTP_200_OK) |
| 657 | + |
| 658 | + self.assertEqual(response.json()["count"], 0) |
| 659 | + |
| 660 | + with self.subTest("invalid_value_returns_empty_query"): |
| 661 | + response = self.client.get(self.url, {"partij__uuid": "ValueError"}) |
| 662 | + self.assertEqual(response.status_code, status.HTTP_200_OK) |
| 663 | + |
| 664 | + self.assertEqual(response.json()["count"], 0) |
| 665 | + |
| 666 | + def test_filter_partij_nummer(self): |
| 667 | + response = self.client.get( |
| 668 | + self.url, |
| 669 | + {"partij__nummer": "5555555555"}, |
| 670 | + ) |
| 671 | + self.assertEqual(response.status_code, status.HTTP_200_OK) |
| 672 | + |
| 673 | + data = response.json()["results"] |
| 674 | + |
| 675 | + self.assertEqual(1, len(data)) |
| 676 | + self.assertEqual(str(self.categorie_relatie5.uuid), data[0]["uuid"]) |
| 677 | + |
| 678 | + with self.subTest("no_matches_found_return_nothing"): |
| 679 | + response = self.client.get( |
| 680 | + self.url, |
| 681 | + {"partij__nummer": "8584395394"}, |
| 682 | + ) |
| 683 | + self.assertEqual(response.status_code, status.HTTP_200_OK) |
| 684 | + |
| 685 | + self.assertEqual(response.json()["count"], 0) |
| 686 | + |
| 687 | + def test_filter_categorie_url(self): |
| 688 | + categorie_url = f"http://testserver/klantinteracties/api/v1/categorieen/{str(self.categorie5.uuid)}" |
| 689 | + response = self.client.get( |
| 690 | + self.url, |
| 691 | + {"categorie__url": categorie_url}, |
| 692 | + content_type="application/json", |
| 693 | + ) |
| 694 | + self.assertEqual(response.status_code, status.HTTP_200_OK) |
| 695 | + |
| 696 | + data = response.json()["results"] |
| 697 | + |
| 698 | + self.assertEqual(1, len(data)) |
| 699 | + self.assertEqual(str(self.categorie_relatie5.uuid), data[0]["uuid"]) |
| 700 | + |
| 701 | + with self.subTest("no_matches_found_return_nothing"): |
| 702 | + response = self.client.get( |
| 703 | + self.url, |
| 704 | + { |
| 705 | + "categorie__url": f"http://testserver/klantinteracties/api/v1/categorieen/{str(uuid4())}" |
| 706 | + }, |
| 707 | + ) |
| 708 | + self.assertEqual(response.status_code, status.HTTP_200_OK) |
| 709 | + |
| 710 | + self.assertEqual(response.json()["count"], 0) |
| 711 | + |
| 712 | + with self.subTest("invalid_value_returns_empty_query"): |
| 713 | + response = self.client.get(self.url, {"categorie__url": "ValueError"}) |
| 714 | + self.assertEqual(response.status_code, status.HTTP_200_OK) |
| 715 | + |
| 716 | + self.assertEqual(response.json()["count"], 0) |
| 717 | + |
| 718 | + def test_filter_categorie_uuid(self): |
| 719 | + response = self.client.get( |
| 720 | + self.url, |
| 721 | + {"categorie__uuid": str(self.categorie5.uuid)}, |
| 722 | + ) |
| 723 | + self.assertEqual(response.status_code, status.HTTP_200_OK) |
| 724 | + |
| 725 | + data = response.json()["results"] |
| 726 | + |
| 727 | + self.assertEqual(1, len(data)) |
| 728 | + self.assertEqual(str(self.categorie_relatie5.uuid), data[0]["uuid"]) |
| 729 | + |
| 730 | + with self.subTest("no_matches_found_return_nothing"): |
| 731 | + response = self.client.get( |
| 732 | + self.url, |
| 733 | + {"categorie__uuid": str(uuid4())}, |
| 734 | + ) |
| 735 | + self.assertEqual(response.status_code, status.HTTP_200_OK) |
| 736 | + |
| 737 | + self.assertEqual(response.json()["count"], 0) |
| 738 | + |
| 739 | + with self.subTest("invalid_value_returns_empty_query"): |
| 740 | + response = self.client.get(self.url, {"categorie__uuid": "ValueError"}) |
| 741 | + self.assertEqual(response.status_code, status.HTTP_200_OK) |
| 742 | + |
| 743 | + self.assertEqual(response.json()["count"], 0) |
| 744 | + |
| 745 | + def test_filter_categorie_naam(self): |
| 746 | + response = self.client.get( |
| 747 | + self.url, |
| 748 | + {"categorie__naam": "vijf"}, |
| 749 | + ) |
| 750 | + self.assertEqual(response.status_code, status.HTTP_200_OK) |
| 751 | + |
| 752 | + data = response.json()["results"] |
| 753 | + |
| 754 | + self.assertEqual(1, len(data)) |
| 755 | + self.assertEqual(str(self.categorie_relatie5.uuid), data[0]["uuid"]) |
| 756 | + |
| 757 | + with self.subTest("no_matches_found_return_nothing"): |
| 758 | + response = self.client.get( |
| 759 | + self.url, |
| 760 | + {"categorie__naam": "zes"}, |
| 761 | + ) |
| 762 | + self.assertEqual(response.status_code, status.HTTP_200_OK) |
| 763 | + |
| 764 | + self.assertEqual(response.json()["count"], 0) |
0 commit comments