1- from typing import Optional , List
2-
31import re
2+ from typing import List , Optional
3+
44from django .contrib .auth .models import User
55from django .test import TransactionTestCase
6+ from faker import Faker
67from rest_framework .reverse import reverse
78from rest_framework .test import APITestCase
89
910from api .models import ClientAccount , ClientWallet , ClientWalletTransaction
1011
11- from faker import Faker
12-
1312
1413# api.tests.ClientAccountApiTests.test_create_regular_user_and_sign_in
1514class CommonApiTests (APITestCase ):
@@ -31,11 +30,6 @@ def create_user_auth(
3130 user .save ()
3231 return user
3332
34- # group, is_created = Group.objects.get_or_create(name='testgroup')
35- # user.groups.add(group)
36- # for perm in Permission.objects.all():
37- # group.permissions.add(perm)
38-
3933 def create_client_account (
4034 self , name : Optional [str ] = default_user_username ,
4135 surname : Optional [str ] = default_user_username ,
@@ -62,18 +56,6 @@ def create_client_transaction(
6256 amount = amount ,
6357 client_wallet_account = client_wallet , ** kwargs
6458 )
65- # def create_user_auth(cls):
66- # user, is_created = User.objects.get_or_create(username='testuser')
67- # user.set_password('aaa')
68- # user.is_staff = True
69- # user.is_active = True
70- # user.is_superuser = True
71- # user.save()
72- #
73- # group, is_created = Group.objects.get_or_create(name='testgroup')
74- # user.groups.add(group)
75- # for perm in Permission.objects.all():
76- # group.permissions.add(perm)
7759
7860 def set_url (self , name : str , kwargs : object = None ) -> None :
7961 self .url = reverse (name , kwargs = kwargs )
@@ -128,7 +110,11 @@ def test_create_regular_user_and_sign_in(self):
128110 self .set_url ('api:user_api-list' )
129111 response = self .client .post (self .url , data = payload , format = 'json' )
130112 self .assertEqual (201 , response .status_code )
131- self .assertDictContainsSubset (response_data , response .json ())
113+
114+ response_data_unique_items = set (response_data .items ())
115+ response_json_unique_items = set (response .json ().items ())
116+ self .assertTrue (response_data_unique_items .issubset (response_json_unique_items ))
117+
132118 self .assertTrue (
133119 self .client .login (username = payload .get ('username' ), password = payload .get ('password' )),
134120 msg = 'Login error'
@@ -151,7 +137,11 @@ def test_create_staff_user_and_sign_in(self):
151137 self .set_url ('api:user_api-list' )
152138 response = self .client .post (self .url , data = payload , format = 'json' )
153139 self .assertEqual (201 , response .status_code )
154- self .assertDictContainsSubset (response_data , response .json ())
140+
141+ response_data_unique_items = set (response_data .items ())
142+ response_json_unique_items = set (response .json ().items ())
143+ self .assertTrue (response_data_unique_items .issubset (response_json_unique_items ))
144+
155145 self .assertTrue (
156146 self .client .login (username = payload .get ('username' ), password = payload .get ('password' )),
157147 msg = 'Login error'
@@ -183,7 +173,10 @@ def test_update_regular_user(self):
183173 self .set_url ('api:user_api-detail' , kwargs = api_url_params )
184174 response = self .client .patch (self .url , data = payload , format = 'json' )
185175 self .assertEqual (200 , response .status_code )
186- self .assertDictContainsSubset (response_data , response .json ())
176+
177+ response_data_unique_items = set (response_data .items ())
178+ response_json_unique_items = set (response .json ().items ())
179+ self .assertTrue (response_data_unique_items .issubset (response_json_unique_items ))
187180
188181 def test_update_staff_user (self ):
189182 username_password = self .fake .unique .name ().lower ().replace (' ' , '_' )
@@ -212,7 +205,10 @@ def test_update_staff_user(self):
212205
213206 response = self .client .patch (self .url , data = payload , format = 'json' )
214207 self .assertEqual (200 , response .status_code )
215- self .assertDictContainsSubset (response_data , response .json ())
208+
209+ response_data_unique_items = set (response_data .items ())
210+ response_json_unique_items = set (response .json ().items ())
211+ self .assertTrue (response_data_unique_items .issubset (response_json_unique_items ))
216212
217213
218214class ClientAccountApiTests (CommonApiTests ):
@@ -261,7 +257,11 @@ def test_create_as_regular_user(self):
261257 self .set_url ('api:client_api-list' )
262258 response = self .client .post (self .url , data = payload , format = 'json' )
263259 self .assertEqual (201 , response .status_code )
264- self .assertDictContainsSubset (payload , response .json ())
260+
261+ payload_unique_items = set (payload .items ())
262+ response_json_unique_items = set (response .json ().items ())
263+ self .assertTrue (payload_unique_items .issubset (response_json_unique_items ))
264+
265265 self .assertTrue (ClientAccount .objects .get (user_account = user .id ))
266266 self .client .logout ()
267267
@@ -283,7 +283,11 @@ def test_create_a_regular_user_as_staff_user(self):
283283 self .set_url ('api:client_api-list' )
284284 response = self .client .post (self .url , data = payload , format = 'json' )
285285 self .assertEqual (201 , response .status_code )
286- self .assertDictContainsSubset (payload , response .json ())
286+
287+ payload_unique_items = set (payload .items ())
288+ response_json_unique_items = set (response .json ().items ())
289+ self .assertTrue (payload_unique_items .issubset (response_json_unique_items ))
290+
287291 self .client .logout ()
288292
289293 def test_partial_update (self ):
@@ -298,7 +302,11 @@ def test_partial_update(self):
298302 self .set_url ('api:client_api-detail' , kwargs = api_url_params )
299303 response = self .client .patch (self .url , data = payload , format = 'json' )
300304 self .assertEqual (200 , response .status_code )
301- self .assertDictContainsSubset (payload , response .json ())
305+
306+ payload_unique_items = set (payload .items ())
307+ response_json_unique_items = set (response .json ().items ())
308+ self .assertTrue (payload_unique_items .issubset (response_json_unique_items ))
309+
302310 self .client .logout ()
303311
304312 def test_staff_updates_regular_user_account (self ):
@@ -313,7 +321,11 @@ def test_staff_updates_regular_user_account(self):
313321 self .set_url ('api:client_api-detail' , kwargs = api_url_params )
314322 response = self .client .patch (self .url , data = payload , format = 'json' )
315323 self .assertEqual (200 , response .status_code )
316- self .assertDictContainsSubset (payload , response .json ())
324+
325+ payload_unique_items = set (payload .items ())
326+ response_json_unique_items = set (response .json ().items ())
327+ self .assertTrue (payload_unique_items .issubset (response_json_unique_items ))
328+
317329 self .client .logout ()
318330
319331 def test_regular_user_can_not_update_staff_account (self ):
@@ -418,7 +430,11 @@ def test_create_regular_user_wallets_as_regular_user(self):
418430 self .set_url (f'{ self .api_reverse_url } -list' )
419431 response = self .client .post (self .url , data = payload , format = 'json' )
420432 self .assertEqual (201 , response .status_code )
421- self .assertDictContainsSubset (response_data , response .json ())
433+
434+ response_data_unique_items = set (response_data .items ())
435+ response_json_unique_items = set (response .json ().items ())
436+ self .assertTrue (response_data_unique_items .issubset (response_json_unique_items ))
437+
422438 print (f'{ num_iterations } wallets done' )
423439 self .client .logout ()
424440
@@ -464,7 +480,11 @@ def test_create_regular_user_wallets_as_staff_user(self):
464480 self .set_url (f'{ self .api_reverse_url } -list' )
465481 response = self .client .post (self .url , data = payload , format = 'json' )
466482 self .assertEqual (201 , response .status_code )
467- self .assertDictContainsSubset (response_data , response .json ())
483+
484+ response_data_unique_items = set (response_data .items ())
485+ response_json_unique_items = set (response .json ().items ())
486+ self .assertTrue (response_data_unique_items .issubset (response_json_unique_items ))
487+
468488 print (f'{ num_iterations } transactions done' )
469489 self .client .logout ()
470490
@@ -494,7 +514,11 @@ def test_create_staff_user_wallets_as_staff_user(self):
494514 self .set_url (f'{ self .api_reverse_url } -list' )
495515 response = self .client .post (self .url , data = payload , format = 'json' )
496516 self .assertEqual (201 , response .status_code )
497- self .assertDictContainsSubset (response_data , response .json ())
517+
518+ response_data_unique_items = set (response_data .items ())
519+ response_json_unique_items = set (response .json ().items ())
520+ self .assertTrue (response_data_unique_items .issubset (response_json_unique_items ))
521+
498522 print (f'{ num_iterations } transactions done' )
499523 self .client .logout ()
500524
@@ -660,7 +684,11 @@ def test_create_regular_user_transactions_as_regular_user(self):
660684 self .set_url ('api:client_wallet_transaction_api-list' )
661685 response = self .client .post (self .url , data = payload , format = 'json' )
662686 self .assertEqual (201 , response .status_code )
663- self .assertDictContainsSubset (response_data , response .json ())
687+
688+ response_data_unique_items = set (response_data .items ())
689+ response_json_unique_items = set (response .json ().items ())
690+ self .assertTrue (response_data_unique_items .issubset (response_json_unique_items ))
691+
664692 print (f'{ num_iterations } transactions done' )
665693 self .client .logout ()
666694
@@ -720,7 +748,11 @@ def test_create_regular_user_transactions_as_staff_user(self):
720748 self .set_url ('api:client_wallet_transaction_api-list' )
721749 response = self .client .post (self .url , data = payload , format = 'json' )
722750 self .assertEqual (201 , response .status_code )
723- self .assertDictContainsSubset (response_data , response .json ())
751+
752+ response_data_unique_items = set (response_data .items ())
753+ response_json_unique_items = set (response .json ().items ())
754+ self .assertTrue (response_data_unique_items .issubset (response_json_unique_items ))
755+
724756 print (f'{ num_iterations } transactions done' )
725757 self .client .logout ()
726758
@@ -760,7 +792,11 @@ def test_create_staff_user_transactions_as_staff_user(self):
760792 self .set_url ('api:client_wallet_transaction_api-list' )
761793 response = self .client .post (self .url , data = payload , format = 'json' )
762794 self .assertEqual (201 , response .status_code )
763- self .assertDictContainsSubset (response_data , response .json ())
795+
796+ response_data_unique_items = set (response_data .items ())
797+ response_json_unique_items = set (response .json ().items ())
798+ self .assertTrue (response_data_unique_items .issubset (response_json_unique_items ))
799+
764800 print (f'{ num_iterations } transactions done' )
765801 self .client .logout ()
766802
0 commit comments