コード例 #1
0
 def _test_account_creation( self ):
     
     result = self._read( 'account_types', self._tag_service_key )
     
     ( service_admin_at, ) = result
     
     self.assertEqual( service_admin_at.GetTitle(), 'service admin' )
     self.assertEqual( service_admin_at.GetPermissions(), [ HC.GET_DATA, HC.POST_DATA, HC.POST_PETITIONS, HC.RESOLVE_PETITIONS, HC.MANAGE_USERS, HC.GENERAL_ADMIN ] )
     self.assertEqual( service_admin_at.GetMaxBytes(), None )
     self.assertEqual( service_admin_at.GetMaxRequests(), None )
     
     #
     
     user_at = HydrusData.AccountType( 'user', [ HC.GET_DATA, HC.POST_DATA ], ( 50000, 500 ) )
     
     edit_log = [ ( HC.ADD, user_at ) ]
     
     self._write( 'account_types', self._tag_service_key, edit_log )
     
     result = self._read( 'account_types', self._tag_service_key )
     
     ( at_1, at_2 ) = result
     
     d = { at_1.GetTitle() : at_1, at_2.GetTitle() : at_2 }
     
     at = d[ 'user' ]
     
     self.assertEqual( at.GetPermissions(), [ HC.GET_DATA, HC.POST_DATA ] )
     self.assertEqual( at.GetMaxBytes(), 50000 )
     self.assertEqual( at.GetMaxRequests(), 500 )
     
     #
     
     user_at_diff = HydrusData.AccountType( 'user different', [ HC.GET_DATA ], ( 40000, None ) )
     
     edit_log = [ ( HC.EDIT, ( 'user', user_at_diff ) ) ]
     
     self._write( 'account_types', self._tag_service_key, edit_log )
     
     result = self._read( 'account_types', self._tag_service_key )
     
     ( at_1, at_2 ) = result
     
     d = { at_1.GetTitle() : at_1, at_2.GetTitle() : at_2 }
     
     at = d[ 'user different' ]
     
     self.assertEqual( at.GetPermissions(), [ HC.GET_DATA ] )
     self.assertEqual( at.GetMaxBytes(), 40000 )
     self.assertEqual( at.GetMaxRequests(), None )
     
     #
     
     r_keys = self._read( 'registration_keys', self._tag_service_key, 5, 'user different', 86400 * 365 )
     
     self.assertEqual( len( r_keys ), 5 )
     
     for r_key in r_keys: self.assertEqual( len( r_key ), 32 )
     
     r_key = r_keys[0]
     
     access_key = self._read( 'access_key', self._tag_service_key, r_key )
     access_key_2 = self._read( 'access_key', self._tag_service_key, r_key )
     
     self.assertNotEqual( access_key, access_key_2 )
     
     self.assertRaises( HydrusExceptions.InsufficientCredentialsException, self._read, 'account_key_from_access_key', self._tag_service_key, access_key )
     
     account_key = self._read( 'account_key_from_access_key', self._tag_service_key, access_key_2 )
     
     self.assertRaises( HydrusExceptions.InsufficientCredentialsException, self._read, 'access_key', r_key )