You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@allura.apache.org by jo...@apache.org on 2014/01/10 22:23:04 UTC
[08/36] PEP8 cleanup
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/c93733ac/ForgeLink/setup.py
----------------------------------------------------------------------
diff --git a/ForgeLink/setup.py b/ForgeLink/setup.py
index 1379ac2..711d2c1 100644
--- a/ForgeLink/setup.py
+++ b/ForgeLink/setup.py
@@ -16,7 +16,8 @@
# under the License.
from setuptools import setup, find_packages
-import sys, os
+import sys
+import os
from forgelink.version import __version__
@@ -25,7 +26,8 @@ setup(name='ForgeLink',
description="",
long_description="""\
""",
- classifiers=[], # Get strings from http://pypi.python.org/pypi?%3Aaction=list_classifiers
+ # Get strings from http://pypi.python.org/pypi?%3Aaction=list_classifiers
+ classifiers=[],
keywords='',
author='',
author_email='',
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/c93733ac/ForgeSVN/forgesvn/controllers.py
----------------------------------------------------------------------
diff --git a/ForgeSVN/forgesvn/controllers.py b/ForgeSVN/forgesvn/controllers.py
index 44d1a69..f4461f0 100644
--- a/ForgeSVN/forgesvn/controllers.py
+++ b/ForgeSVN/forgesvn/controllers.py
@@ -38,9 +38,9 @@ class BranchBrowser(repository.BranchBrowser, FeedController):
latest = c.app.repo.latest(branch=self._branch)
if is_empty or not latest:
return dict(allow_fork=False, log=[], is_empty=is_empty)
- redirect(c.app.repo.url_for_commit(c.app.default_branch_name) + 'tree/')
+ redirect(c.app.repo.url_for_commit(c.app.default_branch_name)
+ + 'tree/')
@expose()
def _lookup(self, rev, *remainder):
return repository.CommitBrowser(rev), remainder
-
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/c93733ac/ForgeSVN/forgesvn/model/svn.py
----------------------------------------------------------------------
diff --git a/ForgeSVN/forgesvn/model/svn.py b/ForgeSVN/forgesvn/model/svn.py
index b55c397..9823f1e 100644
--- a/ForgeSVN/forgesvn/model/svn.py
+++ b/ForgeSVN/forgesvn/model/svn.py
@@ -46,13 +46,15 @@ from allura.model.repository import zipdir
log = logging.getLogger(__name__)
+
class Repository(M.Repository):
- tool_name='SVN'
- repo_id='svn'
- type_s='SVN Repository'
+ tool_name = 'SVN'
+ repo_id = 'svn'
+ type_s = 'SVN Repository'
+
class __mongometa__:
- name='svn-repository'
- branches = FieldProperty([dict(name=str,object_id=str)])
+ name = 'svn-repository'
+ branches = FieldProperty([dict(name=str, object_id=str)])
_refresh_precompute = False
@LazyProperty
@@ -68,13 +70,17 @@ class Repository(M.Repository):
tpl = string.Template(tg.config.get('scm.clone.%s.%s' % (category, self.tool)) or
tg.config.get('scm.clone.%s' % self.tool))
return tpl.substitute(dict(username=username,
- source_url=self.clone_url(category, username)+c.app.config.options.get('checkout_url'),
+ source_url=self.clone_url(
+ category, username) + c.app.config.options.get(
+ 'checkout_url'),
dest_path=self.suggested_clone_dest_path()))
- def compute_diffs(self): return
+ def compute_diffs(self):
+ return
def latest(self, branch=None):
- if self._impl is None: return None
+ if self._impl is None:
+ return None
return self._impl.commit('HEAD')
def tarball_filename(self, revision, path=None):
@@ -88,6 +94,7 @@ class Repository(M.Repository):
class SVNCalledProcessError(Exception):
+
def __init__(self, cmd, returncode, stdout, stderr):
self.cmd = cmd
self.returncode = returncode
@@ -113,7 +120,9 @@ def svn_path_exists(path, rev=None):
class SVNLibWrapper(object):
+
"""Wrapper around pysvn, used for instrumentation."""
+
def __init__(self, client):
self.client = client
@@ -185,10 +194,10 @@ class SVNImplementation(M.RepositoryImplementation):
if os.path.exists(fullname):
shutil.rmtree(fullname)
subprocess.call(['svnadmin', 'create', self._repo.name],
- stdin=subprocess.PIPE,
- stdout=subprocess.PIPE,
- stderr=subprocess.PIPE,
- cwd=self._repo.fs_path)
+ stdin=subprocess.PIPE,
+ stdout=subprocess.PIPE,
+ stderr=subprocess.PIPE,
+ cwd=self._repo.fs_path)
if not skip_special_files:
self._setup_special_files()
self._repo.set_status('ready')
@@ -197,17 +206,18 @@ class SVNImplementation(M.RepositoryImplementation):
tmp_working_dir = tempfile.mkdtemp(prefix='allura-svn-r1-',
dir=tg.config.get('scm.svn.tmpdir', g.tmpdir))
log.info('tmp dir = %s', tmp_working_dir)
- self._repo._impl._svn.checkout('file://'+fullname, tmp_working_dir)
- os.mkdir(tmp_working_dir+'/trunk')
- os.mkdir(tmp_working_dir+'/tags')
- os.mkdir(tmp_working_dir+'/branches')
- self._repo._impl._svn.add(tmp_working_dir+'/trunk')
- self._repo._impl._svn.add(tmp_working_dir+'/tags')
- self._repo._impl._svn.add(tmp_working_dir+'/branches')
- self._repo._impl._svn.checkin([tmp_working_dir+'/trunk',
- tmp_working_dir+'/tags',
- tmp_working_dir+'/branches'],
- 'Initial commit')
+ self._repo._impl._svn.checkout(
+ 'file://' + fullname, tmp_working_dir)
+ os.mkdir(tmp_working_dir + '/trunk')
+ os.mkdir(tmp_working_dir + '/tags')
+ os.mkdir(tmp_working_dir + '/branches')
+ self._repo._impl._svn.add(tmp_working_dir + '/trunk')
+ self._repo._impl._svn.add(tmp_working_dir + '/tags')
+ self._repo._impl._svn.add(tmp_working_dir + '/branches')
+ self._repo._impl._svn.checkin([tmp_working_dir + '/trunk',
+ tmp_working_dir + '/tags',
+ tmp_working_dir + '/branches'],
+ 'Initial commit')
shutil.rmtree(tmp_working_dir)
log.info('deleted %s', tmp_working_dir)
@@ -261,13 +271,15 @@ class SVNImplementation(M.RepositoryImplementation):
# make sure new repo has a pre-revprop-change hook,
# otherwise the sync will fail
set_hook('pre-revprop-change')
- self.check_call(['svnsync', '--non-interactive', '--allow-non-empty',
- 'initialize', self._url, source_url])
+ self.check_call(
+ ['svnsync', '--non-interactive', '--allow-non-empty',
+ 'initialize', self._url, source_url])
clear_hook('pre-revprop-change')
else:
set_hook('pre-revprop-change')
self.check_call(['svnsync', 'init', self._url, source_url])
- self.check_call(['svnsync', '--non-interactive', 'sync', self._url])
+ self.check_call(
+ ['svnsync', '--non-interactive', 'sync', self._url])
clear_hook('pre-revprop-change')
log.info('... %r cloned', self._repo)
@@ -287,12 +299,13 @@ class SVNImplementation(M.RepositoryImplementation):
"""
opts = self._repo.app.config.options
if not svn_path_exists('file://{0}{1}/{2}'.format(self._repo.fs_path,
- self._repo.name, opts['checkout_url'])):
+ self._repo.name, opts['checkout_url'])):
opts['checkout_url'] = ''
if (not opts['checkout_url'] and
- svn_path_exists('file://{0}{1}/trunk'.format(self._repo.fs_path,
- self._repo.name))):
+ svn_path_exists(
+ 'file://{0}{1}/trunk'.format(self._repo.fs_path,
+ self._repo.name))):
opts['checkout_url'] = 'trunk'
def commit(self, rev):
@@ -319,7 +332,7 @@ class SVNImplementation(M.RepositoryImplementation):
def new_commits(self, all_commits=False):
head_revno = self.head
- oids = [ self._oid(revno) for revno in range(1, head_revno+1) ]
+ oids = [self._oid(revno) for revno in range(1, head_revno + 1)]
if all_commits:
return oids
# Find max commit id -- everything greater than that will be "unknown"
@@ -327,22 +340,24 @@ class SVNImplementation(M.RepositoryImplementation):
q = M.repo.Commit.query.find(
dict(
type='commit',
- _id={'$gt':prefix},
- ),
+ _id={'$gt': prefix},
+ ),
dict(_id=True)
- )
+ )
seen_oids = set()
for d in q.ming_cursor.cursor:
oid = d['_id']
- if not oid.startswith(prefix): break
+ if not oid.startswith(prefix):
+ break
seen_oids.add(oid)
return [
- oid for oid in oids if oid not in seen_oids ]
+ oid for oid in oids if oid not in seen_oids]
def refresh_commit_info(self, oid, seen_object_ids, lazy=True):
from allura.model.repo import CommitDoc, DiffInfoDoc
ci_doc = CommitDoc.m.get(_id=oid)
- if ci_doc and lazy: return False
+ if ci_doc and lazy:
+ return False
revno = self._revno(oid)
rev = self._revision(oid)
try:
@@ -352,7 +367,8 @@ class SVNImplementation(M.RepositoryImplementation):
limit=1,
discover_changed_paths=True)[0]
except pysvn.ClientError:
- log.info('ClientError processing %r %r, treating as empty', oid, self._repo, exc_info=True)
+ log.info('ClientError processing %r %r, treating as empty',
+ oid, self._repo, exc_info=True)
log_entry = Object(date='', message='', changed_paths=[])
log_date = None
if hasattr(log_entry, 'date'):
@@ -360,7 +376,7 @@ class SVNImplementation(M.RepositoryImplementation):
user = Object(
name=h.really_unicode(log_entry.get('author', '--none--')),
email='',
- date=log_date)
+ date=log_date)
args = dict(
tree_id=None,
committed=user,
@@ -369,7 +385,7 @@ class SVNImplementation(M.RepositoryImplementation):
parent_ids=[],
child_ids=[])
if revno > 1:
- args['parent_ids'] = [ self._oid(revno-1) ]
+ args['parent_ids'] = [self._oid(revno - 1)]
if ci_doc:
ci_doc.update(**args)
ci_doc.m.save()
@@ -378,7 +394,8 @@ class SVNImplementation(M.RepositoryImplementation):
try:
ci_doc.m.insert(safe=True)
except DuplicateKeyError:
- if lazy: return False
+ if lazy:
+ return False
# Save diff info
di = DiffInfoDoc.make(dict(_id=ci_doc._id, differences=[]))
for path in log_entry.changed_paths:
@@ -417,21 +434,22 @@ class SVNImplementation(M.RepositoryImplementation):
else:
lhs_id = None
di.differences.append(dict(
- name=h.really_unicode(path.path),
- lhs_id=lhs_id,
- rhs_id=rhs_id))
+ name=h.really_unicode(path.path),
+ lhs_id=lhs_id,
+ rhs_id=rhs_id))
di.m.save()
return True
def compute_tree_new(self, commit, tree_path='/'):
from allura.model import repo as RM
- tree_path = '/' + tree_path.strip('/') # always leading slash, never trailing
+ # always leading slash, never trailing
+ tree_path = '/' + tree_path.strip('/')
tree_id = self._tree_oid(commit._id, tree_path)
tree = RM.Tree.query.get(_id=tree_id)
if tree:
return tree_id
log.debug('Computing tree for %s: %s',
- self._revno(commit._id), tree_path)
+ self._revno(commit._id), tree_path)
rev = self._revision(commit._id)
try:
infos = self._svn.info2(
@@ -449,34 +467,35 @@ class SVNImplementation(M.RepositoryImplementation):
for path, info in infos[1:]:
if info.kind == pysvn.node_kind.dir:
tree_ids.append(Object(
- id=self._tree_oid(commit._id, path),
- name=path))
+ id=self._tree_oid(commit._id, path),
+ name=path))
elif info.kind == pysvn.node_kind.file:
blob_ids.append(Object(
- id=self._tree_oid(commit._id, path),
- name=path))
+ id=self._tree_oid(commit._id, path),
+ name=path))
else:
assert False
lcd_entries.append(dict(
- name=path,
- commit_id=self._oid(info.last_changed_rev.number),
- ))
+ name=path,
+ commit_id=self._oid(info.last_changed_rev.number),
+ ))
tree, is_new = RM.Tree.upsert(tree_id,
- tree_ids=tree_ids,
- blob_ids=blob_ids,
- other_ids=[],
- )
+ tree_ids=tree_ids,
+ blob_ids=blob_ids,
+ other_ids=[],
+ )
if is_new:
commit_id = self._oid(infos[0][1].last_changed_rev.number)
path = tree_path.strip('/')
RM.TreesDoc.m.update_partial(
- {'_id': commit._id},
- {'$addToSet': {'tree_ids': tree_id}},
- upsert=True)
+ {'_id': commit._id},
+ {'$addToSet': {'tree_ids': tree_id}},
+ upsert=True)
RM.LastCommitDoc.m.update_partial(
- {'commit_id': commit_id, 'path': path},
- {'commit_id': commit_id, 'path': path, 'entries': lcd_entries},
- upsert=True)
+ {'commit_id': commit_id, 'path': path},
+ {'commit_id': commit_id, 'path':
+ path, 'entries': lcd_entries},
+ upsert=True)
return tree_id
def _tree_oid(self, commit_id, path):
@@ -533,7 +552,8 @@ class SVNImplementation(M.RepositoryImplementation):
while revno > exclude:
rev = pysvn.Revision(pysvn.opt_revision_kind.number, revno)
try:
- logs = self._svn.log(url, revision_start=rev, peg_revision=rev, limit=page_size,
+ logs = self._svn.log(
+ url, revision_start=rev, peg_revision=rev, limit=page_size,
discover_changed_paths=True)
except pysvn.ClientError as e:
if 'Unable to connect' in e.message:
@@ -548,16 +568,18 @@ class SVNImplementation(M.RepositoryImplementation):
else:
yield self._map_log(ci, url, path)
if len(logs) < page_size:
- return # we didn't get a full page, don't bother calling SVN again
+ # we didn't get a full page, don't bother calling SVN again
+ return
revno = ci.revision.number - 1
def _check_changed_path(self, changed_path, path):
if (changed_path['copyfrom_path'] and
- changed_path['path'] and
- path and
- (len(changed_path['path']) < len(path)) and
- path.startswith(changed_path['path'])):
- changed_path['copyfrom_path'] = changed_path['copyfrom_path'] + path[len(changed_path['path']):]
+ changed_path['path'] and
+ path and
+ (len(changed_path['path']) < len(path)) and
+ path.startswith(changed_path['path'])):
+ changed_path['copyfrom_path'] = changed_path['copyfrom_path'] + \
+ path[len(changed_path['path']):]
changed_path['path'] = path
return changed_path
@@ -565,7 +587,8 @@ class SVNImplementation(M.RepositoryImplementation):
revno = ci.revision.number
rev = pysvn.Revision(pysvn.opt_revision_kind.number, revno)
try:
- size = int(self._svn.list(url, revision=rev, peg_revision=rev)[0][0].size)
+ size = int(
+ self._svn.list(url, revision=rev, peg_revision=rev)[0][0].size)
except pysvn.ClientError:
size = None
rename_details = {}
@@ -579,23 +602,23 @@ class SVNImplementation(M.RepositoryImplementation):
)
break
return {
- 'id': revno,
- 'message': h.really_unicode(ci.get('message', '--none--')),
- 'authored': {
- 'name': h.really_unicode(ci.get('author', '--none--')),
- 'email': '',
- 'date': datetime.utcfromtimestamp(ci.date),
- },
- 'committed': {
- 'name': h.really_unicode(ci.get('author', '--none--')),
- 'email': '',
- 'date': datetime.utcfromtimestamp(ci.date),
- },
- 'refs': ['HEAD'] if revno == self.head else [],
- 'parents': [revno-1] if revno > 1 else [],
- 'size': size,
- 'rename_details': rename_details,
- }
+ 'id': revno,
+ 'message': h.really_unicode(ci.get('message', '--none--')),
+ 'authored': {
+ 'name': h.really_unicode(ci.get('author', '--none--')),
+ 'email': '',
+ 'date': datetime.utcfromtimestamp(ci.date),
+ },
+ 'committed': {
+ 'name': h.really_unicode(ci.get('author', '--none--')),
+ 'email': '',
+ 'date': datetime.utcfromtimestamp(ci.date),
+ },
+ 'refs': ['HEAD'] if revno == self.head else [],
+ 'parents': [revno - 1] if revno > 1 else [],
+ 'size': size,
+ 'rename_details': rename_details,
+ }
def open_blob(self, blob):
data = self._svn.cat(
@@ -607,18 +630,21 @@ class SVNImplementation(M.RepositoryImplementation):
try:
rev = self._revision(blob.commit._id)
data = self._svn.list(
- self._url + blob.path(),
- revision=rev,
- peg_revision=rev,
- dirent_fields=pysvn.SVN_DIRENT_SIZE)
+ self._url + blob.path(),
+ revision=rev,
+ peg_revision=rev,
+ dirent_fields=pysvn.SVN_DIRENT_SIZE)
except pysvn.ClientError:
- log.info('ClientError getting filesize %r %r, returning 0', blob.path(), self._repo, exc_info=True)
+ log.info('ClientError getting filesize %r %r, returning 0',
+ blob.path(), self._repo, exc_info=True)
return 0
try:
size = data[0][0]['size']
except (IndexError, KeyError):
- log.info('Error getting filesize: bad data from svn client %r %r, returning 0', blob.path(), self._repo, exc_info=True)
+ log.info(
+ 'Error getting filesize: bad data from svn client %r %r, returning 0',
+ blob.path(), self._repo, exc_info=True)
size = 0
return size
@@ -629,7 +655,8 @@ class SVNImplementation(M.RepositoryImplementation):
# the hook should also call the user-defined post-commit-user hook
text = self.post_receive_template.substitute(
url=self._repo.refresh_url())
- fn = os.path.join(self._repo.fs_path, self._repo.name, 'hooks', 'post-commit')
+ fn = os.path.join(self._repo.fs_path, self._repo.name,
+ 'hooks', 'post-commit')
with open(fn, 'wb') as fp:
fp.write(text)
os.chmod(fn, 0755)
@@ -661,7 +688,8 @@ class SVNImplementation(M.RepositoryImplementation):
if len(paths) == 1:
tree_path = '/' + os.path.dirname(paths[0].strip('/'))
else:
- tree_path = '/' + os.path.commonprefix(paths).strip('/') # always leading slash, never trailing
+ # always leading slash, never trailing
+ tree_path = '/' + os.path.commonprefix(paths).strip('/')
paths = [path.strip('/') for path in paths]
rev = self._revision(commit._id)
try:
@@ -689,7 +717,8 @@ class SVNImplementation(M.RepositoryImplementation):
limit=1,
discover_changed_paths=True)[0]
except pysvn.ClientError:
- log.info('ClientError processing %r %r, treating as empty', oid, self._repo, exc_info=True)
+ log.info('ClientError processing %r %r, treating as empty',
+ oid, self._repo, exc_info=True)
log_entry = Object(date='', message='', changed_paths=[])
return [p.path for p in log_entry.changed_paths]
@@ -702,7 +731,8 @@ class SVNImplementation(M.RepositoryImplementation):
idx = path.index('tags')
elif 'branches' in path:
idx = path.index('branches')
- if idx is not None and idx < len(path) - 1: # e.g. path/tags/tag-1.0/...
+ # e.g. path/tags/tag-1.0/...
+ if idx is not None and idx < len(path) - 1:
return '/'.join(path[:idx + 2]) # path/tags/tag-1.0
if 'trunk' in path:
idx = path.index('trunk')
@@ -720,8 +750,10 @@ class SVNImplementation(M.RepositoryImplementation):
os.makedirs(self._repo.tarball_path)
archive_name = self._repo.tarball_filename(commit, path)
dest = os.path.join(self._repo.tarball_path, archive_name)
- filename = os.path.join(self._repo.tarball_path, '%s%s' % (archive_name, '.zip'))
- tmpfilename = os.path.join(self._repo.tarball_path, '%s%s' % (archive_name, '.tmp'))
+ filename = os.path.join(self._repo.tarball_path, '%s%s' %
+ (archive_name, '.zip'))
+ tmpfilename = os.path.join(self._repo.tarball_path, '%s%s' %
+ (archive_name, '.tmp'))
rmtree(dest, ignore_errors=True)
path = os.path.join(self._url, path)
try:
@@ -730,7 +762,8 @@ class SVNImplementation(M.RepositoryImplementation):
locale.setlocale(locale.LC_ALL, 'en_US.UTF-8')
self._svn.export(path,
dest,
- revision=pysvn.Revision(pysvn.opt_revision_kind.number, commit),
+ revision=pysvn.Revision(
+ pysvn.opt_revision_kind.number, commit),
ignore_externals=True)
zipdir(dest, tmpfilename)
os.rename(tmpfilename, filename)
@@ -744,9 +777,11 @@ class SVNImplementation(M.RepositoryImplementation):
def is_file(self, path, rev=None):
url = '/'.join([self._url, path.strip('/')])
- rev = pysvn.Revision(pysvn.opt_revision_kind.number, self._revno(self.rev_parse(rev)))
+ rev = pysvn.Revision(pysvn.opt_revision_kind.number,
+ self._revno(self.rev_parse(rev)))
try:
- info = self._svn.list(url, revision=rev, peg_revision=rev, dirent_fields=pysvn.SVN_DIRENT_KIND)[0][0]
+ info = self._svn.list(
+ url, revision=rev, peg_revision=rev, dirent_fields=pysvn.SVN_DIRENT_KIND)[0][0]
return info.kind == pysvn.node_kind.file
except pysvn.ClientError:
return False
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/c93733ac/ForgeSVN/forgesvn/svn_main.py
----------------------------------------------------------------------
diff --git a/ForgeSVN/forgesvn/svn_main.py b/ForgeSVN/forgesvn/svn_main.py
index bee61b3..dd72214 100644
--- a/ForgeSVN/forgesvn/svn_main.py
+++ b/ForgeSVN/forgesvn/svn_main.py
@@ -45,23 +45,25 @@ from .model.svn import svn_path_exists
log = logging.getLogger(__name__)
+
class ForgeSVNApp(RepositoryApp):
+
'''This is the SVN app for PyForge'''
__version__ = version.__version__
config_options = RepositoryApp.config_options + [
ConfigOption('checkout_url', str, '')
- ]
+ ]
permissions_desc = dict(RepositoryApp.permissions_desc, **{
'write': 'Repo commit access.',
'admin': 'Set permissions, checkout url, and viewable files. Import a remote repo.',
})
- tool_label='SVN'
- tool_description="""
+ tool_label = 'SVN'
+ tool_description = """
Enterprise-class centralized version control for the masses.
"""
- ordinal=4
- forkable=False
- default_branch_name='HEAD'
+ ordinal = 4
+ forkable = False
+ default_branch_name = 'HEAD'
def __init__(self, project, config):
super(ForgeSVNApp, self).__init__(project, config)
@@ -99,16 +101,20 @@ class ForgeSVNApp(RepositoryApp):
def admin_menu(self):
links = []
links.append(SitemapEntry(
- 'Checkout URL',
- c.project.url()+'admin/'+self.config.options.mount_point+'/' + 'checkout_url',
- className='admin_modal'))
+ 'Checkout URL',
+ c.project.url() + 'admin/' +
+ self.config.options.mount_point +
+ '/' + 'checkout_url',
+ className='admin_modal'))
links.append(SitemapEntry(
- 'Import Repo',
- c.project.url()+'admin/'+self.config.options.mount_point+'/' + 'importer/'))
+ 'Import Repo',
+ c.project.url() + 'admin/' + self.config.options.mount_point + '/' + 'importer/'))
links += super(ForgeSVNApp, self).admin_menu()
return links
+
class SVNRepoAdminController(RepoAdminController):
+
def __init__(self, app):
super(SVNRepoAdminController, self).__init__(app)
self.importer = SVNImportController(self.app)
@@ -131,11 +137,12 @@ class SVNRepoAdminController(RepoAdminController):
self.app.config.options['checkout_url'] = post_data['checkout_url']
flash("Checkout URL successfully changed")
else:
- flash("%s is not a valid path for this repository" % post_data['checkout_url'], "error")
+ flash("%s is not a valid path for this repository" %
+ post_data['checkout_url'], "error")
class SVNImportController(BaseController):
- import_form=widgets.ImportForm()
+ import_form = widgets.ImportForm()
def __init__(self, app):
self.app = app
@@ -154,8 +161,8 @@ class SVNImportController(BaseController):
def do_import(self, checkout_url=None, **kwargs):
if self.app.repo.is_empty():
with h.push_context(
- self.app.config.project_id,
- app_config_id=self.app.config._id):
+ self.app.config.project_id,
+ app_config_id=self.app.config._id):
allura.tasks.repo_tasks.reclone.post(
cloned_from_path=None,
cloned_from_name=None,
@@ -172,8 +179,9 @@ class SVNImportController(BaseController):
def svn_timers():
- return Timer('svn_lib.{method_name}', SM.svn.SVNLibWrapper, 'checkout', 'add',
- 'checkin', 'info2', 'log', 'cat', 'list')
+ return Timer(
+ 'svn_lib.{method_name}', SM.svn.SVNLibWrapper, 'checkout', 'add',
+ 'checkin', 'info2', 'log', 'cat', 'list')
def forgesvn_timers():
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/c93733ac/ForgeSVN/forgesvn/tests/__init__.py
----------------------------------------------------------------------
diff --git a/ForgeSVN/forgesvn/tests/__init__.py b/ForgeSVN/forgesvn/tests/__init__.py
index 8ee62fd..d152a9e 100644
--- a/ForgeSVN/forgesvn/tests/__init__.py
+++ b/ForgeSVN/forgesvn/tests/__init__.py
@@ -18,7 +18,7 @@
# under the License.
-## Make our own SVN tool test decorator
+# Make our own SVN tool test decorator
from allura.tests.decorators import with_tool
with_svn = with_tool('test', 'SVN', 'src', 'SVN')
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/c93733ac/ForgeSVN/forgesvn/tests/functional/test_auth.py
----------------------------------------------------------------------
diff --git a/ForgeSVN/forgesvn/tests/functional/test_auth.py b/ForgeSVN/forgesvn/tests/functional/test_auth.py
index 178c8f0..7394c1b 100644
--- a/ForgeSVN/forgesvn/tests/functional/test_auth.py
+++ b/ForgeSVN/forgesvn/tests/functional/test_auth.py
@@ -23,6 +23,7 @@ from datadiff.tools import assert_equal
from allura.tests import TestController
from forgesvn.tests import with_svn
+
class TestSVNAuth(TestController):
@with_svn
@@ -40,7 +41,9 @@ class TestSVNAuth(TestController):
assert_equal(r.body, 'Cannot find repo at /p/test/blah')
r = self.app.get('/auth/refresh_repo/p/test/src/')
- assert_equal(r.body, '<Repository /tmp/svn/p/test/src> refresh queued.\n')
+ assert_equal(r.body,
+ '<Repository /tmp/svn/p/test/src> refresh queued.\n')
+
class TestSVNUserPermissions(TestController):
allow = dict(allow_read=True, allow_write=True, allow_create=True)
@@ -49,7 +52,8 @@ class TestSVNUserPermissions(TestController):
@with_svn
def test_list_repos(self):
- r = self.app.get('/auth/repo_permissions', params=dict(username='test-admin'), status=200)
+ r = self.app.get('/auth/repo_permissions',
+ params=dict(username='test-admin'), status=200)
assert_equal(json.loads(r.body), {"allow_write": [
'/svn/test/src',
]})
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/c93733ac/ForgeSVN/forgesvn/tests/functional/test_controllers.py
----------------------------------------------------------------------
diff --git a/ForgeSVN/forgesvn/tests/functional/test_controllers.py b/ForgeSVN/forgesvn/tests/functional/test_controllers.py
index 2cc0b9c..ca02196 100644
--- a/ForgeSVN/forgesvn/tests/functional/test_controllers.py
+++ b/ForgeSVN/forgesvn/tests/functional/test_controllers.py
@@ -33,7 +33,9 @@ from alluratest.controller import TestController
from forgesvn.tests import with_svn
from allura.tests.decorators import with_tool
+
class SVNTestController(TestController):
+
def setUp(self):
TestController.setUp(self)
self.setup_with_tools()
@@ -95,7 +97,7 @@ class TestRootController(SVNTestController):
def test_commit_browser_data(self):
resp = self.app.get('/src/commit_browser_data')
- data = json.loads(resp.body);
+ data = json.loads(resp.body)
assert data['max_row'] == 5
assert data['next_column'] == 1
for val in data['built_tree'].values():
@@ -112,7 +114,8 @@ class TestRootController(SVNTestController):
title = channel.find('title').text
assert_equal(title, 'test SVN changes')
description = channel.find('description').text
- assert_equal(description, 'Recent changes to SVN repository in test project')
+ assert_equal(description,
+ 'Recent changes to SVN repository in test project')
link = channel.find('link').text
assert_equal(link, 'http://localhost/p/test/src/')
commit = channel.find('item')
@@ -144,8 +147,10 @@ class TestRootController(SVNTestController):
def test_file(self):
resp = self.app.get('/src/1/tree/README')
- assert 'README' in resp.html.find('h2', {'class':'dark title'}).contents[2]
- content = str(resp.html.find('div', {'class':'clip grid-19 codebrowser'}))
+ assert 'README' in resp.html.find(
+ 'h2', {'class': 'dark title'}).contents[2]
+ content = str(
+ resp.html.find('div', {'class': 'clip grid-19 codebrowser'}))
assert 'This is readme' in content, content
assert '<span id="l1" class="code_block">' in resp
assert 'var hash = window.location.hash.substring(1);' in resp
@@ -233,30 +238,37 @@ class TestRootController(SVNTestController):
form = r.html.find('form', 'tarball')
assert_equal(form.button.text, 'Download Snapshot')
assert_equal(form.get('action'), '/p/test/svn-tags/19/tarball')
- assert_equal(form.find('input', attrs=dict(name='path')).get('value'), '/tags/tag-1.0')
+ assert_equal(
+ form.find('input', attrs=dict(name='path')).get('value'), '/tags/tag-1.0')
- r = self.app.get('/p/test/svn-tags/19/tarball_status?path=/tags/tag-1.0')
+ r = self.app.get(
+ '/p/test/svn-tags/19/tarball_status?path=/tags/tag-1.0')
assert_equal(r.json['status'], None)
- r = self.app.post('/p/test/svn-tags/19/tarball', dict(path='/tags/tag-1.0')).follow()
+ r = self.app.post('/p/test/svn-tags/19/tarball',
+ dict(path='/tags/tag-1.0')).follow()
assert 'Generating snapshot...' in r
M.MonQTask.run_ready()
- r = self.app.get('/p/test/svn-tags/19/tarball_status?path=/tags/tag-1.0')
+ r = self.app.get(
+ '/p/test/svn-tags/19/tarball_status?path=/tags/tag-1.0')
assert_equal(r.json['status'], 'complete')
r = self.app.get('/p/test/svn-tags/19/tarball_status?path=/trunk')
assert_equal(r.json['status'], None)
- r = self.app.post('/p/test/svn-tags/19/tarball', dict(path='/trunk/')).follow()
+ r = self.app.post('/p/test/svn-tags/19/tarball',
+ dict(path='/trunk/')).follow()
assert 'Generating snapshot...' in r
M.MonQTask.run_ready()
r = self.app.get('/p/test/svn-tags/19/tarball_status?path=/trunk')
assert_equal(r.json['status'], 'complete')
- r = self.app.get('/p/test/svn-tags/19/tarball_status?path=/branches/aaa/')
+ r = self.app.get(
+ '/p/test/svn-tags/19/tarball_status?path=/branches/aaa/')
assert_equal(r.json['status'], None)
# All of the following also should be ready because...
# ...this is essentially the same as trunk snapshot
- r = self.app.get('/p/test/svn-tags/19/tarball_status?path=/trunk/some/path/')
+ r = self.app.get(
+ '/p/test/svn-tags/19/tarball_status?path=/trunk/some/path/')
assert_equal(r.json['status'], 'complete')
r = self.app.get('/p/test/svn-tags/19/tarball_status')
assert_equal(r.json['status'], 'complete')
@@ -267,7 +279,8 @@ class TestRootController(SVNTestController):
r = self.app.get('/p/test/svn-tags/19/tarball_status?path=/branches/')
assert_equal(r.json['status'], 'complete')
# ...this is essentially the same as tag snapshot
- r = self.app.get('/p/test/svn-tags/19/tarball_status?path=/tags/tag-1.0/dir')
+ r = self.app.get(
+ '/p/test/svn-tags/19/tarball_status?path=/tags/tag-1.0/dir')
assert_equal(r.json['status'], 'complete')
@@ -297,6 +310,7 @@ class TestImportController(SVNTestController):
class SVNTestRenames(TestController):
+
def setUp(self):
TestController.setUp(self)
self.setup_with_tools()
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/c93733ac/ForgeSVN/forgesvn/tests/model/test_repository.py
----------------------------------------------------------------------
diff --git a/ForgeSVN/forgesvn/tests/model/test_repository.py b/ForgeSVN/forgesvn/tests/model/test_repository.py
index 9990bdb..babafb3 100644
--- a/ForgeSVN/forgesvn/tests/model/test_repository.py
+++ b/ForgeSVN/forgesvn/tests/model/test_repository.py
@@ -47,6 +47,7 @@ from forgesvn.model.svn import svn_path_exists
from forgesvn.tests import with_svn
from allura.tests.decorators import with_tool
+
class TestNewRepo(unittest.TestCase):
def setUp(self):
@@ -62,9 +63,9 @@ class TestNewRepo(unittest.TestCase):
self.repo = SM.Repository(
name='testsvn',
fs_path=repo_dir,
- url_path = '/test/',
- tool = 'svn',
- status = 'creating')
+ url_path='/test/',
+ tool='svn',
+ status='creating')
self.repo.refresh()
self.rev = self.repo.commit('HEAD')
ThreadLocalORMSession.flush_all()
@@ -96,7 +97,8 @@ class TestNewRepo(unittest.TestCase):
self.rev.tree.by_name['README']
assert self.rev.tree.is_blob('README') == True
assert self.rev.tree['a']['b']['c'].ls() == []
- self.assertRaises(KeyError, lambda:self.rev.tree['a']['b']['d'])
+ self.assertRaises(KeyError, lambda: self.rev.tree['a']['b']['d'])
+
class TestSVNRepo(unittest.TestCase, RepoImplTestBase):
@@ -114,16 +116,16 @@ class TestSVNRepo(unittest.TestCase, RepoImplTestBase):
self.repo = SM.Repository(
name='testsvn',
fs_path=repo_dir,
- url_path = '/test/',
- tool = 'svn',
- status = 'creating')
+ url_path='/test/',
+ tool='svn',
+ status='creating')
self.repo.refresh()
self.svn_tags = SM.Repository(
name='testsvn-trunk-tags-branches',
fs_path=repo_dir,
- url_path = '/test/',
- tool = 'svn',
- status = 'creating')
+ url_path='/test/',
+ tool='svn',
+ status='creating')
self.svn_tags.refresh()
ThreadLocalORMSession.flush_all()
ThreadLocalORMSession.close_all()
@@ -131,10 +133,10 @@ class TestSVNRepo(unittest.TestCase, RepoImplTestBase):
def test_init(self):
repo = SM.Repository(
name='testsvn',
- fs_path=g.tmpdir+'/',
- url_path = '/test/',
- tool = 'svn',
- status = 'creating')
+ fs_path=g.tmpdir + '/',
+ url_path='/test/',
+ tool='svn',
+ status='creating')
dirname = os.path.join(repo.fs_path, repo.name)
if os.path.exists(dirname):
shutil.rmtree(dirname)
@@ -144,10 +146,10 @@ class TestSVNRepo(unittest.TestCase, RepoImplTestBase):
def test_fork(self):
repo = SM.Repository(
name='testsvn',
- fs_path=g.tmpdir+'/',
- url_path = '/test/',
- tool = 'svn',
- status = 'creating')
+ fs_path=g.tmpdir + '/',
+ url_path='/test/',
+ tool='svn',
+ status='creating')
repo_path = pkg_resources.resource_filename(
'forgesvn', 'tests/data/testsvn')
dirname = os.path.join(repo.fs_path, repo.name)
@@ -155,12 +157,16 @@ class TestSVNRepo(unittest.TestCase, RepoImplTestBase):
shutil.rmtree(dirname)
repo.init()
repo._impl.clone_from('file://' + repo_path)
- assert not os.path.exists(os.path.join(g.tmpdir, 'testsvn/hooks/pre-revprop-change'))
- assert os.path.exists(os.path.join(g.tmpdir, 'testsvn/hooks/post-commit'))
- assert os.access(os.path.join(g.tmpdir, 'testsvn/hooks/post-commit'), os.X_OK)
+ assert not os.path.exists(
+ os.path.join(g.tmpdir, 'testsvn/hooks/pre-revprop-change'))
+ assert os.path.exists(
+ os.path.join(g.tmpdir, 'testsvn/hooks/post-commit'))
+ assert os.access(
+ os.path.join(g.tmpdir, 'testsvn/hooks/post-commit'), os.X_OK)
with open(os.path.join(g.tmpdir, 'testsvn/hooks/post-commit')) as f:
c = f.read()
- self.assertIn('curl -s http://localhost/auth/refresh_repo/p/test/src/\n', c)
+ self.assertIn(
+ 'curl -s http://localhost/auth/refresh_repo/p/test/src/\n', c)
self.assertIn('exec $DIR/post-commit-user "$@"\n', c)
repo.refresh(notify=False)
@@ -182,8 +188,8 @@ class TestSVNRepo(unittest.TestCase, RepoImplTestBase):
stdout = combo[2]
obj.check_call.return_value = stdout, ''
expected = (source_url.startswith('file://') and
- tg.config['scm.svn.hotcopy'] and
- stdout != 'version 1.6')
+ tg.config['scm.svn.hotcopy'] and
+ stdout != 'version 1.6')
result = func(obj, source_url)
assert result == expected
@@ -191,10 +197,10 @@ class TestSVNRepo(unittest.TestCase, RepoImplTestBase):
def test_clone(self, post_event):
repo = SM.Repository(
name='testsvn',
- fs_path=g.tmpdir+'/',
- url_path = '/test/',
- tool = 'svn',
- status = 'creating')
+ fs_path=g.tmpdir + '/',
+ url_path='/test/',
+ tool='svn',
+ status='creating')
repo_path = pkg_resources.resource_filename(
'forgesvn', 'tests/data/testsvn')
dirname = os.path.join(repo.fs_path, repo.name)
@@ -202,12 +208,16 @@ class TestSVNRepo(unittest.TestCase, RepoImplTestBase):
shutil.rmtree(dirname)
repo.init()
repo._impl.clone_from('file://' + repo_path)
- assert not os.path.exists(os.path.join(g.tmpdir, 'testsvn/hooks/pre-revprop-change'))
- assert os.path.exists(os.path.join(g.tmpdir, 'testsvn/hooks/post-commit'))
- assert os.access(os.path.join(g.tmpdir, 'testsvn/hooks/post-commit'), os.X_OK)
+ assert not os.path.exists(
+ os.path.join(g.tmpdir, 'testsvn/hooks/pre-revprop-change'))
+ assert os.path.exists(
+ os.path.join(g.tmpdir, 'testsvn/hooks/post-commit'))
+ assert os.access(
+ os.path.join(g.tmpdir, 'testsvn/hooks/post-commit'), os.X_OK)
with open(os.path.join(g.tmpdir, 'testsvn/hooks/post-commit')) as f:
c = f.read()
- self.assertIn('curl -s http://localhost/auth/refresh_repo/p/test/src/\n', c)
+ self.assertIn(
+ 'curl -s http://localhost/auth/refresh_repo/p/test/src/\n', c)
self.assertIn('exec $DIR/post-commit-user "$@"\n', c)
repo.refresh(notify=False)
@@ -277,9 +287,9 @@ class TestSVNRepo(unittest.TestCase, RepoImplTestBase):
'rename_details': {},
'id': 3,
'authored':
- {'date': datetime(2010, 10, 8, 15, 32, 48, 272296),
- 'name': u'rick446',
- 'email': ''},
+ {'date': datetime(2010, 10, 8, 15, 32, 48, 272296),
+ 'name': u'rick446',
+ 'email': ''},
'size': 0},
{'parents': [1],
'refs': [],
@@ -337,7 +347,7 @@ class TestSVNRepo(unittest.TestCase, RepoImplTestBase):
'refs': [],
'size': 15,
'rename_details': {}},
- ])
+ ])
def test_is_file(self):
assert self.repo.is_file('/README')
@@ -348,9 +358,9 @@ class TestSVNRepo(unittest.TestCase, RepoImplTestBase):
self.assertEqual(entry.diffs, entry.paged_diffs())
self.assertEqual(entry.diffs, entry.paged_diffs(start=0))
added_expected = entry.diffs.added[1:3]
- expected = dict(
- copied=[], changed=[], removed=[],
- added=added_expected, total=4)
+ expected = dict(
+ copied=[], changed=[], removed=[],
+ added=added_expected, total=4)
actual = entry.paged_diffs(start=1, end=3)
self.assertEqual(expected, actual)
@@ -411,20 +421,26 @@ class TestSVNRepo(unittest.TestCase, RepoImplTestBase):
with mock.patch('forgesvn.model.svn.pysvn') as pysvn:
svn_path_exists('dummy')
pysvn.Client.return_value.info2.assert_called_once_with(
- 'dummy',
- revision=pysvn.Revision.return_value,
- recurse=False)
+ 'dummy',
+ revision=pysvn.Revision.return_value,
+ recurse=False)
@onlyif(os.path.exists(tg.config.get('scm.repos.tarball.zip_binary', '/usr/bin/zip')), 'zip binary is missing')
def test_tarball(self):
tmpdir = tg.config['scm.repos.tarball.root']
- assert_equal(self.repo.tarball_path, os.path.join(tmpdir, 'svn/t/te/test/testsvn'))
- assert_equal(self.repo.tarball_url('1'), 'file:///svn/t/te/test/testsvn/test-src-1.zip')
+ assert_equal(self.repo.tarball_path,
+ os.path.join(tmpdir, 'svn/t/te/test/testsvn'))
+ assert_equal(self.repo.tarball_url('1'),
+ 'file:///svn/t/te/test/testsvn/test-src-1.zip')
self.repo.tarball('1')
- assert os.path.isfile(os.path.join(tmpdir, "svn/t/te/test/testsvn/test-src-1.zip"))
- tarball_zip = ZipFile(os.path.join(tmpdir, 'svn/t/te/test/testsvn/test-src-1.zip'), 'r')
- assert_equal(tarball_zip.namelist(), ['test-src-1/', 'test-src-1/README'])
- shutil.rmtree(self.repo.tarball_path.encode('utf-8'), ignore_errors=True)
+ assert os.path.isfile(
+ os.path.join(tmpdir, "svn/t/te/test/testsvn/test-src-1.zip"))
+ tarball_zip = ZipFile(
+ os.path.join(tmpdir, 'svn/t/te/test/testsvn/test-src-1.zip'), 'r')
+ assert_equal(tarball_zip.namelist(),
+ ['test-src-1/', 'test-src-1/README'])
+ shutil.rmtree(self.repo.tarball_path.encode('utf-8'),
+ ignore_errors=True)
@onlyif(os.path.exists(tg.config.get('scm.repos.tarball.zip_binary', '/usr/bin/zip')), 'zip binary is missing')
def test_tarball_aware_of_tags(self):
@@ -434,7 +450,8 @@ class TestSVNRepo(unittest.TestCase, RepoImplTestBase):
'test-svn-tags-19-tags-tag-1.0/README'])
h.set_context('test', 'svn-tags', neighborhood='Projects')
tmpdir = tg.config['scm.repos.tarball.root']
- tarball_path = os.path.join(tmpdir, 'svn/t/te/test/testsvn-trunk-tags-branches/')
+ tarball_path = os.path.join(
+ tmpdir, 'svn/t/te/test/testsvn-trunk-tags-branches/')
fn = tarball_path + 'test-svn-tags-19-tags-tag-1.0.zip'
self.svn_tags.tarball(rev, '/tags/tag-1.0/')
assert os.path.isfile(fn), fn
@@ -469,7 +486,8 @@ class TestSVNRepo(unittest.TestCase, RepoImplTestBase):
'test-svn-tags-19-branches-aaa/README'])
h.set_context('test', 'svn-tags', neighborhood='Projects')
tmpdir = tg.config['scm.repos.tarball.root']
- tarball_path = os.path.join(tmpdir, 'svn/t/te/test/testsvn-trunk-tags-branches/')
+ tarball_path = os.path.join(
+ tmpdir, 'svn/t/te/test/testsvn-trunk-tags-branches/')
fn = tarball_path + 'test-svn-tags-19-branches-aaa.zip'
self.svn_tags.tarball(rev, '/branches/aaa/')
assert os.path.isfile(fn), fn
@@ -505,7 +523,8 @@ class TestSVNRepo(unittest.TestCase, RepoImplTestBase):
'test-svn-tags-19-trunk/README'])
h.set_context('test', 'svn-tags', neighborhood='Projects')
tmpdir = tg.config['scm.repos.tarball.root']
- tarball_path = os.path.join(tmpdir, 'svn/t/te/test/testsvn-trunk-tags-branches/')
+ tarball_path = os.path.join(
+ tmpdir, 'svn/t/te/test/testsvn-trunk-tags-branches/')
fn = tarball_path + 'test-svn-tags-19-trunk.zip'
self.svn_tags.tarball(rev, '/trunk/')
assert os.path.isfile(fn), fn
@@ -532,7 +551,8 @@ class TestSVNRepo(unittest.TestCase, RepoImplTestBase):
assert os.path.isfile(fn), fn
snapshot = ZipFile(fn, 'r')
assert_equal(snapshot.namelist(), ['test-src-1/', 'test-src-1/README'])
- shutil.rmtree(os.path.join(tmpdir, 'svn/t/te/test/testsvn/'), ignore_errors=True)
+ shutil.rmtree(os.path.join(tmpdir, 'svn/t/te/test/testsvn/'),
+ ignore_errors=True)
shutil.rmtree(tarball_path, ignore_errors=True)
def test_is_empty(self):
@@ -541,15 +561,16 @@ class TestSVNRepo(unittest.TestCase, RepoImplTestBase):
repo2 = SM.Repository(
name='test',
fs_path=d.path,
- url_path = '/test/',
- tool = 'svn',
- status = 'creating')
+ url_path='/test/',
+ tool='svn',
+ status='creating')
repo2.init()
assert repo2.is_empty()
repo2.refresh()
ThreadLocalORMSession.flush_all()
assert repo2.is_empty()
+
class TestSVNRev(unittest.TestCase):
def setUp(self):
@@ -565,9 +586,9 @@ class TestSVNRev(unittest.TestCase):
self.repo = SM.Repository(
name='testsvn',
fs_path=repo_dir,
- url_path = '/test/',
- tool = 'svn',
- status = 'creating')
+ url_path='/test/',
+ tool='svn',
+ status='creating')
self.repo.refresh()
self.rev = self.repo.commit(1)
ThreadLocalORMSession.flush_all()
@@ -584,9 +605,9 @@ class TestSVNRev(unittest.TestCase):
def test_diff(self):
diffs = (self.rev.diffs.added
- +self.rev.diffs.removed
- +self.rev.diffs.changed
- +self.rev.diffs.copied)
+ + self.rev.diffs.removed
+ + self.rev.diffs.changed
+ + self.rev.diffs.copied)
for d in diffs:
print d
@@ -605,7 +626,8 @@ class TestSVNRev(unittest.TestCase):
assert_equal(commits, [4, 2])
commits = list(self.repo.log(3, 'a/b/c/', id_only=True))
assert_equal(commits, [2])
- assert_equal(list(self.repo.log(self.repo.head, 'does/not/exist', id_only=True)), [])
+ assert_equal(
+ list(self.repo.log(self.repo.head, 'does/not/exist', id_only=True)), [])
def test_notification_email(self):
setup_global_objects()
@@ -615,9 +637,9 @@ class TestSVNRev(unittest.TestCase):
self.repo = SM.Repository(
name='testsvn',
fs_path=repo_dir,
- url_path = '/test/',
- tool = 'svn',
- status = 'creating')
+ url_path='/test/',
+ tool='svn',
+ status='creating')
self.repo.refresh()
ThreadLocalORMSession.flush_all()
send_notifications(self.repo, [self.repo.rev_to_commit_id(1)])
@@ -629,36 +651,37 @@ class TestSVNRev(unittest.TestCase):
class _Test(unittest.TestCase):
- idgen = ( 'obj_%d' % i for i in count())
+ idgen = ('obj_%d' % i for i in count())
def _make_tree(self, object_id, **kwargs):
t, isnew = M.repo.Tree.upsert(object_id)
repo = getattr(self, 'repo', None)
t.repo = repo
- for k,v in kwargs.iteritems():
+ for k, v in kwargs.iteritems():
if isinstance(v, basestring):
obj = M.repo.Blob(
t, k, self.idgen.next())
t.blob_ids.append(Object(
- name=k, id=obj._id))
+ name=k, id=obj._id))
else:
obj = self._make_tree(self.idgen.next(), **v)
t.tree_ids.append(Object(
- name=k, id=obj._id))
+ name=k, id=obj._id))
session(t).flush()
return t
def _make_commit(self, object_id, **tree_parts):
ci, isnew = M.repo.Commit.upsert(object_id)
if isnew:
- ci.committed.email=c.user.email_addresses[0]
- ci.authored.email=c.user.email_addresses[0]
+ ci.committed.email = c.user.email_addresses[0]
+ ci.authored.email = c.user.email_addresses[0]
dt = datetime.utcnow()
# BSON datetime resolution is to 1 millisecond, not 1 microsecond
# like Python. Round this now so it'll match the value that's
# pulled from MongoDB in the tests.
- ci.authored.date = dt.replace(microsecond=dt.microsecond/1000 * 1000)
- ci.message='summary\n\nddescription'
+ ci.authored.date = dt.replace(
+ microsecond=dt.microsecond / 1000 * 1000)
+ ci.message = 'summary\n\nddescription'
ci.set_context(self.repo)
ci.tree_id = 't_' + object_id
ci.tree = self._make_tree(ci.tree_id, **tree_parts)
@@ -677,7 +700,9 @@ class _Test(unittest.TestCase):
ThreadLocalORMSession.close_all()
self.prefix = tg.config.get('scm.repos.root', '/')
+
class _TestWithRepo(_Test):
+
def setUp(self):
super(_TestWithRepo, self).setUp()
h.set_context('test', neighborhood='Projects')
@@ -690,43 +715,47 @@ class _TestWithRepo(_Test):
lambda *a, **kw: M.RepositoryImplementation.url_for_commit(
self.repo._impl, *a, **kw))
self.repo._impl._repo = self.repo
- self.repo._impl.all_commit_ids = lambda *a,**kw: []
+ self.repo._impl.all_commit_ids = lambda *a, **kw: []
self.repo._impl.commit().symbolic_ids = None
ThreadLocalORMSession.flush_all()
# ThreadLocalORMSession.close_all()
+
class _TestWithRepoAndCommit(_TestWithRepo):
+
def setUp(self):
super(_TestWithRepoAndCommit, self).setUp()
self.ci, isnew = self._make_commit('foo')
ThreadLocalORMSession.flush_all()
# ThreadLocalORMSession.close_all()
+
class TestRepo(_TestWithRepo):
def test_create(self):
assert self.repo.fs_path == os.path.join(self.prefix, 'svn/p/test/')
assert self.repo.url_path == '/p/test/'
- assert self.repo.full_fs_path == os.path.join(self.prefix, 'svn/p/test/test1')
+ assert self.repo.full_fs_path == os.path.join(
+ self.prefix, 'svn/p/test/test1')
def test_passthrough(self):
argless = ['init']
for fn in argless:
getattr(self.repo, fn)()
getattr(self.repo._impl, fn).assert_called_with()
- unary = [ 'commit', 'open_blob' ]
+ unary = ['commit', 'open_blob']
for fn in unary:
getattr(self.repo, fn)('foo')
getattr(self.repo._impl, fn).assert_called_with('foo')
def test_shorthand_for_commit(self):
self.assertEqual(
- self.repo.shorthand_for_commit('a'*40),
+ self.repo.shorthand_for_commit('a' * 40),
'[aaaaaa]')
def test_url_for_commit(self):
self.assertEqual(
- self.repo.url_for_commit('a'*40),
+ self.repo.url_for_commit('a' * 40),
'/p/test/test1/ci/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/')
@mock.patch('allura.model.repository.g.post_event')
@@ -764,11 +793,13 @@ class TestRepo(_TestWithRepo):
session(M.MergeRequest).clear()
assert self.repo.merge_requests_by_statuses('open').count() == 1
assert self.repo.merge_requests_by_statuses('closed').count() == 1
- assert self.repo.merge_requests_by_statuses('open', 'closed').count() == 2
+ assert self.repo.merge_requests_by_statuses(
+ 'open', 'closed').count() == 2
def test_guess_type(self):
assert self.repo.guess_type('foo.txt') == ('text/plain', None)
- assert self.repo.guess_type('foo.gbaer') == ('application/octet-stream', None)
+ assert self.repo.guess_type('foo.gbaer') == (
+ 'application/octet-stream', None)
assert self.repo.guess_type('foo.html') == ('text/html', None)
assert self.repo.guess_type('.gitignore') == ('text/plain', None)
@@ -781,15 +812,19 @@ class TestRepo(_TestWithRepo):
ci.committed.email = committer_email
ci.author_url = '/u/test-committer/'
self.repo._impl.commit = mock.Mock(return_value=ci)
- self.repo._impl.new_commits = mock.Mock(return_value=['foo%d' % i for i in range(100) ])
- self.repo._impl.all_commit_ids = mock.Mock(return_value=['foo%d' % i for i in range(100) ])
- self.repo.symbolics_for_commit = mock.Mock(return_value=[['master', 'branch'], []])
+ self.repo._impl.new_commits = mock.Mock(
+ return_value=['foo%d' % i for i in range(100)])
+ self.repo._impl.all_commit_ids = mock.Mock(
+ return_value=['foo%d' % i for i in range(100)])
+ self.repo.symbolics_for_commit = mock.Mock(
+ return_value=[['master', 'branch'], []])
+
def refresh_commit_info(oid, seen, lazy=False):
M.repo.CommitDoc(dict(
- authored=dict(
- name=committer_name,
- email=committer_email),
- _id=oid)).m.insert()
+ authored=dict(
+ name=committer_name,
+ email=committer_email),
+ _id=oid)).m.insert()
self.repo._impl.refresh_commit_info = refresh_commit_info
_id = lambda oid: getattr(oid, '_id', str(oid))
self.repo.shorthand_for_commit = lambda oid: '[' + _id(oid) + ']'
@@ -809,9 +844,11 @@ class TestRepo(_TestWithRepo):
def test_refresh_private(self):
ci = mock.Mock()
self.repo._impl.commit = mock.Mock(return_value=ci)
- self.repo._impl.new_commits = mock.Mock(return_value=['foo%d' % i for i in range(100) ])
+ self.repo._impl.new_commits = mock.Mock(
+ return_value=['foo%d' % i for i in range(100)])
- # make unreadable by *anonymous, so additional notification logic executes
+ # make unreadable by *anonymous, so additional notification logic
+ # executes
self.repo.acl = []
c.project.acl = []
@@ -822,7 +859,7 @@ class TestRepo(_TestWithRepo):
old_app_instance = M.Project.app_instance
try:
M.Project.app_instance = mock.Mock(return_value=ming.base.Object(
- config=ming.base.Object(_id=None)))
+ config=ming.base.Object(_id=None)))
with self.repo.push_upstream_context():
assert c.project.shortname == 'test'
finally:
@@ -833,11 +870,12 @@ class TestRepo(_TestWithRepo):
old_app_instance = M.Project.app_instance
try:
M.Project.app_instance = mock.Mock(return_value=ming.base.Object(
- config=ming.base.Object(_id=None)))
+ config=ming.base.Object(_id=None)))
self.repo.pending_upstream_merges()
finally:
M.Project.app_instance = old_app_instance
+
class TestMergeRequest(_TestWithRepoAndCommit):
def setUp(self):
@@ -846,8 +884,8 @@ class TestMergeRequest(_TestWithRepoAndCommit):
h.set_context('test', 'test2', neighborhood='Projects')
self.repo2 = M.Repository(name='test2', tool='svn')
self.repo2._impl = mock.Mock(spec=M.RepositoryImplementation())
- self.repo2._impl.log = lambda *a,**kw:(['foo'], [])
- self.repo2._impl.all_commit_ids = lambda *a,**kw: []
+ self.repo2._impl.log = lambda *a, **kw: (['foo'], [])
+ self.repo2._impl.all_commit_ids = lambda *a, **kw: []
self.repo2._impl._repo = self.repo2
self.repo2.init_as_clone('/p/test/', 'test1', '/p/test/test1/')
ThreadLocalORMSession.flush_all()
@@ -868,19 +906,24 @@ class TestMergeRequest(_TestWithRepoAndCommit):
assert_equal(mr.creator_name, u.get_pref('display_name'))
assert_equal(mr.creator_url, u.url())
assert_equal(mr.downstream_url, '/p/test/test2/')
- assert_equal(mr.downstream_repo_url, 'http://svn.localhost/p/test/test2/')
+ assert_equal(mr.downstream_repo_url,
+ 'http://svn.localhost/p/test/test2/')
with mock.patch('forgesvn.model.svn.SVNLibWrapper') as _svn,\
- mock.patch('forgesvn.model.svn.SVNImplementation._map_log') as _map_log:
+ mock.patch('forgesvn.model.svn.SVNImplementation._map_log') as _map_log:
mr.app.repo._impl.head = 1
_svn().log.return_value = [mock.Mock(revision=mock.Mock(number=2))]
_map_log.return_value = 'bar'
assert_equal(mr.commits, ['bar'])
- # can't do assert_called_once_with because pysvn.Revision doesn't compare nicely
+ # can't do assert_called_once_with because pysvn.Revision doesn't
+ # compare nicely
assert_equal(_svn().log.call_count, 1)
- assert_equal(_svn().log.call_args[0], ('file:///tmp/svn/p/test/test2',))
+ assert_equal(_svn().log.call_args[0],
+ ('file:///tmp/svn/p/test/test2',))
assert_equal(_svn().log.call_args[1]['revision_start'].number, 2)
assert_equal(_svn().log.call_args[1]['limit'], 25)
- _map_log.assert_called_once_with(_svn().log.return_value[0], 'file:///tmp/svn/p/test/test2', None)
+ _map_log.assert_called_once_with(
+ _svn().log.return_value[0], 'file:///tmp/svn/p/test/test2', None)
+
class TestRepoObject(_TestWithRepoAndCommit):
@@ -891,7 +934,8 @@ class TestRepoObject(_TestWithRepoAndCommit):
assert isnew0 and not isnew1
def test_artifact_methods(self):
- assert self.ci.index_id() == 'allura/model/repo/Commit#foo', self.ci.index_id()
+ assert self.ci.index_id(
+ ) == 'allura/model/repo/Commit#foo', self.ci.index_id()
assert self.ci.primary() is self.ci, self.ci.primary()
@@ -946,17 +990,18 @@ class TestCommit(_TestWithRepo):
M.repo_refresh.refresh_commit_trees(self.ci, {})
M.repo_refresh.compute_diffs(self.repo._id, {}, self.ci)
# self.ci.compute_diffs()
- assert_equal(self.ci.diffs.added, [ 'a', 'a/a', 'a/a/a', 'a/a/b', 'a/b' ])
+ assert_equal(self.ci.diffs.added,
+ ['a', 'a/a', 'a/a/a', 'a/a/b', 'a/b'])
assert (self.ci.diffs.copied
== self.ci.diffs.changed
== self.ci.diffs.removed
== [])
ci, isnew = self._make_commit('bar')
- ci.parent_ids = [ 'foo' ]
+ ci.parent_ids = ['foo']
self._make_log(ci)
M.repo_refresh.refresh_commit_trees(ci, {})
M.repo_refresh.compute_diffs(self.repo._id, {}, ci)
- assert_equal(ci.diffs.removed, [ 'a', 'a/a', 'a/a/a', 'a/a/b', 'a/b' ])
+ assert_equal(ci.diffs.removed, ['a', 'a/a', 'a/a/a', 'a/a/b', 'a/b'])
assert (ci.diffs.copied
== ci.diffs.changed
== ci.diffs.added
@@ -968,12 +1013,12 @@ class TestCommit(_TestWithRepo):
a='',
b='',),
b=''))
- ci.parent_ids = [ 'foo' ]
+ ci.parent_ids = ['foo']
self._make_log(ci)
M.repo_refresh.refresh_commit_trees(ci, {})
M.repo_refresh.compute_diffs(self.repo._id, {}, ci)
- assert_equal(ci.diffs.added, [ 'b', 'b/a', 'b/a/a', 'b/a/b', 'b/b' ])
- assert_equal(ci.diffs.removed, [ 'a', 'a/a', 'a/a/a', 'a/a/b', 'a/b' ])
+ assert_equal(ci.diffs.added, ['b', 'b/a', 'b/a/a', 'b/a/b', 'b/b'])
+ assert_equal(ci.diffs.removed, ['a', 'a/a', 'a/a/a', 'a/a/b', 'a/b'])
assert (ci.diffs.copied
== ci.diffs.changed
== [])
@@ -986,7 +1031,8 @@ class TestCommit(_TestWithRepo):
u'/b/a/b': u'Luke Skywalker',
u'/b/b': u'Death Star will destroy you',
u'/b/c': u'Luke Skywalker', # moved from /b/a/b
- u'/b/a/z': u'Death Star will destroy you\nALL', # moved from /b/b and modified
+ # moved from /b/b and modified
+ u'/b/a/z': u'Death Star will destroy you\nALL',
}
from cStringIO import StringIO
return StringIO(blobs.get(blob.path(), ''))
@@ -995,7 +1041,8 @@ class TestCommit(_TestWithRepo):
self.repo._impl.commit = mock.Mock(return_value=self.ci)
M.repo_refresh.refresh_commit_trees(self.ci, {})
M.repo_refresh.compute_diffs(self.repo._id, {}, self.ci)
- assert_equal(self.ci.diffs.added, ['a', 'a/a', 'a/a/a', 'a/a/b', 'a/b'])
+ assert_equal(self.ci.diffs.added,
+ ['a', 'a/a', 'a/a/a', 'a/a/b', 'a/b'])
assert (self.ci.diffs.copied
== self.ci.diffs.changed
== self.ci.diffs.removed
@@ -1061,9 +1108,9 @@ class TestRename(unittest.TestCase):
self.repo = SM.Repository(
name='testsvn-rename',
fs_path=repo_dir,
- url_path = '/test/',
- tool = 'svn',
- status = 'creating')
+ url_path='/test/',
+ tool='svn',
+ status='creating')
self.repo.refresh()
self.rev = self.repo.commit('HEAD')
ThreadLocalORMSession.flush_all()
@@ -1079,7 +1126,8 @@ class TestRename(unittest.TestCase):
)
def test_check_changed_path(self):
- changed_path = {'copyfrom_path':'/test/path', 'path':'/test/path2'}
- result = self.repo._impl._check_changed_path(changed_path, '/test/path2/file.txt')
- assert_equal({'path': '/test/path2/file.txt', 'copyfrom_path': '/test/path/file.txt'}, result)
-
+ changed_path = {'copyfrom_path': '/test/path', 'path': '/test/path2'}
+ result = self.repo._impl._check_changed_path(
+ changed_path, '/test/path2/file.txt')
+ assert_equal({'path': '/test/path2/file.txt',
+ 'copyfrom_path': '/test/path/file.txt'}, result)
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/c93733ac/ForgeSVN/forgesvn/tests/model/test_svnimplementation.py
----------------------------------------------------------------------
diff --git a/ForgeSVN/forgesvn/tests/model/test_svnimplementation.py b/ForgeSVN/forgesvn/tests/model/test_svnimplementation.py
index fbd92b8..b9c75d3 100644
--- a/ForgeSVN/forgesvn/tests/model/test_svnimplementation.py
+++ b/ForgeSVN/forgesvn/tests/model/test_svnimplementation.py
@@ -40,7 +40,7 @@ class TestSVNImplementation(object):
@patch('allura.model.repo.Tree.upsert')
@patch('allura.model.repo.Tree.query.get')
def _test_compute_tree_new(self, path, tree_get, tree_upsert, treesdoc_partial, lcd_partial):
- repo = Mock(fs_path=g.tmpdir+'/')
+ repo = Mock(fs_path=g.tmpdir + '/')
repo.name = 'code'
impl = SVNImplementation(repo)
impl._svn.info2 = Mock()
@@ -52,11 +52,11 @@ class TestSVNImplementation(object):
tree_id = impl.compute_tree_new(commit, path)
- assert_equal(impl._svn.info2.call_args[0][0], 'file://'+g.tmpdir+'/code/trunk/foo')
+ assert_equal(impl._svn.info2.call_args[0]
+ [0], 'file://' + g.tmpdir + '/code/trunk/foo')
treesdoc_partial.assert_called()
lcd_partial.assert_called()
-
def test_last_commit_ids(self):
self._test_last_commit_ids('/trunk/foo/')
self._test_last_commit_ids('/trunk/foo')
@@ -64,7 +64,7 @@ class TestSVNImplementation(object):
self._test_last_commit_ids('trunk/foo')
def _test_last_commit_ids(self, path):
- repo = Mock(fs_path=g.tmpdir+'/')
+ repo = Mock(fs_path=g.tmpdir + '/')
repo.name = 'code'
repo._id = '5057636b9c1040636b81e4b1'
impl = SVNImplementation(repo)
@@ -76,11 +76,12 @@ class TestSVNImplementation(object):
entries = impl.last_commit_ids(commit, [path])
assert_equal(entries, {path.strip('/'): '5057636b9c1040636b81e4b1:1'})
- assert_equal(impl._svn.info2.call_args[0][0], 'file://'+g.tmpdir+'/code/trunk')
+ assert_equal(impl._svn.info2.call_args[0]
+ [0], 'file://' + g.tmpdir + '/code/trunk')
@patch('forgesvn.model.svn.svn_path_exists')
def test__path_to_root(self, path_exists):
- repo = Mock(fs_path=g.tmpdir+'/')
+ repo = Mock(fs_path=g.tmpdir + '/')
repo.name = 'code'
repo._id = '5057636b9c1040636b81e4b1'
impl = SVNImplementation(repo)
@@ -91,15 +92,20 @@ class TestSVNImplementation(object):
assert_equal(impl._path_to_root('/some/path/'), '')
assert_equal(impl._path_to_root('some/path'), '')
# tags
- assert_equal(impl._path_to_root('/some/path/tags/1.0/some/dir'), 'some/path/tags/1.0')
- assert_equal(impl._path_to_root('/some/path/tags/1.0/'), 'some/path/tags/1.0')
+ assert_equal(impl._path_to_root('/some/path/tags/1.0/some/dir'),
+ 'some/path/tags/1.0')
+ assert_equal(impl._path_to_root('/some/path/tags/1.0/'),
+ 'some/path/tags/1.0')
assert_equal(impl._path_to_root('/some/path/tags/'), '')
# branches
- assert_equal(impl._path_to_root('/some/path/branches/b1/dir'), 'some/path/branches/b1')
- assert_equal(impl._path_to_root('/some/path/branches/b1/'), 'some/path/branches/b1')
+ assert_equal(impl._path_to_root('/some/path/branches/b1/dir'),
+ 'some/path/branches/b1')
+ assert_equal(impl._path_to_root('/some/path/branches/b1/'),
+ 'some/path/branches/b1')
assert_equal(impl._path_to_root('/some/path/branches/'), '')
# trunk
- assert_equal(impl._path_to_root('/some/path/trunk/some/dir/'), 'some/path/trunk')
+ assert_equal(impl._path_to_root('/some/path/trunk/some/dir/'),
+ 'some/path/trunk')
assert_equal(impl._path_to_root('/some/path/trunk'), 'some/path/trunk')
# with fallback to trunk
path_exists.return_value = True
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/c93733ac/ForgeSVN/forgesvn/tests/test_svn_app.py
----------------------------------------------------------------------
diff --git a/ForgeSVN/forgesvn/tests/test_svn_app.py b/ForgeSVN/forgesvn/tests/test_svn_app.py
index a5ffed7..7fd8545 100644
--- a/ForgeSVN/forgesvn/tests/test_svn_app.py
+++ b/ForgeSVN/forgesvn/tests/test_svn_app.py
@@ -25,6 +25,7 @@ from alluratest.controller import setup_basic_test, setup_global_objects
from allura.lib import helpers as h
from forgesvn.tests import with_svn
+
class TestSVNApp(unittest.TestCase):
def setUp(self):
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/c93733ac/ForgeSVN/forgesvn/tests/test_tasks.py
----------------------------------------------------------------------
diff --git a/ForgeSVN/forgesvn/tests/test_tasks.py b/ForgeSVN/forgesvn/tests/test_tasks.py
index bd2f723..fb48d56 100644
--- a/ForgeSVN/forgesvn/tests/test_tasks.py
+++ b/ForgeSVN/forgesvn/tests/test_tasks.py
@@ -35,6 +35,7 @@ from allura.tasks import repo_tasks
from forgesvn.tests import with_svn
+
class TestRepoTasks(unittest.TestCase):
def setUp(self):
@@ -76,5 +77,6 @@ class TestRepoTasks(unittest.TestCase):
def test_uninstall(self):
with mock.patch.object(shutil, 'rmtree') as f:
repo_tasks.uninstall()
- f.assert_called_with(os.path.join(tg.config['scm.repos.root'], 'svn/p/test/src'),
- ignore_errors=True)
+ f.assert_called_with(
+ os.path.join(tg.config['scm.repos.root'], 'svn/p/test/src'),
+ ignore_errors=True)
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/c93733ac/ForgeSVN/setup.py
----------------------------------------------------------------------
diff --git a/ForgeSVN/setup.py b/ForgeSVN/setup.py
index d3b1154..a14fdd3 100644
--- a/ForgeSVN/setup.py
+++ b/ForgeSVN/setup.py
@@ -16,7 +16,8 @@
# under the License.
from setuptools import setup, find_packages
-import sys, os
+import sys
+import os
from forgesvn.version import __version__
@@ -34,7 +35,8 @@ setup(name='ForgeSVN',
description="",
long_description="""\
""",
- classifiers=[], # Get strings from http://pypi.python.org/pypi?%3Aaction=list_classifiers
+ # Get strings from http://pypi.python.org/pypi?%3Aaction=list_classifiers
+ classifiers=[],
keywords='',
author='',
author_email='',
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/c93733ac/ForgeShortUrl/forgeshorturl/main.py
----------------------------------------------------------------------
diff --git a/ForgeShortUrl/forgeshorturl/main.py b/ForgeShortUrl/forgeshorturl/main.py
index 691d25d..72c7b1e 100644
--- a/ForgeShortUrl/forgeshorturl/main.py
+++ b/ForgeShortUrl/forgeshorturl/main.py
@@ -134,6 +134,7 @@ class ForgeShortUrlApp(Application):
class RootController(BaseController):
+
def __init__(self):
c.short_url_lightbox = W.short_url_lightbox
@@ -203,11 +204,11 @@ class ShortURLAdminController(DefaultAdminController):
validators.NotEmpty(),
validators.Regex(
r'^[-_a-zA-Z0-9]+$',
- messages={'invalid': 'must include only letters, numbers, dashes and underscores.'}
+ messages={'invalid':
+ 'must include only letters, numbers, dashes and underscores.'}
)
)
-
def __init__(self, app):
self.app = app
@@ -253,7 +254,7 @@ class ShortURLAdminController(DefaultAdminController):
redirect(request.referer)
else:
msg = ('update short url %s from %s to %s'
- % (short_url, shorturl.full_url, full_url))
+ % (short_url, shorturl.full_url, full_url))
flash("Short url updated")
else:
@@ -273,5 +274,5 @@ class ShortURLAdminController(DefaultAdminController):
M.AuditLog.log(msg)
redirect(request.referer)
return dict(
- app=self.app,
- url_len=len(ShortUrl.build_short_url(c.app, short_name='')))
+ app=self.app,
+ url_len=len(ShortUrl.build_short_url(c.app, short_name='')))
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/c93733ac/ForgeShortUrl/forgeshorturl/model/shorturl.py
----------------------------------------------------------------------
diff --git a/ForgeShortUrl/forgeshorturl/model/shorturl.py b/ForgeShortUrl/forgeshorturl/model/shorturl.py
index 41617bd..b42d30d 100644
--- a/ForgeShortUrl/forgeshorturl/model/shorturl.py
+++ b/ForgeShortUrl/forgeshorturl/model/shorturl.py
@@ -54,7 +54,7 @@ class ShortUrl(M.Artifact):
except pymongo.errors.DuplicateKeyError:
session(u).expunge(u)
u = cls.query.get(short_name=shortname,
- app_config_id=c.app.config._id)
+ app_config_id=c.app.config._id)
return u
def index(self):
@@ -74,11 +74,11 @@ class ShortUrl(M.Artifact):
@classmethod
def build_short_url(cls, app, short_name):
return config['short_url.url_pattern'].format(
- base_url=config['base_url'],
- nbhd=app.project.neighborhood.url_prefix.strip('/'),
- project=app.project.shortname,
- mount_point=app.config.options.mount_point,
- short_name=short_name)
+ base_url=config['base_url'],
+ 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/c93733ac/ForgeShortUrl/forgeshorturl/tests/functional/test.py
----------------------------------------------------------------------
diff --git a/ForgeShortUrl/forgeshorturl/tests/functional/test.py b/ForgeShortUrl/forgeshorturl/tests/functional/test.py
index 997050f..67931aa 100644
--- a/ForgeShortUrl/forgeshorturl/tests/functional/test.py
+++ b/ForgeShortUrl/forgeshorturl/tests/functional/test.py
@@ -28,6 +28,7 @@ from forgeshorturl.model import ShortUrl
class TestRootController(TestController):
+
def setUp(self):
super(TestRootController, self).setUp()
self.setup_with_tools()
@@ -109,32 +110,38 @@ class TestRootController(TestController):
def test_shorturl_chars_restrictions(self):
d = dict(short_url='', full_url='http://sf.net/')
r = self.app.post('/admin/url/add', params=d)
- assert ShortUrl.query.find(dict(app_config_id=c.app.config._id)).count() == 0
+ assert ShortUrl.query.find(
+ dict(app_config_id=c.app.config._id)).count() == 0
assert 'Please enter a value' in self.webflash(r)
d = dict(short_url='g*', full_url='http://sf.net/')
r = self.app.post('/admin/url/add', params=d)
- assert ShortUrl.query.find(dict(app_config_id=c.app.config._id)).count() == 0
- assert 'Short url: must include only letters, numbers, dashes and underscores.' in self.webflash(r)
+ assert ShortUrl.query.find(
+ dict(app_config_id=c.app.config._id)).count() == 0
+ assert 'Short url: must include only letters, numbers, dashes and underscores.' in self.webflash(
+ r)
def test_shorturl_remove(self):
self.app.post('/admin/url/add',
- params=dict(short_url='g', full_url='http://google.com/'))
- assert ShortUrl.query.find(dict(app_config_id=c.app.config._id)).count() == 1
+ params=dict(short_url='g', full_url='http://google.com/'))
+ assert ShortUrl.query.find(
+ dict(app_config_id=c.app.config._id)).count() == 1
self.app.post('/admin/url/remove', params=dict(shorturl='g'))
- assert ShortUrl.query.find(dict(app_config_id=c.app.config._id)).count() == 0
+ assert ShortUrl.query.find(
+ dict(app_config_id=c.app.config._id)).count() == 0
def test_shorturl_permissions(self):
self.app.post('/admin/url/add',
- params=dict(short_url='g', full_url='http://google.com/'),
- extra_environ=dict(username='test-user'), status=403)
+ params=dict(short_url='g',
+ full_url='http://google.com/'),
+ 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)
+ 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)
@@ -155,5 +162,5 @@ class TestRootController(TestController):
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')
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/c93733ac/ForgeShortUrl/forgeshorturl/widgets/short_url.py
----------------------------------------------------------------------
diff --git a/ForgeShortUrl/forgeshorturl/widgets/short_url.py b/ForgeShortUrl/forgeshorturl/widgets/short_url.py
index 51f14f4..0094402 100644
--- a/ForgeShortUrl/forgeshorturl/widgets/short_url.py
+++ b/ForgeShortUrl/forgeshorturl/widgets/short_url.py
@@ -20,7 +20,7 @@ from allura.lib.widgets import form_fields as ffw
class ShortUrlFormWidget(ffw.Lightbox):
defaults = dict(
- ffw.Lightbox.defaults,
- name='short-url-modal',
- trigger='a.add-short-url, a.update-short-url',
- content_template='forgeshorturl:templates/form.html')
+ ffw.Lightbox.defaults,
+ name='short-url-modal',
+ trigger='a.add-short-url, a.update-short-url',
+ content_template='forgeshorturl:templates/form.html')
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/c93733ac/ForgeTracker/forgetracker/command/fix_discussion.py
----------------------------------------------------------------------
diff --git a/ForgeTracker/forgetracker/command/fix_discussion.py b/ForgeTracker/forgetracker/command/fix_discussion.py
index c1f0e7d..95bddb4 100644
--- a/ForgeTracker/forgetracker/command/fix_discussion.py
+++ b/ForgeTracker/forgetracker/command/fix_discussion.py
@@ -27,6 +27,7 @@ from forgetracker.model import Ticket
class FixDiscussion(base.Command):
+
"""Fixes trackers that had used buggy 'ticket move' feature before it was fixed.
See [#5727] for details.
@@ -59,41 +60,44 @@ class FixDiscussion(base.Command):
]})
if projects.count() > 1:
raise exc.ForgeError('Multiple projects has a shortname %s. '
- 'Use project _id instead.' % p_name_or_id)
+ 'Use project _id instead.' % p_name_or_id)
project = projects.first()
if not project:
raise exc.NoSuchProjectError('The project %s '
- 'could not be found' % p_name_or_id)
+ 'could not be found' % p_name_or_id)
self.fix_for_project(project)
else:
- base.log.info('Checking discussion instances for each tracker in all projects')
+ base.log.info(
+ 'Checking discussion instances for each tracker in all projects')
for project in M.Project.query.find():
self.fix_for_project(project)
def fix_for_project(self, project):
c.project = project
- base.log.info('Checking discussion instances for each tracker in project %s' % project.shortname)
+ base.log.info(
+ 'Checking discussion instances for each tracker in project %s' %
+ project.shortname)
trackers = [ac for ac in project.app_configs
- if ac.tool_name.lower() == 'tickets']
+ if ac.tool_name.lower() == 'tickets']
for tracker in trackers:
base.log.info('Found tracker %s' % tracker)
for ticket in Ticket.query.find({'app_config_id': tracker._id}):
base.log.info('Processing ticket %s [#%s] %s'
- % (ticket._id, ticket.ticket_num, ticket.summary))
+ % (ticket._id, ticket.ticket_num, ticket.summary))
if ticket.discussion_thread.discussion.app_config_id != tracker._id:
# Some tickets were moved from this tracker,
# and Discussion instance for entire tracker was moved too.
# Should move it back.
base.log.info("Some tickets were moved from this tracker. "
- "Moving tracker's discussion instance back.")
+ "Moving tracker's discussion instance back.")
ticket.discussion_thread.discussion.app_config_id = tracker._id
if ticket.discussion_thread.discussion_id != tracker.discussion_id:
# Ticket was moved from another tracker.
# Should bind his comment thread to tracker's Discussion
base.log.info("Ticket was moved from another tracker. "
- "Bind ticket's comment thread to tracker's Discussion instance.")
+ "Bind ticket's comment thread to tracker's Discussion instance.")
ticket.discussion_thread.discussion_id = tracker.discussion_id
for post in ticket.discussion_thread.posts:
post.discussion_id = tracker.discussion_id
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/c93733ac/ForgeTracker/forgetracker/config/resources.py
----------------------------------------------------------------------
diff --git a/ForgeTracker/forgetracker/config/resources.py b/ForgeTracker/forgetracker/config/resources.py
index efcc766..c62d4c4 100644
--- a/ForgeTracker/forgetracker/config/resources.py
+++ b/ForgeTracker/forgetracker/config/resources.py
@@ -17,8 +17,9 @@
import pkg_resources
+
def register_ew_resources(manager):
manager.register_directory(
'tracker_js', pkg_resources.resource_filename('forgetracker', 'widgets/resources/js'))
manager.register_directory(
- 'tracker_css', pkg_resources.resource_filename('forgetracker', 'widgets/resources/css'))
\ No newline at end of file
+ 'tracker_css', pkg_resources.resource_filename('forgetracker', 'widgets/resources/css'))