def test_verify_conf_changes(self): """Registration challenges with EmailVerificationModule enabled.""" self.env = EnvironmentStub( enable=['trac.*', 'acct_mgr.admin.*', 'acct_mgr.register.*']) self.env.path = tempfile.mkdtemp() set_user_attribute(self.env, 'admin', 'email', '*****@*****.**') check = EmailCheck(self.env) req = self.req # Inspector provides the email text input field. old_email_input = '*****@*****.**' acct = dict(username='******', email=old_email_input, name='User') req.args.update(acct) field_res = check.render_registration_fields(req, acct) self.assertEqual(len(field_res), 2) self.assertTrue(Markup(field_res[0]).startswith('<label>Email:')) # Ensure, that old input is restored on failure. self.assertTrue(old_email_input in Markup(field_res[0])) # Ensure, that template data dict is passed unchanged. self.assertEqual(field_res[1], acct) req.args.update(dict(email='')) # 1st: Initially try with account verification disabled by setting. self.env.config.set('account-manager', 'verify_email', False) self.assertEqual(check.validate_registration(req), None) # 2nd: Again no email, but now with account verification enabled. self.env.config.set('account-manager', 'verify_email', True) self.assertRaises(RegistrationError, check.validate_registration, req) # 3th attempt: Valid email, but already registered with a username. req.args['email'] = '*****@*****.**' self.assertRaises(RegistrationError, check.validate_registration, req) # 4th attempt: Finally some valid input. req.args['email'] = '*****@*****.**' self.assertEqual(check.validate_registration(req), None)
def test_verify_mod_disabled(self): """Registration challenges with EmailVerificationModule disabled.""" self.env = EnvironmentStub(enable=['trac.*', 'acct_mgr.admin.*']) self.env.path = tempfile.mkdtemp() check = EmailCheck(self.env) req = self.req self.env.config.set('account-manager', 'verify_email', False) self.assertEqual(check.validate_registration(req), None) # Check should be skipped regardless of AccountManager settings. self.env.config.set('account-manager', 'verify_email', True) self.assertEqual(check.validate_registration(req), None)