11from datetime import datetime , timedelta
2- from django .contrib .auth .hashers import make_password
32from tests .tests import CustomTestCase
43from maas .models import MAASProvider , MAASApiKey , MAASUsageRecord , sha256_key
54
@@ -9,17 +8,15 @@ def _create_provider(self, name='Test Provider', url='https://test.example.com',
98 return MAASProvider .objects .create (
109 name = name ,
1110 url = url ,
12- key = make_password (key ),
13- key_hash = sha256_key (key ),
11+ key = sha256_key (key ),
1412 is_active = True ,
1513 )
1614
1715 def _create_api_key (self , user , name = 'Test Key' , key = 'test-user-key' , expires_at = None ):
1816 return MAASApiKey .objects .create (
1917 user = user ,
2018 name = name ,
21- key = make_password (key ),
22- key_hash = sha256_key (key ),
19+ key = sha256_key (key ),
2320 expires_at = expires_at ,
2421 is_active = True ,
2522 )
@@ -290,6 +287,25 @@ def test_public_revoke_no_header(self):
290287 self .assertEqual (response .status_code , 200 )
291288
292289
290+ def _create_provider (name = 'Test Provider' , url = 'https://test.example.com' , key = 'test-provider-key' ):
291+ return MAASProvider .objects .create (
292+ name = name ,
293+ url = url ,
294+ key = sha256_key (key ),
295+ is_active = True ,
296+ )
297+
298+
299+ def _create_api_key (user , name = 'Test Key' , key = 'test-user-key' , expires_at = None ):
300+ return MAASApiKey .objects .create (
301+ user = user ,
302+ name = name ,
303+ key = sha256_key (key ),
304+ expires_at = expires_at ,
305+ is_active = True ,
306+ )
307+
308+
293309class MaasAdminTestCase (CustomTestCase ):
294310 def test_admin_provider_key_hashed_on_create (self ):
295311 response = self .admin_client .post ('/admin/maas/maasprovider/add/' , {
@@ -301,7 +317,7 @@ def test_admin_provider_key_hashed_on_create(self):
301317 self .assertRedirects (response , '/admin/maas/maasprovider/' )
302318 provider = MAASProvider .objects .get (name = 'Test Provider' )
303319 self .assertNotEqual (provider .key , 'my-secret-key' )
304- self .assertEqual (provider .key_hash , sha256_key ('my-secret-key' ))
320+ self .assertEqual (provider .key , sha256_key ('my-secret-key' ))
305321
306322 def test_admin_provider_key_not_plaintext (self ):
307323 self .admin_client .post ('/admin/maas/maasprovider/add/' , {
@@ -311,11 +327,11 @@ def test_admin_provider_key_not_plaintext(self):
311327 'is_active' : True ,
312328 })
313329 provider = MAASProvider .objects .get (name = 'Secret Provider' )
314- self .assertTrue (provider .key . startswith ( 'pbkdf2_' ) or provider . key . startswith ( 'argon2' ) or provider . key . startswith ( 'bcrypt ' ))
330+ self .assertEqual (provider .key , sha256_key ( 'super-secret-value ' ))
315331
316332 def test_admin_provider_edit_blank_key_preserves_existing (self ):
317- provider = self . _create_provider (key = 'original-key' )
318- original_key_hash = provider .key_hash
333+ provider = _create_provider (key = 'original-key' )
334+ original_key = provider .key
319335 response = self .admin_client .post (f'/admin/maas/maasprovider/{ provider .id } /change/' , {
320336 'name' : 'Updated Provider' ,
321337 'url' : 'https://updated.example.com' ,
@@ -325,18 +341,18 @@ def test_admin_provider_edit_blank_key_preserves_existing(self):
325341 self .assertRedirects (response , '/admin/maas/maasprovider/' )
326342 provider .refresh_from_db ()
327343 self .assertEqual (provider .name , 'Updated Provider' )
328- self .assertEqual (provider .key_hash , original_key_hash )
344+ self .assertEqual (provider .key , original_key )
329345
330346 def test_admin_provider_edit_new_key_overwrites (self ):
331- provider = self . _create_provider (key = 'original-key' )
347+ provider = _create_provider (key = 'original-key' )
332348 self .admin_client .post (f'/admin/maas/maasprovider/{ provider .id } /change/' , {
333349 'name' : 'Updated Provider' ,
334350 'url' : 'https://updated.example.com' ,
335351 'clear_text_key' : 'new-secret-key' ,
336352 'is_active' : True ,
337353 })
338354 provider .refresh_from_db ()
339- self .assertEqual (provider .key_hash , sha256_key ('new-secret-key' ))
355+ self .assertEqual (provider .key , sha256_key ('new-secret-key' ))
340356
341357 def test_admin_api_key_hashed_on_create (self ):
342358 response = self .admin_client .post ('/admin/maas/maasapikey/add/' , {
@@ -352,7 +368,7 @@ def test_admin_api_key_hashed_on_create(self):
352368 self .assertRedirects (response , '/admin/maas/maasapikey/' )
353369 api_key = MAASApiKey .objects .get (name = 'Admin Created Key' )
354370 self .assertNotEqual (api_key .key , 'admin-api-secret' )
355- self .assertEqual (api_key .key_hash , sha256_key ('admin-api-secret' ))
371+ self .assertEqual (api_key .key , sha256_key ('admin-api-secret' ))
356372
357373 def test_admin_api_key_not_plaintext (self ):
358374 self .admin_client .post ('/admin/maas/maasapikey/add/' , {
@@ -366,11 +382,11 @@ def test_admin_api_key_not_plaintext(self):
366382 'last_used_at_1' : '' ,
367383 })
368384 api_key = MAASApiKey .objects .get (name = 'Secret API Key' )
369- self .assertTrue (api_key .key . startswith ( 'pbkdf2_' ) or api_key . key . startswith ( 'argon2' ) or api_key . key . startswith ( 'bcrypt ' ))
385+ self .assertEqual (api_key .key , sha256_key ( 'secret-api-value ' ))
370386
371387 def test_admin_api_key_edit_blank_preserves_existing (self ):
372- api_key = self . _create_api_key (self .testuser , key = 'original-api-key' )
373- original_hash = api_key .key_hash
388+ api_key = _create_api_key (self .testuser , key = 'original-api-key' )
389+ original_hash = api_key .key
374390 self .admin_client .post (f'/admin/maas/maasapikey/{ api_key .id } /change/' , {
375391 'user' : self .testuser .pk ,
376392 'name' : 'Updated API Key' ,
@@ -383,4 +399,4 @@ def test_admin_api_key_edit_blank_preserves_existing(self):
383399 })
384400 api_key .refresh_from_db ()
385401 self .assertEqual (api_key .name , 'Updated API Key' )
386- self .assertEqual (api_key .key_hash , original_hash )
402+ self .assertEqual (api_key .key , original_hash )
0 commit comments