You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@allura.apache.org by tv...@apache.org on 2013/08/08 15:34:36 UTC
[17/50] git commit: [#6446] ticket:400 added filtering for topics in
api, test fail
[#6446] ticket:400 added filtering for topics in api, test fail
Project: http://git-wip-us.apache.org/repos/asf/incubator-allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-allura/commit/dbb1cb19
Tree: http://git-wip-us.apache.org/repos/asf/incubator-allura/tree/dbb1cb19
Diff: http://git-wip-us.apache.org/repos/asf/incubator-allura/diff/dbb1cb19
Branch: refs/heads/tv/6458
Commit: dbb1cb191586af7293303208115a83efb1e07829
Parents: 625bf2e
Author: Anton Kasyanov <mi...@gmail.com>
Authored: Mon Jul 22 14:09:15 2013 +0300
Committer: Tim Van Steenburgh <tv...@gmail.com>
Committed: Wed Jul 31 14:55:48 2013 +0000
----------------------------------------------------------------------
Allura/allura/model/discuss.py | 4 +++-
.../forgediscussion/controllers/root.py | 2 +-
.../tests/functional/test_rest.py | 21 ++++++++++++++++++++
3 files changed, 25 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/dbb1cb19/Allura/allura/model/discuss.py
----------------------------------------------------------------------
diff --git a/Allura/allura/model/discuss.py b/Allura/allura/model/discuss.py
index 76cf615..97d19d0 100644
--- a/Allura/allura/model/discuss.py
+++ b/Allura/allura/model/discuss.py
@@ -328,13 +328,15 @@ class Thread(Artifact, ActivityObject):
return result
def query_posts(self, page=None, limit=None,
- timestamp=None, style='threaded'):
+ timestamp=None, style='threaded', status=None):
if timestamp:
terms = dict(discussion_id=self.discussion_id, thread_id=self._id,
status={'$in': ['ok', 'pending']}, timestamp=timestamp)
else:
terms = dict(discussion_id=self.discussion_id, thread_id=self._id,
status={'$in': ['ok', 'pending']})
+ if status:
+ terms['status'] = status
q = self.post_class().query.find(terms)
if style == 'threaded':
q = q.sort('full_slug')
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/dbb1cb19/ForgeDiscussion/forgediscussion/controllers/root.py
----------------------------------------------------------------------
diff --git a/ForgeDiscussion/forgediscussion/controllers/root.py b/ForgeDiscussion/forgediscussion/controllers/root.py
index 67e51ca..7dd18c7 100644
--- a/ForgeDiscussion/forgediscussion/controllers/root.py
+++ b/ForgeDiscussion/forgediscussion/controllers/root.py
@@ -334,7 +334,7 @@ class ForumTopicRestController(BaseController):
@expose('json:')
def index(self, limit=100, page=0, **kw):
limit, page, start = g.handle_paging(int(limit), int(page))
- posts = self.topic.query_posts(page=page, limit=limit, style='')
+ posts = self.topic.query_posts(page=page, limit=limit, style='', status='ok')
json = {}
json['topic'] = self.topic.__json__()
json['count'] = posts.count()
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/dbb1cb19/ForgeDiscussion/forgediscussion/tests/functional/test_rest.py
----------------------------------------------------------------------
diff --git a/ForgeDiscussion/forgediscussion/tests/functional/test_rest.py b/ForgeDiscussion/forgediscussion/tests/functional/test_rest.py
index 56c01ff..7fc3499 100644
--- a/ForgeDiscussion/forgediscussion/tests/functional/test_rest.py
+++ b/ForgeDiscussion/forgediscussion/tests/functional/test_rest.py
@@ -168,6 +168,27 @@ class TestRootRestController(TestDiscussionApiBase):
assert_equal(resp.json['page'], 1)
assert_equal(resp.json['limit'], 1)
+ def test_topic_show_ok_only(self):
+ # import logging
+ # log = logging.getLogger(__name__)
+
+ thread = ForumThread.query.find({'subject': 'Hi guys'}).first()
+ url = '/rest/p/test/discussion/general/thread/%s/' % thread._id
+ resp = self.app.get(url)
+ posts = resp.json['topic']['posts']
+ assert_equal(len(posts), 1)
+ thread.post('Hello', 'I am not ok post')
+ last_post = thread.last_post
+ last_post.status = 'pending'
+ last_post.commit()
+
+ resp = self.app.get(url)
+ posts = resp.json['topic']['posts']
+
+ # log.info('ready to debug')
+ # log.info(posts)
+ assert_equal(len(posts), 1)
+
def test_security(self):
p = M.Project.query.get(shortname='test')
acl = p.app_instance('discussion').config.acl