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)
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")