def test_check_email(self): valid_emails = ( '*****@*****.**', '*****@*****.**', '*****@*****.**', '*****@*****.**', '*****@*****.**', '*****@*****.**', '*****@*****.**', '*****@*****.**', '*****@*****.**', u'*****@*****.**', ) invalid_emails = ( '*****@*****.**', 'im@micro$oft.com', '55-@@example.com', '[email protected].', '*****@*****.**', 'test(at)example.com', '@example.com', 'test-user@cc', 12345, ) for email in valid_emails: self.assertEquals(None, validator.check_email(email)) for email in invalid_emails: self.assertRaises(ValueError, lambda: validator.check_email(email))
def create_user(role, email, password, nicename): if role not in ROLES: raise ValueError('invalid role.') validator.check_email(email) validator.check_password(password) def tx(): if User.get_by_key_name(email) is None: u = User(key_name=email, role=role, email=email, password=password, nicename=nicename) u.put() return u return None user = db.run_in_transaction(tx) if user is None: raise UserAlreadyExistError('User create failed.') return user
def create_comment(ref, email, name, content, ip, approval=True, pending_days=None): ''' Create a comment by given ref, email, name, content, ip, approval and pending_days. Returns: Comment object. ''' validator.check_str(ref, 'ref', False) validator.check_email(email) validator.check_str(name, 'name', False) validator.check_text(content, False) pending_time = None if not approval and pending_days is not None: if pending_days<1 or pending_days>30: raise ValueError('Invalid pending time') pending_time = datetime.datetime.now() + datetime.timedelta(days=pending_days) c = Comment(ref=ref, email=email, name=name, content=content, ip=ip, approval=approval, pending_time=pending_time) c.put() return c