class LoginTestCase(unittest.TestCase): '''A class used to run tests on the Users class in models.py. ''' def setUp(self): '''Creating an object from the models.py file for the class Users. ''' self.user = Users() def test_login_entry_happy_path(self): '''A method to test that the login in works with the right inputs. ''' self.user.users.clear() self.user.create_user("user1", "*****@*****.**", "password1", "password1") boolean_for_login_user = self.user.login_user("*****@*****.**", "password1") self.assertEqual(boolean_for_login_user, True) def test_login_entry_sad_path_1(self): '''A method to test that login does not work with wrong input of user email. ''' self.user.users.clear() self.user.create_user("user1", "*****@*****.**", "password1", "password1") boolean_for_login_user = self.user.login_user("*****@*****.**", "password1") self.assertEqual(boolean_for_login_user, None) def test_login_entry_sad_path_2(self): '''A method to test that login does not work with wrong input of password. ''' self.user.users.clear() self.user.create_user("user1", "*****@*****.**", "password1", "password1") boolean_for_login_user = self.user.login_user("*****@*****.**", "password2") self.assertEqual(boolean_for_login_user, None) def test_login_sets_right_user_id(self): '''A method to test that the right user id is set on login. ''' self.user.users.clear() self.user.create_user("user1", "*****@*****.**", "password1", "password1") self.user.create_user("user2", "*****@*****.**", "password2", "password2") self.user.create_user("user3", "*****@*****.**", "password3", "password3") self.user.login_user("*****@*****.**", "password3") self.assertEqual(models.USER_ID, 2) self.user.login_user("*****@*****.**", "password2") self.assertEqual(models.USER_ID, 1) self.user.login_user("*****@*****.**", "password1") self.assertEqual(models.USER_ID, 0)
def register_user(): '''Route to register a user''' user_data = request.get_json() email = user_data.get('email') username = user_data.get('username') password = user_data.get('password') data = {"username": username, "email": email, "password": password} if validate.inputs(data): return jsonify(validate.inputs(data)), 406 if validate.pattern(data): return jsonify(validate.pattern(data)), 406 if validate.existing(data): return jsonify(validate.existing(data)), 409 else: new_user = Users(email, username, password) new_user.create_user() response = { 'message': "Account successfully registered. Log In to access." } return make_response(jsonify(response['message'])), 201
class RegisterTestCase(unittest.TestCase): '''A class to test the registering function of the users for the bucket list. ''' def setUp(self): '''Creating an object of the Users class. ''' self.user = Users() def test_create_user_happy_path(self): '''A method to test that a user was created successfully with all inputs inserted correctly according to standards required. ''' self.user.users.clear() self.user.create_user("user4", "*****@*****.**", "password2", "password2") self.assertEqual(self.user.users[0].user_name, "user4") self.assertEqual(self.user.users[0].user_email, "*****@*****.**") self.assertEqual(self.user.users[0].user_password, "password2") def test_create_user_sad_path(self): '''A method to test that a user was not created with non-matching passwords. ''' self.user.users.clear() self.user.create_user("user2", "*****@*****.**", "password1", "password2") self.assertEqual(len(self.user.users), 0) def test_create_user_sad_path_2(self): '''A method to test that a user was not created with an empty user-name. ''' self.user.users.clear() self.user.create_user("", "*****@*****.**", "password1", "password2") self.assertEqual(len(self.user.users), 0) def test_create_user_sad_path_3(self): '''A method to test that a user was not created with an empty password. ''' self.user.users.clear() self.user.create_user("user2", "*****@*****.**", "", "") self.assertEqual(len(self.user.users), 0) def test_create_user_sad_path_4(self): '''A method to test that a user was not created with an empty email. ''' self.user.users.clear() self.user.create_user("user2", "", "ppp", "ppp") self.assertEqual(len(self.user.users), 0) def test_create_user_sad_path_5(self): '''A method to test that a second user was not created with a similar user-name as the first user. ''' self.user.users.clear() self.user.create_user("user4", "*****@*****.**", "password2", "password2") self.user.create_user("user4", "*****@*****.**", "password3", "password3") self.assertEqual(len(self.user.users), 1) def test_create_user_sad_path_6(self): '''A method to test that a second user was not created with a similar email as the first user. ''' self.user.users.clear() self.user.create_user("user1", "*****@*****.**", "password2", "password2") self.user.create_user("user4", "*****@*****.**", "password3", "password3") self.assertEqual(len(self.user.users), 1)