def test_get(self): response = self.get('/auth/verify/SOMETHINGHERE?email=test%40foo.bar') self.assertEqual(response.code, 200) User.create('*****@*****.**', 'Somesortofpass') response = self.get('/auth/verify/SOMETHINGHERE?email=new%40test.bar') self.assertEqual(response.code, 200)
def post(self): username = self.get_argument("email", "").strip().lower() password = self.get_argument("newpass", "") info = {} for info_column in ("name", "affiliation", "address", "phone"): hold = self.get_argument(info_column, None) if hold: info[info_column] = hold created = False try: created = User.create(username, password, info) except QiitaDBDuplicateError: msg = "Email already registered as a user" if created: info = created.info try: send_email( username, "QIITA: Verify Email Address", "Please " "click the following link to verify email address: " "%s/auth/verify/%s?email=%s" % (qiita_config.base_url, info['user_verify_code'], url_escape(username))) except: msg = ("Unable to send verification email. Please contact the " "qiita developers at <a href='mailto:qiita-help" "@gmail.com'>[email protected]</a>") error_msg = u"?error=" + url_escape(msg) self.redirect(u"/?level=danger&message=" + error_msg) return self.redirect(u"/") else: error_msg = u"?error=" + url_escape(msg) self.redirect(u"/auth/create/" + error_msg)
def post(self): username = self.get_argument("email", "").strip().lower() password = self.get_argument("newpass", "") info = {} for info_column in ("name", "affiliation", "address", "phone"): hold = self.get_argument(info_column, None) if hold: info[info_column] = hold created = False try: created = User.create(username, password, info) except QiitaDBDuplicateError: msg = "Email already registered as a user" if created: info = created.info try: send_email(username, "QIITA: Verify Email Address", "Please " "click the following link to verify email address: " "%s/auth/verify/%s?email=%s" % (qiita_config.base_url, info['user_verify_code'], url_escape(username))) except: msg = ("Unable to send verification email. Please contact the " "qiita developers at <a href='mailto:qiita-help" "@gmail.com'>[email protected]</a>") self.redirect(u"/?level=danger&message=" + url_escape(msg)) return self.redirect(u"/") else: error_msg = u"?error=" + url_escape(msg) self.redirect(u"/auth/create/" + error_msg)
def test_create_user(self): user = User.create('*****@*****.**', 'password') self.assertEqual(user.id, '*****@*****.**') sql = "SELECT * from qiita.qiita_user WHERE email = '*****@*****.**'" obs = self.conn_handler.execute_fetchall(sql) self.assertEqual(len(obs), 1) obs = dict(obs[0]) exp = { 'password': '', 'name': None, 'pass_reset_timestamp': None, 'affiliation': None, 'pass_reset_code': None, 'phone': None, 'user_verify_code': '', 'address': None, 'user_level_id': 5, 'email': '*****@*****.**'} self._check_correct_info(obs, exp) # make sure default analysis created sql = ("SELECT email, name, description, dflt FROM qiita.analysis " "WHERE email = '*****@*****.**'") obs = self.conn_handler.execute_fetchall(sql) exp = [['*****@*****.**', '[email protected]', 'dflt', True]] self.assertEqual(obs, exp)
def test_generate_reset_code(self): user = User.create('*****@*****.**', 'password') sql = "SELECT LOCALTIMESTAMP" before = self.conn_handler.execute_fetchone(sql)[0] user.generate_reset_code() after = self.conn_handler.execute_fetchone(sql)[0] sql = ("SELECT pass_reset_code, pass_reset_timestamp FROM " "qiita.qiita_user WHERE email = %s") obscode, obstime = self.conn_handler.execute_fetchone( sql, ('*****@*****.**',)) self.assertEqual(len(obscode), 20) self.assertTrue(before < obstime < after)
def test_generate_reset_code(self): user = User.create('*****@*****.**', 'password') sql = "SELECT LOCALTIMESTAMP" before = self.conn_handler.execute_fetchone(sql)[0] user.generate_reset_code() after = self.conn_handler.execute_fetchone(sql)[0] sql = ("SELECT pass_reset_code, pass_reset_timestamp FROM " "qiita.qiita_user WHERE email = %s") obscode, obstime = self.conn_handler.execute_fetchone( sql, ('*****@*****.**', )) self.assertEqual(len(obscode), 20) self.assertTrue(before < obstime < after)
def post(self): username = self.get_argument("email", "").strip().lower() password = self.get_argument("newpass", "") info = {} for info_column in ("name", "affiliation", "address", "phone"): hold = self.get_argument(info_column, None) if hold: info[info_column] = hold created = False try: created = User.create(username, password, info) except QiitaDBDuplicateError: msg = "Email already registered as a user" if created: info = created.info try: # qiita_config.base_url doesn't have a / at the end, but the # qiita_config.portal_dir has it at the beginning but not at # the end. This constructs the correct URL url = qiita_config.base_url + qiita_config.portal_dir send_email( username, "QIITA: Verify Email Address", "Please " "click the following link to verify email address: " "%s/auth/verify/%s?email=%s\n\nBy clicking you are " "accepting our term and conditions: " "%s/iframe/?iframe=qiita-terms" % (url, info['user_verify_code'], url_escape(username), url)) except Exception: msg = ("Unable to send verification email. Please contact the " "qiita developers at <a href='mailto:qiita.help" "@gmail.com'>[email protected]</a>") self.redirect(u"%s/?level=danger&message=%s" % (qiita_config.portal_dir, url_escape(msg))) return msg = ("<h3>User Successfully Created</h3><p>Your Qiita account " "has been successfully created. An email has been sent to " "the email address you provided. This email contains " "instructions on how to activate your account.</p>" "<p>If you don't receive your activation email within a " "couple of minutes, check your spam folder. If you still " "don't see it, send us an email at <a " "href=\"mailto:[email protected]\">[email protected]" "</a>.</p>") self.redirect(u"%s/?level=success&message=%s" % (qiita_config.portal_dir, url_escape(msg))) else: error_msg = u"?error=" + url_escape(msg) self.redirect(u"%s/auth/create/%s" % (qiita_config.portal_dir, error_msg))
def post(self): username = self.get_argument("email", "").strip().lower() password = self.get_argument("newpass", "") info = {} for info_column in ("name", "affiliation", "address", "phone"): hold = self.get_argument(info_column, None) if hold: info[info_column] = hold created = False try: created = User.create(username, password, info) except QiitaDBDuplicateError: msg = "Email already registered as a user" if created: info = created.info try: # qiita_config.base_url doesn't have a / at the end, but the # qiita_config.portal_dir has it at the beginning but not at # the end. This constructs the correct URL url = qiita_config.base_url + qiita_config.portal_dir send_email(username, "QIITA: Verify Email Address", "Please " "click the following link to verify email address: " "%s/auth/verify/%s?email=%s\n\nBy clicking you are " "accepting our term and conditions: " "%s/iframe/?iframe=qiita-terms" % (url, info['user_verify_code'], url_escape(username), url)) except Exception: msg = ("Unable to send verification email. Please contact the " "qiita developers at <a href='mailto:qiita-help" "@gmail.com'>[email protected]</a>") self.redirect(u"%s/?level=danger&message=%s" % (qiita_config.portal_dir, url_escape(msg))) return msg = ("<h3>User Successfully Created</h3><p>Your Qiita account " "has been successfully created. An email has been sent to " "the email address you provided. This email contains " "instructions on how to activate your account.</p>" "<p>If you don't receive your activation email within a " "couple of minutes, check your spam folder. If you still " "don't see it, send us an email at <a " "href=\"mailto:[email protected]\">[email protected]" "</a>.</p>") self.redirect(u"%s/?level=success&message=%s" % (qiita_config.portal_dir, url_escape(msg))) else: error_msg = u"?error=" + url_escape(msg) self.redirect(u"%s/auth/create/%s" % (qiita_config.portal_dir, error_msg))
def test_create_user(self): user = User.create('*****@*****.**', 'password') self.assertEqual(user.id, '*****@*****.**') sql = "SELECT * from qiita.qiita_user WHERE email = '*****@*****.**'" obs = self.conn_handler.execute_fetchall(sql) self.assertEqual(len(obs), 1) obs = dict(obs[0]) exp = { 'password': '', 'name': None, 'pass_reset_timestamp': None, 'affiliation': None, 'pass_reset_code': None, 'phone': None, 'user_verify_code': '', 'address': None, 'user_level_id': 5, 'email': '*****@*****.**'} self._check_correct_info(obs, exp)
def test_create_user_info(self): user = User.create('*****@*****.**', 'password', self.userinfo) self.assertEqual(user.id, '*****@*****.**') sql = "SELECT * from qiita.qiita_user WHERE email = '*****@*****.**'" obs = self.conn_handler.execute_fetchall(sql) self.assertEqual(len(obs), 1) obs = dict(obs[0]) exp = { 'password': '', 'name': 'Dude', 'affiliation': 'Nowhere University', 'address': '123 fake st, Apt 0, Faketown, CO 80302', 'phone': '111-222-3344', 'pass_reset_timestamp': None, 'pass_reset_code': None, 'user_verify_code': '', 'user_level_id': 5, 'email': '*****@*****.**'} self._check_correct_info(obs, exp)
def post(self): username = self.get_argument("username", "") password = self.get_argument("pass", "") info = {} for info_column in ("name", "affiliation", "address", "phone"): hold = self.get_argument(info_column, None) if hold: info[info_column] = hold created = User.create(username, password, info) if created: send_email(username, "FORGE: Verify Email Address", "Please click " "the following link to verify email address: " "http://forge-dev.colorado.edu/auth/verify/%s" % msg) self.redirect(u"/") else: error_msg = u"?error=" + url_escape(msg) self.redirect(u"/auth/create/" + error_msg)
def test_create_user(self): user = User.create('*****@*****.**', 'password') self.assertEqual(user.id, '*****@*****.**') sql = "SELECT * from qiita.qiita_user WHERE email = '*****@*****.**'" obs = self.conn_handler.execute_fetchall(sql) self.assertEqual(len(obs), 1) obs = dict(obs[0]) exp = { 'password': '', 'name': None, 'pass_reset_timestamp': None, 'affiliation': None, 'pass_reset_code': None, 'phone': None, 'user_verify_code': '', 'address': None, 'user_level_id': 5, 'email': '*****@*****.**' } self._check_correct_info(obs, exp)
def test_create_user_info(self): user = User.create('*****@*****.**', 'password', self.userinfo) self.assertEqual(user.id, '*****@*****.**') sql = "SELECT * from qiita.qiita_user WHERE email = '*****@*****.**'" obs = self.conn_handler.execute_fetchall(sql) self.assertEqual(len(obs), 1) obs = dict(obs[0]) exp = { 'password': '', 'name': 'Dude', 'affiliation': 'Nowhere University', 'address': '123 fake st, Apt 0, Faketown, CO 80302', 'phone': '111-222-3344', 'pass_reset_timestamp': None, 'pass_reset_code': None, 'user_verify_code': '', 'user_level_id': 5, 'email': '*****@*****.**' } self._check_correct_info(obs, exp)
def post(self): username = self.get_argument("email", "").strip().lower() password = self.get_argument("newpass", "") info = {} for info_column in ("name", "affiliation", "address", "phone"): hold = self.get_argument(info_column, None) if hold: info[info_column] = hold created = False try: created = User.create(username, password, info) except QiitaDBDuplicateError: msg = "Email already registered as a user" if created: info = created.info try: # qiita_config.base_url doesn't have a / at the end, but the # qiita_config.portal_dir has it at the beginning but not at # the end. This constructs the correct URL url = qiita_config.base_url + qiita_config.portal_dir send_email( username, "QIITA: Verify Email Address", "Please " "click the following link to verify email address: " "%s/auth/verify/%s?email=%s\n\nBy clicking you are " "accepting our term and conditions: " "%s/static/qiita_data_terms_of_use.html" % (url, info['user_verify_code'], url_escape(username), url)) except Exception: msg = ("Unable to send verification email. Please contact the " "qiita developers at <a href='mailto:qiita-help" "@gmail.com'>[email protected]</a>") self.redirect(u"%s/?level=danger&message=%s" % (qiita_config.portal_dir, url_escape(msg))) return self.redirect(u"%s/" % qiita_config.portal_dir) else: error_msg = u"?error=" + url_escape(msg) self.redirect(u"%s/auth/create/%s" % (qiita_config.portal_dir, error_msg))
def post(self): username = self.get_argument("email", "").strip().lower() password = self.get_argument("newpass", "") info = {} for info_column in ("name", "affiliation", "address", "phone"): hold = self.get_argument(info_column, None) if hold: info[info_column] = hold created = False try: created = User.create(username, password, info) except QiitaDBDuplicateError: msg = "Email already registered as a user" if created: info = created.info try: # qiita_config.base_url doesn't have a / at the end, but the # qiita_config.portal_dir has it at the beginning but not at # the end. This constructs the correct URL url = qiita_config.base_url + qiita_config.portal_dir send_email(username, "QIITA: Verify Email Address", "Please " "click the following link to verify email address: " "%s/auth/verify/%s?email=%s\n\nBy clicking you are " "accepting our term and conditions: " "%s/static/qiita_data_terms_of_use.html" % (url, info['user_verify_code'], url_escape(username), url)) except: msg = ("Unable to send verification email. Please contact the " "qiita developers at <a href='mailto:qiita-help" "@gmail.com'>[email protected]</a>") self.redirect(u"%s/?level=danger&message=%s" % (qiita_config.portal_dir, url_escape(msg))) return self.redirect(u"%s/" % qiita_config.portal_dir) else: error_msg = u"?error=" + url_escape(msg) self.redirect(u"%s/auth/create/%s" % (qiita_config.portal_dir, error_msg))
def test_create_user_bad_email(self): with self.assertRaises(IncorrectEmailError): User.create('notanemail', 'password')
def test_create_user_bad_password(self): with self.assertRaises(IncorrectPasswordError): User.create('*****@*****.**', '')
def test_create_user_duplicate(self): with self.assertRaises(QiitaDBDuplicateError): User.create('*****@*****.**', 'password')
def test_create_user_non_existent_column(self): self.userinfo["BADTHING"] = "FAIL" with self.assertRaises(QiitaDBColumnError): User.create('*****@*****.**', 'password', self.userinfo)
def test_create_user_column_not_allowed(self): self.userinfo["email"] = "FAIL" with self.assertRaises(QiitaDBColumnError): User.create('*****@*****.**', 'password', self.userinfo)
def setUp(self): StudyPerson.create('SomeDude', '*****@*****.**', 'some', '111 fake street', '111-121-1313') User.create('*****@*****.**', 'password') self.config1 = CONFIG_1 self.config2 = CONFIG_2