Пример #1
0
def test_email_change_request():
    """ Test that change requests via POST at /user/ are handled correclty. """
    username = "******"
    old_email = User(username).email
    new_email = "*****@*****.**"
    params = {"username":"******",
              "password":"******",
              "new_email":new_email,
              }

    r,data = test_helpers.server_post("/user/student_coll1_1", params)
    assert r.status == 200, data
    user = User(username)
    assert user.email == old_email

    ps = test_helpers.last_email()
    toaddr = ps.toaddr
    assert toaddr == new_email

    vars = ps.template_vars
    first_name = user.first_name
    assert first_name == vars['name']

    template = ps.template_name
    assert template == 'change_email'

    test_helpers.assert_load_template(template, vars)

    pe = PendingEmail(username)
    assert pe.in_db
    assert pe.new_email == new_email
Пример #2
0
def test_post_any_blueshirt_can_record_student_media_consent():
    blueshirt_mcf = srusers.user('blueshirt-mcf')
    groups = blueshirt_mcf.groups()
    # Sanity check
    assert set(groups) == set(['mentors', 'media-consent-admin'])

    params = {"username":"******",
              "password":"******",
              "media_consent":'true',
              }

    r, data = test_helpers.server_post("/user/student_coll1_1", params)
    assert r.status == 200, (r.status, data)

    u = User("student_coll1_1")
    assert u.has_media_consent

    ps = test_helpers.last_email()
    toaddr = ps.toaddr
    expected_addr = u.email
    assert toaddr == expected_addr

    vars = ps.template_vars
    first_name = u.first_name
    assert first_name == vars['first_name']

    template = ps.template_name
    assert template == 'ticket_available'

    test_helpers.assert_load_template(template, vars)
Пример #3
0
def test_email_change_request():
    """ Test that change requests via POST at /user/ are handled correclty. """
    username = "******"
    old_email = User(username).email
    new_email = "*****@*****.**"
    params = {
        "username": "******",
        "password": "******",
        "new_email": new_email,
    }

    r, data = test_helpers.server_post("/user/student_coll1_1", params)
    assert r.status == 200, data
    user = User(username)
    assert user.email == old_email

    ps = test_helpers.last_email()
    toaddr = ps.toaddr
    assert toaddr == new_email

    vars = ps.template_vars
    first_name = user.first_name
    assert first_name == vars['name']

    template = ps.template_name
    assert template == 'change_email'

    test_helpers.assert_load_template(template, vars)

    pe = PendingEmail(username)
    assert pe.in_db
    assert pe.new_email == new_email
Пример #4
0
def test_post_any_blueshirt_can_record_student_media_consent():
    blueshirt_mcf = srusers.user('blueshirt-mcf')
    groups = blueshirt_mcf.groups()
    # Sanity check
    assert set(groups) == set(['mentors', 'media-consent-admin'])

    params = {
        "username": "******",
        "password": "******",
        "media_consent": 'true',
    }

    r, data = test_helpers.server_post("/user/student_coll1_1", params)
    assert r.status == 200, (r.status, data)

    u = User("student_coll1_1")
    assert u.has_media_consent

    ps = test_helpers.last_email()
    toaddr = ps.toaddr
    expected_addr = u.email
    assert toaddr == expected_addr

    vars = ps.template_vars
    first_name = u.first_name
    assert first_name == vars['first_name']

    template = ps.template_name
    assert template == 'ticket_available'

    test_helpers.assert_load_template(template, vars)
Пример #5
0
    def test_post_by_blueshirt(self):
        params = {"username": "******", "password": "******"}

        r, data = test_helpers.server_post(
            "/send-password-reset/student_coll1_1", params)

        self.assertEqual(202, r.status, data)

        user = User('student_coll1_1')

        ps = test_helpers.last_email()
        toaddr = ps.toaddr
        self.assertEqual(user.email, toaddr)

        vars = ps.template_vars
        self.assertEqual(user.first_name, vars['name'], "Wrong first name")
        self.assertEqual('Blue Shirt', vars['requestor_name'],
                         "Wrong requestor name")

        template = ps.template_name
        self.assertEqual('password_reset', template, "Wrong email template")

        test_helpers.assert_load_template(template, vars)

        ppr = PendingPasswordReset('student_coll1_1')
        self.assertTrue(ppr.in_db,
                        "{0} should been in the database.".format(ppr))
        self.assertEqual('blueshirt', ppr.requestor_username,
                         "Wrong requestor username.")

        self.assertIn(ppr.verify_code, vars['password_reset_url'],
                      "Wrong verify code")
    def test_post_by_blueshirt(self):
        params = {"username":"******",
                  "password":"******"}

        r, data = test_helpers.server_post("/send-password-reset/student_coll1_1", params)

        self.assertEqual(202, r.status, data)

        user = User('student_coll1_1')

        ps = test_helpers.last_email()
        toaddr = ps.toaddr
        self.assertEqual(user.email, toaddr)

        vars = ps.template_vars
        self.assertEqual(user.first_name, vars['name'], "Wrong first name")
        self.assertEqual('Blue Shirt', vars['requestor_name'], "Wrong requestor name")

        template = ps.template_name
        self.assertEqual('password_reset', template, "Wrong email template")

        test_helpers.assert_load_template(template, vars)

        ppr = PendingPasswordReset('student_coll1_1')
        self.assertTrue(ppr.in_db, "{0} should been in the database.".format(ppr))
        self.assertEqual('blueshirt', ppr.requestor_username, "Wrong requestor username.")

        self.assertIn(ppr.verify_code, vars['password_reset_url'], "Wrong verify code")
Пример #7
0
def form_helper(rq_user, rq_pass, new_fname, new_lname):
    new_email = "*****@*****.**"
    params = {
        "username": rq_user,
        "password": rq_pass,
        "first_name": new_fname,
        "last_name": new_lname,
        "email": new_email,
        "team": "team-ABC",
        "college": "college-1"
    }

    r, data = test_helpers.server_post("/registrations", params)
    status = r.status
    assert status == 202, data

    created = User.create_user('1_rt1')
    assert created.email == ''

    pending = PendingUser('1_rt1')
    assert pending.email == "*****@*****.**"
    assert pending.team == "team-ABC"
    assert pending.college == "college-1"

    email_datas = test_helpers.last_n_emails(2)

    student_ps = email_datas[0]
    template = student_ps.template_name
    assert template == 'new_user'
    to = student_ps.toaddr
    assert to == new_email
    vars = student_ps.template_vars
    assert new_fname == vars['name']
    vcode = pending.verify_code
    assert vcode in vars['activation_url']

    test_helpers.assert_load_template(template, vars)

    teacher = User.create_user(rq_user)

    teacher_ps = email_datas[1]
    template = teacher_ps.template_name
    assert template == 'user_requested'
    to = teacher_ps.toaddr
    assert to == teacher.email
    vars = teacher_ps.template_vars
    assert new_fname == vars['pu_first_name']
    assert new_lname == vars['pu_last_name']
    assert new_email == vars['pu_email']
    assert '1_rt1' == vars['pu_username']
    assert 'team-ABC' == vars['pu_team']
    assert 'college the first' == vars['pu_college']

    vars_str = teacher_ps.template_vars_json
    assert vcode not in vars_str, "Should not contain the verification code."

    test_helpers.assert_load_template(template, vars)
Пример #8
0
def form_helper(rq_user, rq_pass, new_fname, new_lname):
    new_email = "*****@*****.**"
    params = {"username":rq_user,
              "password":rq_pass,
              "first_name":new_fname,
              "last_name":new_lname,
              "email":new_email,
              "team":"team-ABC",
              "college":"college-1"}

    r,data = test_helpers.server_post("/registrations", params)
    status = r.status
    assert status == 202, data

    created = User.create_user('1_rt1')
    assert created.email == ''

    pending = PendingUser('1_rt1')
    assert pending.email == "*****@*****.**"
    assert pending.team == "team-ABC"
    assert pending.college == "college-1"

    email_datas = test_helpers.last_n_emails(2)

    student_ps = email_datas[0]
    template = student_ps.template_name
    assert template == 'new_user'
    to = student_ps.toaddr
    assert to == new_email
    vars = student_ps.template_vars
    assert new_fname == vars['name']
    vcode = pending.verify_code
    assert vcode in vars['activation_url']

    test_helpers.assert_load_template(template, vars)

    teacher = User.create_user(rq_user)

    teacher_ps = email_datas[1]
    template = teacher_ps.template_name
    assert template == 'user_requested'
    to = teacher_ps.toaddr
    assert to == teacher.email
    vars = teacher_ps.template_vars
    assert new_fname == vars['pu_first_name']
    assert new_lname == vars['pu_last_name']
    assert new_email == vars['pu_email']
    assert '1_rt1' == vars['pu_username']
    assert 'team-ABC' == vars['pu_team']
    assert 'college the first' == vars['pu_college']

    vars_str = teacher_ps.template_vars_json
    assert vcode not in vars_str, "Should not contain the verification code."

    test_helpers.assert_load_template(template, vars)
Пример #9
0
def test_send_email():
    first_name = 'jim'
    verification_url = 'http://verify'
    new_email = '*****@*****.**'
    pe = PendingEmail('abc')
    pe.new_email = new_email
    pe.send_verification_email(first_name, verification_url)

    ps = test_helpers.last_email()

    vars = ps.template_vars
    assert first_name == vars['name']
    assert verification_url == vars['url']
    toaddr = ps.toaddr
    assert new_email == toaddr

    template = ps.template_name
    assert template == 'change_email'

    test_helpers.assert_load_template(template, vars)
Пример #10
0
def test_send_email():
    first_name = 'jim'
    verification_url = 'https://verify'
    new_email = '*****@*****.**'
    pe = PendingEmail('abc')
    pe.new_email = new_email
    pe.send_verification_email(first_name, verification_url)

    ps = test_helpers.last_email()

    vars = ps.template_vars
    assert first_name == vars['name']
    assert verification_url == vars['url']
    toaddr = ps.toaddr
    assert new_email == toaddr

    template = ps.template_name
    assert template == 'change_email'

    test_helpers.assert_load_template(template, vars)
Пример #11
0
def test_send_email():
    first_name = 'jim'
    verification_url = 'https://verify'
    email = '*****@*****.**'
    requestor_name = 'Dave Smith'

    ppr = PendingPasswordReset('abc')
    ppr.requestor_username = '******'
    ppr.send_reset_email(email, first_name, verification_url, requestor_name)

    ps = test_helpers.last_email()

    vars = ps.template_vars
    assert first_name == vars['name']
    assert verification_url == vars['password_reset_url']
    assert requestor_name == vars['requestor_name']
    toaddr = ps.toaddr
    assert email == toaddr

    template = ps.template_name
    assert template == 'password_reset'

    test_helpers.assert_load_template(template, vars)
def test_send_email():
    first_name = 'jim'
    verification_url = 'http://verify'
    email = '*****@*****.**'
    requestor_name = 'Dave Smith'

    ppr = PendingPasswordReset('abc')
    ppr.requestor_username = '******'
    ppr.send_reset_email(email, first_name, verification_url, requestor_name)

    ps = test_helpers.last_email()

    vars = ps.template_vars
    assert first_name == vars['name']
    assert verification_url == vars['password_reset_url']
    assert requestor_name == vars['requestor_name']
    toaddr = ps.toaddr
    assert email == toaddr

    template = ps.template_name
    assert template == 'password_reset'

    test_helpers.assert_load_template(template, vars)
Пример #13
0
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"

    emails = test_helpers.last_n_emails(2)
    # ensure we sent the competitor a confirmation
    ps = emails[0]
    toaddr = ps.toaddr
    assert email == toaddr

    vars = ps.template_vars
    first_name = cu.first_name
    assert first_name == vars['first_name']
    last_name = cu.last_name
    assert last_name == vars['last_name']
    assert username == vars['username']
    assert email == vars['email']

    template = ps.template_name
    assert template == 'user_activated'

    test_helpers.assert_load_template(template, vars)

    # ensure we sent the team-leader a confirmation
    ps = emails[1]
    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'

    test_helpers.assert_load_template(template, vars)
Пример #14
0
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"

    emails = test_helpers.last_n_emails(2)
    # ensure we sent the competitor a confirmation
    ps = emails[0]
    toaddr = ps.toaddr
    assert email == toaddr

    vars = ps.template_vars
    first_name = cu.first_name
    assert first_name == vars['first_name']
    last_name = cu.last_name
    assert last_name == vars['last_name']
    assert username == vars['username']
    assert email == vars['email']

    template = ps.template_name
    assert template == 'user_activated'

    test_helpers.assert_load_template(template, vars)

    # ensure we sent the team-leader a confirmation
    ps = emails[1]
    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'

    test_helpers.assert_load_template(template, vars)