Example #1
0
    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)
Example #2
0
    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)
Example #3
0
    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)
Example #4
0
    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())
Example #5
0
 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
Example #6
0
    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)
Example #7
0
 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
Example #8
0
    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)