示例#1
0
def record_vote(yourname, submitter_name, pid, cid=None):
    """XXX Todo: expose as web api/v1/vote and require nonce?"""
    def inc_vote(user):
        user['votes'].append(pid)
        return user
    submitter = User.get(submitter_name)
    submitter['karma'] +=1
    User.replace(submitter_name, submitter)
    return User.update(yourname, func=inc_vote)
示例#2
0
def record_comment(commenter_name, pid, cid):
    """XXX add karma to comment voting later
    - you get 1 karma for commenting
    """
    u = User.get(commenter_name)
    u['comments'].append((pid, cid))
    return User.replace(commenter_name, u)
示例#3
0
def record_submission(submitter_name, pid):
    """Move to openjoural specific user api.
    Pushes pid onto user's posts set
    """
    u = User.get(submitter_name)
    u['posts'].append(pid)
    return User.replace(submitter_name, u)
示例#4
0
 def record_submission(submitter_name, pid, cid=None):
     """A submission can be a paper or a journal"""
     u = User.get(submitter_name)
     if cid:
         u['comments'].append((pid, cid))
     else:
         u['posts'].append(pid)
     return User.replace(submitter_name, u)
示例#5
0
def record_comment(commenter_name, pid, cid):
    """XXX add karma to comment voting later
    - you get 1 karma for commenting
    """
    pid, cid = map(int, (pid, cid))
    u = User.get(commenter_name)
    u['comments'].append((pid, cid))
    return User.replace(commenter_name, u)
示例#6
0
    def test_users(self):
        """Test whether waltz.User (of base type Account) interfaces
        with LazyDB correctly and behaves expectedly
        """
        # Setting up waltz web.py env variables for db()
        web.ctx.waltz = storage()
        web.ctx.waltz.db = "db"

        u1 = User.register(USERNAME, PASSWD, **USER_FIELDS)
        u1.email = EMAIL
        u1.save()
        u2 = User.get(USERNAME)
        u3 = User.register(USERNAME[::-1], PASSWD, **USER_FIELDS)

        self.assertTrue(u1["username"] == USERNAME, "<waltz.User.register> Registration " "returned invalid user dict")
        print User.get(USERNAME)
        self.assertTrue(User.get(USERNAME).email == EMAIL, "Failed to save / update User record")
        self.assertTrue(u1.authenticate(PASSWD), "User.authenticate Failed")
        self.assertTrue(
            u2 is not None,
            "<waltz.User.register> " "Registration failed, no such entry " "indexed by {'username': '******'}" % USERNAME,
        )
        self.assertTrue(
            all(item in u2.items() for item in USER_FIELDS.items()),
            "<waltz.User.get> Expected stored data did not match " "actual data indexed by waltz 'user' LazyDB.",
        )
        User.replace(USERNAME, u3)
        self.assertTrue(
            User.get(USERNAME)["username"] == USERNAME[::-1], "<waltz.User.replace> Failed to replace username"
        )
        u4 = User.get(USERNAME[::-1], safe=True)
        self.assertTrue(
            not getattr(u4, "uhash", False),
            "User.get(%s, safe=True) did not remove uhash field " "as would be expected" % USERNAME[::-1],
        )
        users = User.getall()
        self.assertTrue(len(users) == 2, "Users db has incorrect # users: " "%s (%s)" % (len(users), users))
        users2 = User.getall(safe=True)
        self.assertTrue(
            "uhash" not in users2[USERNAME].keys(),
            "User.getall(safe=True) did not remove uhash field " "as would be expected",
        )
        self.assertTrue(
            User.delete(USERNAME) is not None, "<waltz.User.delete> " "Failed to delete user: %s" % USERNAME
        )
示例#7
0
文件: user.py 项目: mekarpeles/papers
def record_submission(submitter_name, pid, cid=None):
    """Pushes paper pid onto user's posts set. A submission can be a
    paper or a journal
    """
    u = User.get(submitter_name)
    if cid:
        u.comments.append((pid, cid))
    else:
        u.posts.append(pid)
    return User.replace(submitter_name, dict(u))
示例#8
0
def record_submission(submitter_name, pid, cid=None):
    """Pushes paper pid onto user's posts set. A submission can be a
    paper or a journal
    """
    u = User.get(submitter_name)
    if cid:
        u.comments.append((pid, cid))
    else:
        u.posts.append(pid)
    return User.replace(submitter_name, dict(u))