def post(self): args = self.getArgs('postUser') name = args['name'] email = args['email'] password = args['password'] valRegexDict = User._regexMapDict valDict = {'email': args['email'], 'password': args['password']} valList = [i for i in valDict if i in valRegexDict] for i in valList: reCmp = re.compile(valRegexDict[i]) if not reCmp.match(valDict[i]): abortValueError(i) user = User.query.filter_by(email=email).first() if user: abort(400, message="Email is already in use.") user = User( name=name, email=email, image='http://www.gravatar.com/avatar/{0}?d=mm&s=120'.format( hashlib.md5(email).hexdigest())) db.session.add(user) localAuth = LocalAuth(user_id=user.id, password=password) db.session.add(localAuth) db.session.commit() login_user(user) user = User.query.filter_by(id=user.id).first() return toDict(user)
def test_blog(self): user = User("testUser", "*****@*****.**", "http://testImage.com") db.session.add(user) blog = Blog(user.id, "testName", "testSummary", "testContent") db.session.add(blog) db.session.commit() ret = Blog.query.filter_by(id=blog.id).first() self.assertEqual(user.id, ret.user_id)
def test_toDict(self): user = User("testUser", "*****@*****.**", "http://testImage.com") db.session.add(user) db.session.commit() ret = User.query.filter_by(id=user.id).first() ret = toDict(ret) self.assertTrue("created_at" in ret) self.assertEqual(ret["name"], user.name)
def test_userCreate(self): testEmail = "*****@*****.**".upper() user = User("testUser", testEmail, "http://testImage.com") db.session.add(user) db.session.commit() ret = User.query.filter_by(id=user.id).first() self.assertEqual(ret.name, user.name) self.assertEqual(ret.email, testEmail.lower())
def addUser(self, email=None, password=None, admin=False): if email is None: email = self.testUserEmail email = email.lower() if password is None: password = self.testUserPassword user = User.query.filter_by(email=email).first() if user is None: user = User(self.testUserName, email, self.testUserImage, admin) db.session.add(user) localAuth = LocalAuth(user.id, password) db.session.add(localAuth) db.session.commit() user = User.query.filter_by(email=email).first() user.admin = admin db.session.commit() user = User.query.filter_by(email=email).first() self.assertEqual(admin, user.admin) return user
def test_localAuth(self): user = User("testUser", "*****@*****.**", "http://testImage.com") db.session.add(user) testPassword = "******" localAuth = LocalAuth(user.id, testPassword) db.session.add(localAuth) db.session.commit() retLocalAuth = LocalAuth.query.filter_by(id=localAuth.id).first() self.assertEqual(retLocalAuth.password, testPassword)
def add_local_user(name, email, admin=False): emailHash = hashlib.md5(email).hexdigest() image = r"http://www.gravatar.com/avatar/{0}?d=mm&s=120".format( emailHash) if admin: image = r"http://tp3.sinaimg.cn/2804214754/180/5668812169/1" db.session.add(User(name, email, image, admin)) db.session.commit() user = User.query.filter_by(email=email).first() db.session.add(LocalAuth(user.id, password=emailHash)) db.session.commit() return user
def test_toDict(self): user = User("testUser", "*****@*****.**", "http://testImage.com") db.session.add(user) blog = Blog(user.id, "testName", "testSummary", "testContent") db.session.add(blog) db.session.commit() ret = Blog.query.filter_by(id=blog.id).first() ret = toDict(ret) self.assertTrue("created_at" in ret) self.assertEqual(ret["id"], blog.id) self.assertTrue("id" not in ret["user"]) self.assertEqual(ret["user"]["name"], user.name)