Пример #1
0
def add_user():
    response = create_generic_response_dict()
    
    if request.method == 'POST' or request.method == 'PUT':
        
        # create user
        data = request.form
        username = data.get('username',None)
        password = data.get('password', None)
        
        if username == None or password == None:
            # Let the caller know that username or password can not be empty.
            logger.info("Caught add_user request["+request.method+"] with insufficient parameters.")
            response['error'] = True
            response['message'] = 'Username and password can not be empty'
            return jsonify(response)
        
        first_name = data.get('firstname','')
        last_name = data.get('lastname','')
        email = data.get('email','')
        
        # Create user and assign values
        user = User(username, password)
        user.first_name = first_name
        user.last_name = last_name
        user.email = email
        
        if user.validate():
            datastore = UserStore()
            if not datastore.has_user(user) and not datastore.is_username_taken(user.username):
                # if doesn't exist then register user
                datastore.save_user(user);
                # success
                logger.info('Caught add_user request['+request.method+'] - User['+user.username+'] was successfully registered.')
                response['message'] = 'User was successfully created.'
                response['data'] = user.get_values_as_dict()
            else:
                # failed because it already exists?
                logger.info('Caught add_user request['+request.method+'] - User['+user.username+'] was already registered.')
                response['error'] = True
                response['message'] = 'User was not successfully created.  User information is not unique.'
            pass
        else:
            # Not valid
            logger.info('Caught add_user request['+request.method+'] - User['+user.username+'] did not validate correctly.')
            response['error'] = True
            response['message'] = 'User information was not validated correctly'
            response['data'] = user.get_errors()
            pass
        
    return jsonify(response)
Пример #2
0
class DataStoreTestCase(unittest.TestCase):
    
    database_path = "temp.db"
    provider = None
    
    def setUp(self):
        # userprovider.initialize(self.database_path)
        self.provider = UserStore()
        self.provider.set_database_path(self.database_path)
        pass

    def tearDown(self):
        #os.remove(self.database_path)
        self.provider.close()
        self.provider = None
        os.unlink(self.database_path)
        pass

    def testInitialize(self):
        
        
        # Check DB was created
        self.assertTrue(os.path.isfile(self.database_path), 'Temporary db should\'ve been created')
        
        # Check user_table was created.
        query = "SELECT * FROM sqlite_master WHERE type='table' AND name='user_table'"
        cursor = self.provider.__get_cursor__()
        cursor.execute(query)
        list = cursor.fetchall()
        self.assertTrue(len(list) > 0, "User_table should've been created")
        
    def test_add_user(self):
        
        data = {
                'username': '******',
                'password': '******'
                }
        
        # Create user
        user = User(data['username'], data['password'])
        self.provider.save_user(user)
        
        # Get user back and check if the same
        saved_user = self.provider.get_user(data['username'])
        self.assertEqual(user, saved_user, "Users should've been same")
        
        self.assertTrue(self.provider.has_user(user), "User should already exists")
        self.assertTrue(self.provider.is_username_taken(user.username), "Username should already exists")