Skip to content

Commit 34dbfcf

Browse files
committed
[fix] Failing tests fix
1 parent d25ab75 commit 34dbfcf

File tree

11 files changed

+113
-85
lines changed

11 files changed

+113
-85
lines changed

openwisp_controller/config/api/serializers.py

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -382,29 +382,29 @@ def update(self, instance, validated_data):
382382
class ReversionSerializer(BaseSerializer):
383383
user_id = serializers.SerializerMethodField()
384384
date_created = serializers.DateTimeField(
385-
source="revision.date_created", read_only=True
385+
source='revision.date_created', read_only=True
386386
)
387-
comment = serializers.CharField(source="revision.comment", read_only=True)
387+
comment = serializers.CharField(source='revision.comment', read_only=True)
388388
content_type = serializers.SerializerMethodField()
389389

390390
class Meta:
391391
model = Version
392392
fields = [
393-
"id",
394-
"revision_id",
395-
"object_id",
396-
"content_type",
397-
"db",
398-
"format",
399-
"serialized_data",
400-
"object_repr",
401-
"user_id",
402-
"date_created",
403-
"comment",
393+
'id',
394+
'revision_id',
395+
'object_id',
396+
'content_type',
397+
'db',
398+
'format',
399+
'serialized_data',
400+
'object_repr',
401+
'user_id',
402+
'date_created',
403+
'comment',
404404
]
405405

406406
def get_user_id(self, obj):
407-
return getattr(obj.revision, "user_id", None)
407+
return getattr(obj.revision, 'user_id', None)
408408

409409
def get_content_type(self, obj):
410-
return getattr(obj.content_type, "model", None)
410+
return getattr(obj.content_type, 'model', None)

openwisp_controller/config/api/urls.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,17 +14,17 @@ def get_api_urls(api_views):
1414
if getattr(settings, 'OPENWISP_CONTROLLER_API', True):
1515
return [
1616
path(
17-
'controller/<str:model_slug>/revision/',
17+
'controller/<str:model>/revision/',
1818
api_views.revision_list,
1919
name='revision_list',
2020
),
2121
path(
22-
'controller/<str:model_slug>/revision/<str:pk>/',
22+
'controller/<str:model>/revision/<str:pk>/',
2323
api_views.revision_detail,
2424
name='revision_detail',
2525
),
2626
path(
27-
'controller/<str:model_slug>/revision/<str:pk>/restore/',
27+
'controller/<str:model>/revision/<str:pk>/restore/',
2828
api_views.revision_restore,
2929
name='revision_restore',
3030
),

openwisp_controller/config/api/views.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -306,7 +306,7 @@ class RevisionListView(ProtectedAPIMixin, AutoRevisionMixin, ListAPIView):
306306
serializer_class = ReversionSerializer
307307

308308
def get_queryset(self):
309-
model_slug = self.kwargs.get('model_slug').lower()
309+
model_slug = self.kwargs.get('model').lower()
310310
return (
311311
Version.objects.select_related('revision')
312312
.filter(content_type__model=model_slug)
@@ -318,7 +318,7 @@ class RevisionDetailView(ProtectedAPIMixin, RetrieveAPIView):
318318
serializer_class = ReversionSerializer
319319

320320
def get_queryset(self):
321-
model_slug = self.kwargs.get('model_slug').lower()
321+
model_slug = self.kwargs.get('model').lower()
322322
return (
323323
Version.objects.select_related('revision')
324324
.filter(content_type__model=model_slug)
@@ -330,7 +330,7 @@ class RevisionRestoreView(ProtectedAPIMixin, GenericAPIView):
330330
serializer_class = serializers.Serializer
331331

332332
def get_queryset(self):
333-
model_slug = self.kwargs.get('model_slug').lower()
333+
model_slug = self.kwargs.get('model').lower()
334334
return (
335335
Version.objects.select_related('revision')
336336
.filter(content_type__model=model_slug)

openwisp_controller/config/tests/test_api.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1580,25 +1580,25 @@ def test_revision_list_and_restore_api(self):
15801580
self.assertEqual(response.status_code, 200)
15811581
self.assertEqual(response.data['name'], 'change-test-device')
15821582

1583-
path = reverse("config_api:revision_list", args=[model_slug])
1583+
path = reverse('config_api:revision_list', args=[model_slug])
15841584
response = self.client.get(path)
15851585
response_json = response.json()
15861586
version_id = response_json[1]["id"]
15871587
self.assertEqual(response.status_code, 200)
15881588
self.assertEqual(len(response_json), 2)
15891589

1590-
with self.subTest("Test revision detail"):
1591-
path = reverse("config_api:revision_detail", args=[model_slug, version_id])
1590+
with self.subTest('Test revision detail'):
1591+
path = reverse('config_api:revision_detail', args=[model_slug, version_id])
15921592
response = self.client.get(path)
15931593
self.assertEqual(response.status_code, 200)
1594-
self.assertEqual(response.json()["id"], version_id)
1595-
self.assertEqual(response.json()["object_id"], str(device.pk))
1594+
self.assertEqual(response.json()['id'], version_id)
1595+
self.assertEqual(response.json()['object_id'], str(device.pk))
15961596

1597-
with self.subTest("Test revision restore view"):
1598-
revision_id = response_json[1]["revision_id"]
1597+
with self.subTest('Test revision restore view'):
1598+
revision_id = response_json[1]['revision_id']
15991599
path = reverse(
1600-
"config_api:revision_restore", args=[model_slug, revision_id]
1600+
'config_api:revision_restore', args=[model_slug, revision_id]
16011601
)
16021602
response = self.client.post(path)
16031603
self.assertEqual(response.status_code, 200)
1604-
self.assertEqual(Device.objects.get(name="test").pk, device.pk)
1604+
self.assertEqual(Device.objects.get(name='test').pk, device.pk)

openwisp_controller/connection/api/views.py

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
from openwisp_users.api.mixins import ProtectedAPIMixin as BaseProtectedAPIMixin
1515

1616
from ...mixins import (
17+
AutoRevisionMixin,
1718
ProtectedAPIMixin,
1819
RelatedDeviceModelPermission,
1920
RelatedDeviceProtectedAPIMixin,
@@ -61,7 +62,7 @@ def get_serializer_context(self):
6162
return context
6263

6364

64-
class CommandListCreateView(BaseCommandView, ListCreateAPIView):
65+
class CommandListCreateView(BaseCommandView, AutoRevisionMixin, ListCreateAPIView):
6566
pagination_class = ListViewPagination
6667

6768
def create(self, request, *args, **kwargs):
@@ -81,13 +82,15 @@ def get_object(self):
8182
return obj
8283

8384

84-
class CredentialListCreateView(ProtectedAPIMixin, ListCreateAPIView):
85+
class CredentialListCreateView(ProtectedAPIMixin, AutoRevisionMixin, ListCreateAPIView):
8586
queryset = Credentials.objects.order_by('-created')
8687
serializer_class = CredentialSerializer
8788
pagination_class = ListViewPagination
8889

8990

90-
class CredentialDetailView(ProtectedAPIMixin, RetrieveUpdateDestroyAPIView):
91+
class CredentialDetailView(
92+
ProtectedAPIMixin, AutoRevisionMixin, RetrieveUpdateDestroyAPIView
93+
):
9194
queryset = Credentials.objects.all()
9295
serializer_class = CredentialSerializer
9396

@@ -119,7 +122,9 @@ def get_parent_queryset(self):
119122
return Device.objects.filter(pk=self.kwargs['device_pk'])
120123

121124

122-
class DeviceConnenctionListCreateView(BaseDeviceConnection, ListCreateAPIView):
125+
class DeviceConnenctionListCreateView(
126+
BaseDeviceConnection, AutoRevisionMixin, ListCreateAPIView
127+
):
123128
pagination_class = ListViewPagination
124129

125130
def get_queryset(self):
@@ -131,7 +136,9 @@ def get_queryset(self):
131136
)
132137

133138

134-
class DeviceConnectionDetailView(BaseDeviceConnection, RetrieveUpdateDestroyAPIView):
139+
class DeviceConnectionDetailView(
140+
BaseDeviceConnection, AutoRevisionMixin, RetrieveUpdateDestroyAPIView
141+
):
135142
def get_object(self):
136143
queryset = self.filter_queryset(self.get_queryset())
137144
filter_kwargs = {

openwisp_controller/connection/tests/test_api.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -458,7 +458,7 @@ def test_post_deviceconnection_list(self):
458458
'enabled': True,
459459
'failure_reason': '',
460460
}
461-
with self.assertNumQueries(13):
461+
with self.assertNumQueries(23):
462462
response = self.client.post(path, data, content_type='application/json')
463463
self.assertEqual(response.status_code, 201)
464464

@@ -503,7 +503,7 @@ def test_put_devceconnection_detail(self):
503503
'enabled': False,
504504
'failure_reason': '',
505505
}
506-
with self.assertNumQueries(14):
506+
with self.assertNumQueries(23):
507507
response = self.client.put(path, data, content_type='application/json')
508508
self.assertEqual(response.status_code, 200)
509509
self.assertEqual(
@@ -517,7 +517,7 @@ def test_patch_deviceconnectoin_detail(self):
517517
path = reverse('connection_api:deviceconnection_detail', args=(d1, dc.pk))
518518
self.assertEqual(dc.update_strategy, app_settings.UPDATE_STRATEGIES[0][0])
519519
data = {'update_strategy': app_settings.UPDATE_STRATEGIES[1][0]}
520-
with self.assertNumQueries(13):
520+
with self.assertNumQueries(22):
521521
response = self.client.patch(path, data, content_type='application/json')
522522
self.assertEqual(response.status_code, 200)
523523
self.assertEqual(

openwisp_controller/geo/api/views.py

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,11 @@
1414
from openwisp_users.api.filters import OrganizationManagedFilter
1515
from openwisp_users.api.mixins import FilterByOrganizationManaged, FilterByParentManaged
1616

17-
from ...mixins import ProtectedAPIMixin, RelatedDeviceProtectedAPIMixin
17+
from ...mixins import (
18+
AutoRevisionMixin,
19+
ProtectedAPIMixin,
20+
RelatedDeviceProtectedAPIMixin,
21+
)
1822
from .filters import DeviceListFilter
1923
from .serializers import (
2024
DeviceCoordinatesSerializer,
@@ -57,7 +61,9 @@ class ListViewPagination(pagination.PageNumberPagination):
5761
max_page_size = 100
5862

5963

60-
class DeviceCoordinatesView(ProtectedAPIMixin, generics.RetrieveUpdateAPIView):
64+
class DeviceCoordinatesView(
65+
ProtectedAPIMixin, AutoRevisionMixin, generics.RetrieveUpdateAPIView
66+
):
6167
serializer_class = DeviceCoordinatesSerializer
6268
permission_classes = (DevicePermission,)
6369
queryset = Device.objects.select_related(
@@ -105,6 +111,7 @@ def create_location(self, device):
105111

106112
class DeviceLocationView(
107113
RelatedDeviceProtectedAPIMixin,
114+
AutoRevisionMixin,
108115
generics.RetrieveUpdateDestroyAPIView,
109116
):
110117
serializer_class = DeviceLocationSerializer
@@ -204,7 +211,9 @@ def get_queryset(self):
204211
return qs
205212

206213

207-
class FloorPlanListCreateView(ProtectedAPIMixin, generics.ListCreateAPIView):
214+
class FloorPlanListCreateView(
215+
ProtectedAPIMixin, AutoRevisionMixin, generics.ListCreateAPIView
216+
):
208217
serializer_class = FloorPlanSerializer
209218
queryset = FloorPlan.objects.select_related().order_by('-created')
210219
pagination_class = ListViewPagination
@@ -214,13 +223,16 @@ class FloorPlanListCreateView(ProtectedAPIMixin, generics.ListCreateAPIView):
214223

215224
class FloorPlanDetailView(
216225
ProtectedAPIMixin,
226+
AutoRevisionMixin,
217227
generics.RetrieveUpdateDestroyAPIView,
218228
):
219229
serializer_class = FloorPlanSerializer
220230
queryset = FloorPlan.objects.select_related()
221231

222232

223-
class LocationListCreateView(ProtectedAPIMixin, generics.ListCreateAPIView):
233+
class LocationListCreateView(
234+
ProtectedAPIMixin, AutoRevisionMixin, generics.ListCreateAPIView
235+
):
224236
serializer_class = LocationSerializer
225237
queryset = Location.objects.order_by('-created')
226238
pagination_class = ListViewPagination
@@ -230,6 +242,7 @@ class LocationListCreateView(ProtectedAPIMixin, generics.ListCreateAPIView):
230242

231243
class LocationDetailView(
232244
ProtectedAPIMixin,
245+
AutoRevisionMixin,
233246
generics.RetrieveUpdateDestroyAPIView,
234247
):
235248
serializer_class = LocationSerializer

0 commit comments

Comments
 (0)