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/06/08 01:42:17 UTC
[22/27] git commit: [#6314] Refactored, added tests,
and removed hard-coded nbhd from ShortUrl
[#6314] Refactored, added tests, and removed hard-coded nbhd from ShortUrl
Signed-off-by: Cory Johns <cj...@slashdotmedia.com>
Project: http://git-wip-us.apache.org/repos/asf/incubator-allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-allura/commit/577b65f8
Tree: http://git-wip-us.apache.org/repos/asf/incubator-allura/tree/577b65f8
Diff: http://git-wip-us.apache.org/repos/asf/incubator-allura/diff/577b65f8
Branch: refs/heads/db/6276
Commit: 577b65f853872fb6f85a16d5790ffb490032ff2c
Parents: 9ea4661
Author: Cory Johns <cj...@slashdotmedia.com>
Authored: Fri Jun 7 17:19:18 2013 +0000
Committer: Cory Johns <cj...@slashdotmedia.com>
Committed: Fri Jun 7 17:19:18 2013 +0000
----------------------------------------------------------------------
Allura/development.ini | 2 +-
Allura/test.ini | 4 +-
ForgeShortUrl/forgeshorturl/main.py | 18 +-------
ForgeShortUrl/forgeshorturl/model/shorturl.py | 13 ++++--
.../forgeshorturl/tests/functional/test.py | 31 +++++++++++++++
5 files changed, 46 insertions(+), 22 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/577b65f8/Allura/development.ini
----------------------------------------------------------------------
diff --git a/Allura/development.ini b/Allura/development.ini
index 0ddf539..646c468 100644
--- a/Allura/development.ini
+++ b/Allura/development.ini
@@ -250,7 +250,7 @@ auto_reload_templates = true
# pip install -e git://github.com/brondsem/html2text.git#egg=html2text
forgeblog.exfeed = false
-short_url.url_pattern = {base_url}p/{project}/{mount_point}/{short_name}
+short_url.url_pattern = {base_url}/{nbhd}/{project}/{mount_point}/{short_name}
[app:tool_test]
use = egg:Allura
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/577b65f8/Allura/test.ini
----------------------------------------------------------------------
diff --git a/Allura/test.ini b/Allura/test.ini
index cebbe80..f1bd5f2 100644
--- a/Allura/test.ini
+++ b/Allura/test.ini
@@ -37,7 +37,7 @@ port = 5000
use = config:development.ini#tool_test
db_prefix = test_
-base_url = http://localhost/
+base_url = http://localhost
# Use test MongoDB DB server
# ming.main.master = mongo://127.0.0.1:27018/allura
@@ -107,7 +107,7 @@ support_tool_choices = wiki tickets discussion
disable_csrf_protection=1
-short_url.url_pattern = {base_url}p/{project}/{mount_point}/{short_name}
+short_url.url_pattern = {base_url}/{nbhd}/{project}/{mount_point}/{short_name}
[app:main_without_authn]
use = main
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/577b65f8/ForgeShortUrl/forgeshorturl/main.py
----------------------------------------------------------------------
diff --git a/ForgeShortUrl/forgeshorturl/main.py b/ForgeShortUrl/forgeshorturl/main.py
index 8ecce61..d26c69e 100644
--- a/ForgeShortUrl/forgeshorturl/main.py
+++ b/ForgeShortUrl/forgeshorturl/main.py
@@ -154,11 +154,7 @@ class RootController(BaseController):
'limit': limit,
'pagenum': pagenum,
'count': count,
- 'url_len': len(config['short_url.url_pattern'].format(
- base_url=config['base_url'],
- project=c.project.shortname,
- mount_point=c.app.config.options.mount_point,
- short_name='')),
+ 'url_len': len(ShortUrl.build_short_url(c.app, short_name='')),
}
@expose('jinja:forgeshorturl:templates/search.html')
@@ -180,11 +176,7 @@ class RootController(BaseController):
d = search_app(**search_params)
d['search_comments_disable'] = True
d['search_history_disable'] = True
- d['url_len'] = len(config['short_url.url_pattern'].format(
- base_url=config['base_url'],
- project=c.project.shortname,
- mount_point=c.app.config.options.mount_point,
- short_name=''))
+ d['url_len'] = len(ShortUrl.build_short_url(c.app, short_name=''))
return d
@expose()
@@ -270,8 +262,4 @@ class ShortURLAdminController(DefaultAdminController):
redirect(request.referer)
return dict(
app=self.app,
- url_len=len(config['short_url.url_pattern'].format(
- base_url=config['base_url'],
- project=c.project.shortname,
- mount_point=self.app.config.options.mount_point,
- short_name='')))
+ url_len=len(ShortUrl.build_short_url(c.app, short_name='')))
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/577b65f8/ForgeShortUrl/forgeshorturl/model/shorturl.py
----------------------------------------------------------------------
diff --git a/ForgeShortUrl/forgeshorturl/model/shorturl.py b/ForgeShortUrl/forgeshorturl/model/shorturl.py
index 8a7fce7..41617bd 100644
--- a/ForgeShortUrl/forgeshorturl/model/shorturl.py
+++ b/ForgeShortUrl/forgeshorturl/model/shorturl.py
@@ -71,9 +71,14 @@ class ShortUrl(M.Artifact):
def url(self):
return self.app.url + self.short_name
- def short_url(self):
+ @classmethod
+ def build_short_url(cls, app, short_name):
return config['short_url.url_pattern'].format(
base_url=config['base_url'],
- project=self.app.project.shortname,
- mount_point=self.app.config.options.mount_point,
- short_name=self.short_name)
+ nbhd=app.project.neighborhood.url_prefix.strip('/'),
+ project=app.project.shortname,
+ mount_point=app.config.options.mount_point,
+ short_name=short_name)
+
+ def short_url(self):
+ return self.build_short_url(self.app, self.short_name)
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/577b65f8/ForgeShortUrl/forgeshorturl/tests/functional/test.py
----------------------------------------------------------------------
diff --git a/ForgeShortUrl/forgeshorturl/tests/functional/test.py b/ForgeShortUrl/forgeshorturl/tests/functional/test.py
index 5d7f9d7..e162b38 100644
--- a/ForgeShortUrl/forgeshorturl/tests/functional/test.py
+++ b/ForgeShortUrl/forgeshorturl/tests/functional/test.py
@@ -16,8 +16,11 @@
# under the License.
from pylons import tmpl_context as c
+from tg import config
from nose.tools import assert_equal
+import mock
+from allura.lib import helpers as h
from allura.tests import decorators as td
from alluratest.controller import TestController
@@ -107,3 +110,31 @@ class TestRootController(TestController):
extra_environ=dict(username='test-user'), status=403)
self.app.post('/admin/url/remove', params=dict(shorturl='g'),
extra_environ=dict(username='test-user'), status=403)
+
+ def test_build_short_url(self):
+ with h.push_config(config, **{
+ 'short_url.url_pattern': '{base_url}:{nbhd}:{project}:{mount_point}:{short_name}',
+ 'base_url': 'b',
+ }):
+ nbhd = mock.Mock(url_prefix='/n/')
+ project = mock.Mock(shortname='p', neighborhood=nbhd)
+ app = mock.Mock(project=project)
+ app.config.options.mount_point = 'm'
+
+ url = ShortUrl.build_short_url(app, 's')
+
+ assert_equal(url, 'b:n:p:m:s')
+
+ def test_short_url(self):
+ response = self.app.get('/admin/url/add')
+ response.form['short_url'] = 'test'
+ response.form['full_url'] = 'http://www.google.com/'
+ response.form.submit()
+
+ surl = ShortUrl.query.get(short_name='test')
+
+ with h.push_config(config, **{
+ 'short_url.url_pattern': '{base_url}:{nbhd}:{project}:{mount_point}:{short_name}',
+ 'base_url': 'b',
+ }):
+ assert_equal(surl.short_url(), 'b:p:test:url:test')