You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@allura.apache.org by br...@apache.org on 2018/05/09 15:16:54 UTC
[1/2] allura git commit: [#1699] Remove redundant parameter from
find_page method
Repository: allura
Updated Branches:
refs/heads/master 5d37665f6 -> 1587b2ee2
[#1699] Remove redundant parameter from find_page method
Project: http://git-wip-us.apache.org/repos/asf/allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/allura/commit/1587b2ee
Tree: http://git-wip-us.apache.org/repos/asf/allura/tree/1587b2ee
Diff: http://git-wip-us.apache.org/repos/asf/allura/diff/1587b2ee
Branch: refs/heads/master
Commit: 1587b2ee23d8d13838b34d20f21736897593f840
Parents: 93a40e6
Author: deshanigtk <de...@cse.mrt.ac.lk>
Authored: Wed May 9 08:00:44 2018 +0530
Committer: Dave Brondsema <da...@brondsema.net>
Committed: Wed May 9 11:11:59 2018 -0400
----------------------------------------------------------------------
ForgeWiki/forgewiki/model/wiki.py | 21 ++++++---------------
1 file changed, 6 insertions(+), 15 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/allura/blob/1587b2ee/ForgeWiki/forgewiki/model/wiki.py
----------------------------------------------------------------------
diff --git a/ForgeWiki/forgewiki/model/wiki.py b/ForgeWiki/forgewiki/model/wiki.py
index 7e31ebb..9df36e9 100644
--- a/ForgeWiki/forgewiki/model/wiki.py
+++ b/ForgeWiki/forgewiki/model/wiki.py
@@ -227,22 +227,13 @@ class Page(VersionedArtifact, ActivityObject):
return ss
@classmethod
- def find_page(cls, title, version=None):
+ def find_page(cls, title):
"""Find page with `title`"""
- if version is None:
- # Check for existing page object
- obj = cls.query.get(
- app_config_id=context.app.config._id,
- title=title)
- return obj
- else:
- pg = cls.find_page(title)
- if pg is not None:
- HC = cls.__mongometa__.history_class
- ss = HC.query.find(
- {'artifact_id': pg._id, 'version': int(version)}).one()
- return ss
- return pg
+ # Check for existing page object
+ obj = cls.query.get(
+ app_config_id=context.app.config._id,
+ title=title)
+ return obj
@classmethod
def attachment_class(cls):
[2/2] allura git commit: [#1699] Fix incoming email for wiki pages
with space in the title, Adds test functionality for handle_message method
Posted by br...@apache.org.
[#1699] Fix incoming email for wiki pages with space in the title, Adds test functionality for handle_message method
Project: http://git-wip-us.apache.org/repos/asf/allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/allura/commit/93a40e6f
Tree: http://git-wip-us.apache.org/repos/asf/allura/tree/93a40e6f
Diff: http://git-wip-us.apache.org/repos/asf/allura/diff/93a40e6f
Branch: refs/heads/master
Commit: 93a40e6f48389396ac0259227e89d41d5eb99b99
Parents: 5d37665
Author: deshanigtk <de...@cse.mrt.ac.lk>
Authored: Sat May 5 01:08:13 2018 +0530
Committer: Dave Brondsema <da...@brondsema.net>
Committed: Wed May 9 11:11:59 2018 -0400
----------------------------------------------------------------------
ForgeWiki/forgewiki/model/wiki.py | 19 ++++++++++++++
ForgeWiki/forgewiki/tests/test_app.py | 40 +++++++++++++++++++++++++++++-
ForgeWiki/forgewiki/wiki_main.py | 10 +++++---
3 files changed, 64 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/allura/blob/93a40e6f/ForgeWiki/forgewiki/model/wiki.py
----------------------------------------------------------------------
diff --git a/ForgeWiki/forgewiki/model/wiki.py b/ForgeWiki/forgewiki/model/wiki.py
index 4c79045..7e31ebb 100644
--- a/ForgeWiki/forgewiki/model/wiki.py
+++ b/ForgeWiki/forgewiki/model/wiki.py
@@ -175,6 +175,7 @@ class Page(VersionedArtifact, ActivityObject):
def email_address(self):
if context.app.config.options.get('AllowEmailPosting', True):
domain = self.email_domain
+ self.title.replace(' ', '_')
return '%s@%s%s' % (self.title.replace('/', '.'), domain, config.common_suffix)
else:
return tg_config.get('forgemail.return_path')
@@ -226,6 +227,24 @@ class Page(VersionedArtifact, ActivityObject):
return ss
@classmethod
+ def find_page(cls, title, version=None):
+ """Find page with `title`"""
+ if version is None:
+ # Check for existing page object
+ obj = cls.query.get(
+ app_config_id=context.app.config._id,
+ title=title)
+ return obj
+ else:
+ pg = cls.find_page(title)
+ if pg is not None:
+ HC = cls.__mongometa__.history_class
+ ss = HC.query.find(
+ {'artifact_id': pg._id, 'version': int(version)}).one()
+ return ss
+ return pg
+
+ @classmethod
def attachment_class(cls):
return WikiAttachment
http://git-wip-us.apache.org/repos/asf/allura/blob/93a40e6f/ForgeWiki/forgewiki/tests/test_app.py
----------------------------------------------------------------------
diff --git a/ForgeWiki/forgewiki/tests/test_app.py b/ForgeWiki/forgewiki/tests/test_app.py
index 98d6d5f..086d258 100644
--- a/ForgeWiki/forgewiki/tests/test_app.py
+++ b/ForgeWiki/forgewiki/tests/test_app.py
@@ -121,4 +121,42 @@ class TestBulkExport(object):
assert pages[3]['attachments'][0].get('path', None) is None
assert pages[3]['attachments'][0]['url'] != 'wiki/{}/test_file'.format(self.page._id)
- assert not os.path.exists(os.path.join(temp_dir, 'wiki', str(self.page._id), 'test_file'))
\ No newline at end of file
+ assert not os.path.exists(os.path.join(temp_dir, 'wiki', str(self.page._id), 'test_file'))
+
+
+class TestEmail(object):
+
+ def setUp(self):
+ setup_basic_test()
+ setup_global_objects()
+ self.setup_with_tools()
+
+ @td.with_wiki
+ def setup_with_tools(self):
+ self.project = M.Project.query.get(shortname='test')
+ self.wiki = self.project.app_instance('wiki')
+ page = WM.Page.upsert('A New Hope')
+ page.text = 'Star Wars Episode IV: A New Hope'
+ page.mod_date = datetime.datetime(2013, 7, 5)
+ page.labels = ['star wars', 'movies']
+ page.commit()
+ page.discussion_thread.add_post(text='Embrace the Dark Side')
+ page.discussion_thread.add_post(text='Nope')
+ page = WM.Page.upsert('The Empire Strikes Back')
+ page.text = 'Star Wars Episode V: The Empire Strikes Back'
+ page.commit()
+ page = WM.Page.upsert('Return of the Jedi')
+ page.text = 'Star Wars Episode VI: Return of the Jedi'
+ page.commit()
+ page = WM.Page.query.get(
+ app_config_id=self.wiki.config._id, title='Home')
+ page.deleted = True
+ page.commit()
+
+ def test_inbound_email(self):
+ message_id = '1'
+ message = 'test message'
+ msg = dict(payload=message, message_id=message_id, headers={'Subject': 'test'})
+ self.wiki.handle_message('A_New_Hope', msg)
+ post = M.Post.query.get(_id=message_id)
+ assert_equal(post["text"], message)
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/allura/blob/93a40e6f/ForgeWiki/forgewiki/wiki_main.py
----------------------------------------------------------------------
diff --git a/ForgeWiki/forgewiki/wiki_main.py b/ForgeWiki/forgewiki/wiki_main.py
index 12e2e6e..e3a8cfb 100644
--- a/ForgeWiki/forgewiki/wiki_main.py
+++ b/ForgeWiki/forgewiki/wiki_main.py
@@ -127,11 +127,13 @@ class ForgeWikiApp(Application):
log.info('Message from %s (%s)',
topic, self.config.options.mount_point)
log.info('Headers are: %s', message['headers'])
- try:
- page = WM.Page.upsert(topic)
- except:
+ page = WM.Page.find_page(topic)
+ if page is None:
+ page = WM.Page.find_page(topic.replace('_', ' '))
+ if page is not None:
+ self.handle_artifact_message(page, message)
+ else:
log.exception('Error getting artifact %s', topic)
- self.handle_artifact_message(page, message)
@property
def root_page_name(self):