Skip to content

Commit c0ef29f

Browse files
annashamraySonnyBA
authored andcommitted
👌 [maykinmedia/open-api-framework#66] change mocks for 'register_kanalen' tests
1 parent 3a70892 commit c0ef29f

File tree

1 file changed

+37
-32
lines changed

1 file changed

+37
-32
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
from io import StringIO
2-
from unittest.mock import call, patch
32

43
from django.contrib.sites.models import Site
54
from django.core.management import call_command
65
from django.test import override_settings
76

7+
import requests_mock
88
from notifications_api_common.kanalen import KANAAL_REGISTRY
99
from notifications_api_common.models import NotificationsConfig
1010
from rest_framework.test import APITestCase
@@ -14,6 +14,8 @@
1414
from objects.api.kanalen import ObjectKanaal
1515
from objects.core.models import Object
1616

17+
NOTIFICATIONS_API_ROOT = "https://notificaties-api.vng.cloud/api/v1/"
18+
1719

1820
@override_settings(IS_HTTPS=True)
1921
class CreateNotifKanaalTestCase(APITestCase):
@@ -28,7 +30,7 @@ def setUpTestData(cls):
2830
cls.addClassCleanup(lambda: KANAAL_REGISTRY.remove(kanaal))
2931

3032
service, _ = Service.objects.update_or_create(
31-
api_root="https://notificaties-api.vng.cloud/api/v1/",
33+
api_root=NOTIFICATIONS_API_ROOT,
3234
defaults=dict(
3335
api_type=APITypes.nrc,
3436
client_id="test",
@@ -41,13 +43,13 @@ def setUpTestData(cls):
4143
config.notifications_api_service = service
4244
config.save()
4345

44-
@patch("notifications_api_common.models.NotificationsConfig.get_client")
45-
def test_kanaal_create_with_name(self, mock_get_client):
46+
@requests_mock.Mocker()
47+
def test_kanaal_create_with_name(self, m):
4648
"""
4749
Test is request to create kanaal is send with specified kanaal name
4850
"""
49-
client = mock_get_client.return_value
50-
client.get.return_value = []
51+
m.get(f"{NOTIFICATIONS_API_ROOT}kanaal?naam=kanaal_test", json=[])
52+
m.post(f"{NOTIFICATIONS_API_ROOT}kanaal")
5153

5254
stdout = StringIO()
5355
call_command(
@@ -56,47 +58,50 @@ def test_kanaal_create_with_name(self, mock_get_client):
5658
stdout=stdout,
5759
)
5860

59-
client.post.assert_called_once_with(
60-
"kanaal",
61-
json={
61+
self.assertEqual(m.last_request.url, f"{NOTIFICATIONS_API_ROOT}kanaal")
62+
self.assertEqual(m.last_request.method, "POST")
63+
self.assertEqual(
64+
m.last_request.json(),
65+
{
6266
"naam": "kanaal_test",
6367
"documentatieLink": "https://example.com/ref/kanalen/#kanaal_test",
6468
"filters": [],
6569
},
6670
)
6771

68-
@patch("notifications_api_common.models.NotificationsConfig.get_client")
6972
@override_settings(NOTIFICATIONS_KANAAL="dummy-kanaal")
70-
def test_kanaal_create_without_name(self, mock_get_client):
73+
@requests_mock.Mocker()
74+
def test_kanaal_create_without_name(self, m):
7175
"""
7276
Test is request to create kanaal is send with default kanaal name
7377
"""
74-
client = mock_get_client.return_value
75-
client.get.return_value = []
78+
m.get(f"{NOTIFICATIONS_API_ROOT}kanaal", json=[])
79+
m.post(f"{NOTIFICATIONS_API_ROOT}kanaal")
7680

7781
stdout = StringIO()
7882
call_command(
7983
"register_kanalen",
8084
stdout=stdout,
8185
)
8286

83-
client.post.assert_has_calls(
84-
[
85-
call(
86-
"kanaal",
87-
json={
88-
"naam": "kanaal_test",
89-
"documentatieLink": "https://example.com/ref/kanalen/#kanaal_test",
90-
"filters": [],
91-
},
92-
),
93-
call(
94-
"kanaal",
95-
json={
96-
"naam": "objecten",
97-
"documentatieLink": "https://example.com/ref/kanalen/#objecten",
98-
"filters": ["object_type"],
99-
},
100-
),
101-
]
87+
post_req1, post_req2 = [
88+
req
89+
for req in m.request_history
90+
if req.method == "POST" and req.url == f"{NOTIFICATIONS_API_ROOT}kanaal"
91+
]
92+
self.assertEqual(
93+
post_req1.json(),
94+
{
95+
"naam": "kanaal_test",
96+
"documentatieLink": "https://example.com/ref/kanalen/#kanaal_test",
97+
"filters": [],
98+
},
99+
)
100+
self.assertEqual(
101+
post_req2.json(),
102+
{
103+
"naam": "objecten",
104+
"documentatieLink": "https://example.com/ref/kanalen/#objecten",
105+
"filters": ["object_type"],
106+
},
102107
)

0 commit comments

Comments
 (0)