def test_new_user_not_allowed(): try: ru = User.create_user("student_coll1_1", "cows") User.create_new_user(ru, 'college-1', 'first', 'last') assert False except Exception as e: assert "student_coll1_1" in str(e)
def test_new_user_not_authed(): try: ru = User.create_user("teacher_coll1") User.create_new_user(ru, 'college-1', 'first', 'last') assert False except Exception as e: assert "teacher_coll1" in str(e)
def test_new_user_wrong_college(): try: ru = User.create_user("teacher_coll1", "facebees") User.create_new_user(ru, 'college-2', 'first', 'last') assert False except Exception as e: assert "teacher_coll1" in str(e) assert 'college-2' in str(e)
def register_user(requesting_user): if not requesting_user.can_register_users: return json.dumps({"error":"YOU_CANT_REGISTER_USERS"}), 403 teacher_username = requesting_user.username college_group = request.form["college"].strip() first_name = request.form["first_name"].strip() last_name = request.form["last_name"].strip() email = request.form["email"].strip() team = request.form["team"].strip() if College(college_group) not in requesting_user.colleges: return json.dumps({"error":"BAD_COLLEGE"}), 403 if team not in [t.name for t in College(college_group).teams]: return json.dumps({"error":"BAD_TEAM"}), 403 if not helpers.is_email_valid(email): return json.dumps({"error":"BAD_EMAIL"}), 403 if not helpers.is_name_valid(first_name): return json.dumps({"error":"BAD_FIRST_NAME"}), 403 if not helpers.is_name_valid(last_name): return json.dumps({"error":"BAD_LAST_NAME"}), 403 if User.name_used(first_name, last_name) or helpers.email_used(email): return json.dumps({"error":"DETAILS_ALREADY_USED"}), 403 u = User.create_new_user(requesting_user, college_group, first_name, last_name) verify_code = helpers.create_verify_code(u.username, email) pu = PendingUser(u.username) pu.teacher_username = teacher_username pu.college = college_group pu.email = email pu.team = team pu.verify_code = verify_code pu.save() log_action('registering user', pu) url = url_for('activate_account', username=u.username, code=verify_code, _external=True) pu.send_welcome_email(first_name, url) rqu_email_vars = { 'name': requesting_user.first_name, 'activation_days': ACTIVATION_DAYS, 'pu_first_name': first_name, 'pu_last_name': last_name, 'pu_username': pu.username, 'pu_college': College(pu.college).name, 'pu_email': pu.email, 'pu_team': pu.team } mailer.email_template(requesting_user.email, 'user_requested', rqu_email_vars) return "{}", 202
def register_user(): ah = AuthHelper(request) if ah.auth_will_succeed: requesting_user = ah.user if requesting_user.can_register_users: teacher_username = requesting_user.username college_group = request.form["college"].strip() first_name = request.form["first_name"].strip() last_name = request.form["last_name"].strip() email = request.form["email"].strip() team = request.form["team"].strip() if College(college_group) not in requesting_user.colleges: return json.dumps({"error":"BAD_COLLEGE"}), 403 if team not in [t.name for t in College(college_group).teams]: return json.dumps({"error":"BAD_TEAM"}), 403 if User.name_used(first_name, last_name) or helpers.email_used(email): return json.dumps({"error":"DETAILS_ALREADY_USED"}), 403 u = User.create_new_user(requesting_user, college_group, first_name, last_name) verify_code = helpers.create_verify_code(u.username, email) pu = PendingUser(u.username) pu.teacher_username = teacher_username pu.college = college_group pu.email = email pu.team = team pu.verify_code = verify_code pu.save() url = url_for('activate_account', username=u.username, code=verify_code, _external=True) pu.send_welcome_email(first_name, url) rqu_email_vars = { 'name': requesting_user.first_name, 'pu_first_name': first_name, 'pu_last_name': last_name, 'pu_username': pu.username, 'pu_college': College(pu.college).name, 'pu_email': pu.email, 'pu_team': pu.team } mailer.email_template(requesting_user.email, 'user_requested', rqu_email_vars) return "{}", 202 else: return json.dumps({"error":"YOU_CANT_REGISTER_USERS"}),403 else: return ah.auth_error_json, 403
def test_activate_success(): username = '******' rq_user = User.create_user("teacher_coll1", "facebees") cu = User.create_new_user(rq_user, 'college-1', 'James', 'Activate') assert cu.username == username pu = create_pending_user(username) pu.save() r, data = test_helpers.server_get("/activate/" + username + "/bibble") status = r.status assert status == 200, data u = User(username) email = u.email assert pu.email == email teams = [t.name for t in u.teams] assert pu.team in teams colleges = u.colleges assert pu.college in colleges students = srusers.group('students').members assert username in students pu = PendingUser(username) assert not pu.in_db, "registration DB entry should have been removed" # ensure we sent the team-leader a confirmation ps = test_helpers.last_email() toaddr = ps.toaddr tl_email = rq_user.email assert toaddr == tl_email vars = ps.template_vars tl_name = rq_user.first_name assert tl_name == vars['name'] first_name = cu.first_name assert first_name == vars['au_first_name'] last_name = cu.last_name assert last_name == vars['au_last_name'] assert username == vars['au_username'] template = ps.template_name assert template == 'user_activated_team_leader'
def test_activate_success(): username = '******' rq_user = User.create_user("teacher_coll1", "facebees") cu = User.create_new_user(rq_user, 'college-1', 'James', 'Activate') assert cu.username == username pu = create_pending_user(username) pu.save() r,data = test_helpers.server_get("/activate/" + username + "/bibble") status = r.status assert status == 200, data u = User(username) email = u.email assert pu.email == email teams = [t.name for t in u.teams] assert pu.team in teams colleges = u.colleges assert pu.college in colleges students = srusers.group('students').members assert username in students pu = PendingUser(username) assert not pu.in_db, "registration DB entry should have been removed" # ensure we sent the team-leader a confirmation ps = test_helpers.last_email() toaddr = ps.toaddr tl_email = rq_user.email assert toaddr == tl_email vars = ps.template_vars tl_name = rq_user.first_name assert tl_name == vars['name'] first_name = cu.first_name assert first_name == vars['au_first_name'] last_name = cu.last_name assert last_name == vars['au_last_name'] assert username == vars['au_username'] template = ps.template_name assert template == 'user_activated_team_leader'
def register_user(): ah = AuthHelper(request) if not ah.auth_will_succeed: return ah.auth_error_json, 403 requesting_user = ah.user if not requesting_user.can_register_users: return json.dumps({"error": "YOU_CANT_REGISTER_USERS"}), 403 teacher_username = requesting_user.username college_group = request.form["college"].strip() first_name = request.form["first_name"].strip() last_name = request.form["last_name"].strip() email = request.form["email"].strip() team = request.form["team"].strip() if College(college_group) not in requesting_user.colleges: return json.dumps({"error": "BAD_COLLEGE"}), 403 if team not in [t.name for t in College(college_group).teams]: return json.dumps({"error": "BAD_TEAM"}), 403 if not helpers.is_email_valid(email): return json.dumps({"error": "BAD_EMAIL"}), 403 if not helpers.is_name_valid(first_name): return json.dumps({"error": "BAD_FIRST_NAME"}), 403 if not helpers.is_name_valid(last_name): return json.dumps({"error": "BAD_LAST_NAME"}), 403 if User.name_used(first_name, last_name) or helpers.email_used(email): return json.dumps({"error": "DETAILS_ALREADY_USED"}), 403 u = User.create_new_user(requesting_user, college_group, first_name, last_name) verify_code = helpers.create_verify_code(u.username, email) pu = PendingUser(u.username) pu.teacher_username = teacher_username pu.college = college_group pu.email = email pu.team = team pu.verify_code = verify_code pu.save() log_action('registering user', pu) url = url_for('activate_account', username=u.username, code=verify_code, _external=True) pu.send_welcome_email(first_name, url) rqu_email_vars = { 'name': requesting_user.first_name, 'pu_first_name': first_name, 'pu_last_name': last_name, 'pu_username': pu.username, 'pu_college': College(pu.college).name, 'pu_email': pu.email, 'pu_team': pu.team } mailer.email_template(requesting_user.email, 'user_requested', rqu_email_vars) return "{}", 202
def test_new_user_made(): ru = User.create_user("teacher_coll1", "facebees") u = User.create_new_user(ru, 'college-1', 'first', 'last') u = User.create_user(u.username) check_new_user(u)
def test_new_user_unicode_2(): ru = User.create_user("teacher_coll1", "facebees") u = User.create_new_user(ru, 'college-1', 'first', 'last') check_new_user(u)
def test_new_user_unicode_1(): ru = User.create_user("teacher_coll1", "facebees") first = 'first\u2658' u = User.create_new_user(ru, 'college-1', first, 'last') check_new_user(u, first)
def test_new_user_unicode_1(): ru = User.create_user("teacher_coll1", "facebees") first = u'first\u2658' u = User.create_new_user(ru, u'college-1', first, u'last') check_new_user(u, first.encode('utf-8'))