def college_info(requesting_user, collegeid): c = College(collegeid) if c in requesting_user.colleges or requesting_user.is_blueshirt: response = c.details_dictionary_for(requesting_user) return json.dumps(response), 200 else: return AUTHORIZATION_DENIED
def test_college_has_correct_users(): c = College("college-1") users = set([u.username for u in c.users]) eu = set(["teacher_coll1", "student_coll1_1", "student_coll1_2", \ "blueshirt", "withdrawn_student"]) assert users == eu
def test_load_speed(): c = College("college-3") t = time.time() c.users e = time.time() print(e-t) assert e-t < 1
def assert_college_1_details_dictionary_for(requesting_user): c = College("college-1") data = c.details_dictionary_for(requesting_user) actual_name = data["name"] assert actual_name == "college the first" actual_teams = sorted(data["teams"]) assert actual_teams == ["team-ABC", "team-DFE"] actual_counts = data["counts"] expected_counts = { 'team_leaders': 1, 'students': 3, 'media_consent': 0, 'withdrawn': 1, } assert actual_counts == expected_counts return data
def assert_college_1_details_dictionary_for(requesting_user): c = College("college-1") data = c.details_dictionary_for(requesting_user) actual_name = data["name"] assert actual_name == "college the first" actual_teams = data["teams"] assert actual_teams == ["team-ABC", "team-DFE"] actual_counts = data["counts"] expected_counts = { 'team_leaders': 1, 'students': 3, 'media_consent': 0, 'withdrawn': 1, } assert actual_counts == expected_counts return data
def test_details_dictionary_for_blueshirt_non_member(): u = User.create_user("blueshirt") c = College("college-2") data = c.details_dictionary_for(u) actual_name = data["name"] assert actual_name == "secondary college" actual_teams = data["teams"] assert actual_teams == ["team-QWZ"] assert "users" not in data actual_counts = data["counts"] expected_counts = { 'team_leaders': 1, 'students': 2, 'media_consent': 0, 'withdrawn': 0, } assert actual_counts == expected_counts
def college_info(collegeid): ah = AuthHelper(request) c = College(collegeid) if ah.auth_will_succeed and c in ah.user.colleges or ah.user.is_blueshirt: response = {} response["name"] = c.name response["teams"] = [t.name for t in c.teams] au = ah.user if c in au.colleges: response["users"] = [ m.username for m in c.users if au.can_administrate(m) ] return json.dumps(response), 200 else: return ah.auth_error_json, 403
def test_college_has_correct_teams_with_blueshirt(): c = College("college-1") actual = set([t.name for t in c.teams]) assert actual == set(["team-ABC", "team-DFE"])
def test_all_colleges(): all_college_names = sorted(College.all_college_names()) assert all_college_names == ["college-1", "college-2"]
def test_college_neq_string_works_self(): name = "college-1" c = College(name) assert (c != name) is False
def test_all_colleges(): assert len(College.all_college_names()) == 2
def colleges(): ah = AuthHelper(request) if ah.auth_will_succeed and ah.user.is_blueshirt: return json.dumps({"colleges":College.all_college_names()}) else: return ah.auth_error_json,403
def test_details_dictionary_for_non_member(): c = College("college-1") u = User.create_user("student_coll2_1") with assert_raises(AssertionError): c.details_dictionary_for(u)
def colleges(requesting_user): if requesting_user.is_blueshirt: return json.dumps({"colleges":College.all_college_names()}) else: return AUTHORIZATION_DENIED
def test_college_has_correct_name(): c = College("college-1") assert c.name == "college the first"
def colleges(requesting_user): if requesting_user.is_blueshirt: return json.dumps({"colleges": College.all_college_names()}) else: return AUTHORIZATION_DENIED
def test_college_eq_works(): c = College("college-1") c2 = College("college-1") assert c == c2
def test_college_eq_string_works(): c = College("college-1") c2 = "college-1" assert c == c2
def test_college_neq_works_other(): c = College("college-1") c2 = College("college-2") assert c != c2
def test_college_neq_works_self(): c = College("college-1") assert (c != c) is False
def colleges(): ah = AuthHelper(request) if ah.auth_will_succeed and ah.user.is_blueshirt: return json.dumps({"colleges": College.all_college_names()}) else: return ah.auth_error_json, 403
def test_college_neq_string_works_other(): c = College("college-1") c2 = "college-2" assert c != c2
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_college_has_correct_teams(): c = College("college-1") assert set([t.name for t in c.teams]) == set(["team-ABC", "team-DFE"])