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 2014/01/10 19:19:42 UTC
[18/32] PEP8 cleanup
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/c93733ac/Allura/allura/tests/functional/test_home.py
----------------------------------------------------------------------
diff --git a/Allura/allura/tests/functional/test_home.py b/Allura/allura/tests/functional/test_home.py
index 1a5bb57..f350b29 100644
--- a/Allura/allura/tests/functional/test_home.py
+++ b/Allura/allura/tests/functional/test_home.py
@@ -34,9 +34,10 @@ class TestProjectHome(TestController):
def test_project_nav(self):
response = self.app.get('/p/test/_nav.json')
root = self.app.get('/p/test/wiki/').follow()
- assert re.search(r'<!-- Server: \S+ -->', str(root.html)), 'Missing Server comment'
+ assert re.search(r'<!-- Server: \S+ -->',
+ str(root.html)), 'Missing Server comment'
nav_links = root.html.find('div', dict(id='top_nav')).findAll('a')
- assert len(nav_links) == len(response.json['menu'])
+ assert len(nav_links) == len(response.json['menu'])
for nl, entry in zip(nav_links, response.json['menu']):
assert nl['href'] == entry['url']
@@ -52,12 +53,14 @@ class TestProjectHome(TestController):
menu = response.json['menu']
wikis = menu[-2]['children']
assert_equal(len(wikis), 2)
- assert {u'url': u'/p/test/wiki/', u'name': u'Wiki', u'icon': u'tool-wiki', 'tool_name': 'wiki'} in wikis, wikis
- assert {u'url': u'/p/test/wiki2/', u'name': u'wiki2', u'icon': u'tool-wiki', 'tool_name': 'wiki'} in wikis, wikis
+ assert {u'url': u'/p/test/wiki/', u'name': u'Wiki', u'icon':
+ u'tool-wiki', 'tool_name': 'wiki'} in wikis, wikis
+ assert {u'url': u'/p/test/wiki2/', u'name': u'wiki2', u'icon':
+ u'tool-wiki', 'tool_name': 'wiki'} in wikis, wikis
@td.with_wiki
def test_project_group_nav_more_than_ten(self):
- for i in range(1,15):
+ for i in range(1, 15):
tool_name = "wiki%s" % str(i)
c.user = M.User.by_username('test-admin')
p = M.Project.query.get(shortname='test')
@@ -67,7 +70,8 @@ class TestProjectHome(TestController):
response = self.app.get('/p/test/_nav.json')
menu = response.json['menu']
assert_equal(len(menu[0]['children']), 11)
- assert {u'url': u'/p/test/_list/wiki', u'name': u'More...', u'icon': u'tool-wiki', 'tool_name': 'wiki'} in menu[0]['children']
+ assert {u'url': u'/p/test/_list/wiki', u'name': u'More...',
+ u'icon': u'tool-wiki', 'tool_name': 'wiki'} in menu[0]['children']
@td.with_wiki
def test_neighborhood_home(self):
@@ -117,7 +121,8 @@ class TestProjectHome(TestController):
def test_members(self):
nbhd = M.Neighborhood.query.get(name='Projects')
self.app.post('/admin/groups/create', params={'name': 'B_role'})
- test_project = M.Project.query.get(shortname='test', neighborhood_id=nbhd._id)
+ test_project = M.Project.query.get(
+ shortname='test', neighborhood_id=nbhd._id)
test_project.add_user(M.User.by_username('test-user-1'), ['B_role'])
test_project.add_user(M.User.by_username('test-user'), ['Developer'])
test_project.add_user(M.User.by_username('test-user-0'), ['Member'])
@@ -140,9 +145,9 @@ class TestProjectHome(TestController):
assert "<td>Test User 1</td>" in str(tr[6])
assert "<td>Test User 2</td>" in str(tr[7])
-
def test_members_anonymous(self):
- r = self.app.get('/p/test/_members/', extra_environ=dict(username='*anonymous'))
+ r = self.app.get('/p/test/_members/',
+ extra_environ=dict(username='*anonymous'))
assert '<td>Test Admin</td>' in r
assert '<td><a href="/u/test-admin/">test-admin</a></td>' in r
assert '<td>Admin</td>' in r
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/c93733ac/Allura/allura/tests/functional/test_neighborhood.py
----------------------------------------------------------------------
diff --git a/Allura/allura/tests/functional/test_neighborhood.py b/Allura/allura/tests/functional/test_neighborhood.py
index 7fe3916..3d71949 100644
--- a/Allura/allura/tests/functional/test_neighborhood.py
+++ b/Allura/allura/tests/functional/test_neighborhood.py
@@ -40,8 +40,9 @@ class TestNeighborhood(TestController):
assert r.location.endswith('/adobe/wiki/Home/')
r = r.follow()
assert 'This is the "Adobe" neighborhood' in str(r), str(r)
- r = self.app.get('/adobe/admin/', extra_environ=dict(username='test-user'),
- status=403)
+ r = self.app.get(
+ '/adobe/admin/', extra_environ=dict(username='test-user'),
+ status=403)
def test_redirect(self):
r = self.app.post('/adobe/_admin/update',
@@ -52,15 +53,19 @@ class TestNeighborhood(TestController):
def test_admin(self):
r = self.app.get('/adobe/_admin/', extra_environ=dict(username='root'))
- r = self.app.get('/adobe/_admin/overview', extra_environ=dict(username='root'))
- r = self.app.get('/adobe/_admin/accolades', extra_environ=dict(username='root'))
+ r = self.app.get('/adobe/_admin/overview',
+ extra_environ=dict(username='root'))
+ r = self.app.get('/adobe/_admin/accolades',
+ extra_environ=dict(username='root'))
neighborhood = M.Neighborhood.query.get(name='Adobe')
neighborhood.features['google_analytics'] = True
r = self.app.post('/adobe/_admin/update',
- params=dict(name='Mozq1', css='', homepage='# MozQ1!', tracking_id='U-123456'),
+ params=dict(name='Mozq1', css='',
+ homepage='# MozQ1!', tracking_id='U-123456'),
extra_environ=dict(username='root'))
r = self.app.post('/adobe/_admin/update',
- params=dict(name='Mozq1', css='', homepage='# MozQ1!\n[Root]'),
+ params=dict(name='Mozq1', css='',
+ homepage='# MozQ1!\n[Root]'),
extra_environ=dict(username='root'))
# make sure project_template is validated as proper json
r = self.app.post('/adobe/_admin/update',
@@ -144,11 +149,12 @@ class TestNeighborhood(TestController):
r = self.app.get('/p/test/admin/tools')
assert '<div class="fleft isnt_sorted">' in r
- delete_tool = r.html.find('a', {'class':'mount_delete'})
+ delete_tool = r.html.find('a', {'class': 'mount_delete'})
assert_equal(len(delete_tool), 1)
def test_show_title(self):
- r = self.app.get('/adobe/_admin/overview', extra_environ=dict(username='root'))
+ r = self.app.get('/adobe/_admin/overview',
+ extra_environ=dict(username='root'))
neighborhood = M.Neighborhood.query.get(name='Adobe')
# if not set show_title must be True
assert neighborhood.show_title
@@ -172,13 +178,13 @@ class TestNeighborhood(TestController):
extra_environ=dict(username='root'))
assert 'class="project_title"' in str(r)
-
def test_admin_stats_del_count(self):
neighborhood = M.Neighborhood.query.get(name='Adobe')
proj = M.Project.query.get(neighborhood_id=neighborhood._id)
proj.deleted = True
ThreadLocalORMSession.flush_all()
- r = self.app.get('/adobe/_admin/stats/', extra_environ=dict(username='root'))
+ r = self.app.get('/adobe/_admin/stats/',
+ extra_environ=dict(username='root'))
assert 'Deleted: 1' in r
assert 'Private: 0' in r
@@ -188,7 +194,8 @@ class TestNeighborhood(TestController):
proj.deleted = False
proj.private = True
ThreadLocalORMSession.flush_all()
- r = self.app.get('/adobe/_admin/stats/', extra_environ=dict(username='root'))
+ r = self.app.get('/adobe/_admin/stats/',
+ extra_environ=dict(username='root'))
assert 'Deleted: 0' in r
assert 'Private: 1' in r
@@ -197,15 +204,19 @@ class TestNeighborhood(TestController):
proj = M.Project.query.get(neighborhood_id=neighborhood._id)
proj.private = False
ThreadLocalORMSession.flush_all()
- r = self.app.get('/adobe/_admin/stats/adminlist', extra_environ=dict(username='root'))
- pq = M.Project.query.find(dict(neighborhood_id=neighborhood._id, deleted=False))
+ r = self.app.get('/adobe/_admin/stats/adminlist',
+ extra_environ=dict(username='root'))
+ pq = M.Project.query.find(
+ dict(neighborhood_id=neighborhood._id, deleted=False))
pq.sort('name')
projects = pq.skip(0).limit(int(25)).all()
for proj in projects:
- admin_role = M.ProjectRole.query.get(project_id=proj.root_project._id, name='Admin')
+ admin_role = M.ProjectRole.query.get(
+ project_id=proj.root_project._id, name='Admin')
if admin_role is None:
continue
- user_role_list = M.ProjectRole.query.find(dict(project_id=proj.root_project._id, name=None)).all()
+ user_role_list = M.ProjectRole.query.find(
+ dict(project_id=proj.root_project._id, name=None)).all()
for ur in user_role_list:
if ur.user is not None and admin_role._id in ur.roles:
assert proj.name in r
@@ -213,13 +224,15 @@ class TestNeighborhood(TestController):
def test_icon(self):
file_name = 'neo-icon-set-454545-256x350.png'
- file_path = os.path.join(allura.__path__[0], 'nf', 'allura', 'images', file_name)
+ file_path = os.path.join(
+ allura.__path__[0], 'nf', 'allura', 'images', file_name)
file_data = file(file_path).read()
upload = ('icon', file_name, file_data)
r = self.app.get('/adobe/_admin/', extra_environ=dict(username='root'))
r = self.app.post('/adobe/_admin/update',
- params=dict(name='Mozq1', css='', homepage='# MozQ1'),
+ params=dict(name='Mozq1', css='',
+ homepage='# MozQ1'),
extra_environ=dict(username='root'), upload_files=[upload])
r = self.app.get('/adobe/icon')
image = PIL.Image.open(StringIO(r.body))
@@ -231,27 +244,34 @@ class TestNeighborhood(TestController):
# analytics allowed
neighborhood = M.Neighborhood.query.get(name='Adobe')
neighborhood.features['google_analytics'] = True
- r = self.app.get('/adobe/_admin/overview', extra_environ=dict(username='root'))
+ r = self.app.get('/adobe/_admin/overview',
+ extra_environ=dict(username='root'))
assert 'Analytics Tracking ID' in r
- r = self.app.get('/adobe/adobe-1/admin/overview', extra_environ=dict(username='root'))
+ r = self.app.get('/adobe/adobe-1/admin/overview',
+ extra_environ=dict(username='root'))
assert 'Analytics Tracking ID' in r
r = self.app.post('/adobe/_admin/update',
- params=dict(name='Adobe', css='', homepage='# MozQ1', tracking_id='U-123456'),
+ params=dict(name='Adobe', css='',
+ homepage='# MozQ1', tracking_id='U-123456'),
extra_environ=dict(username='root'))
r = self.app.post('/adobe/adobe-1/admin/update',
params=dict(tracking_id='U-654321'),
extra_environ=dict(username='root'))
- r = self.app.get('/adobe/adobe-1/admin/overview', extra_environ=dict(username='root'))
+ r = self.app.get('/adobe/adobe-1/admin/overview',
+ extra_environ=dict(username='root'))
assert "_add_tracking('nbhd', 'U-123456');" in r
assert "_add_tracking('proj', 'U-654321');" in r
# analytics not allowed
neighborhood = M.Neighborhood.query.get(name='Adobe')
neighborhood.features['google_analytics'] = False
- r = self.app.get('/adobe/_admin/overview', extra_environ=dict(username='root'))
+ r = self.app.get('/adobe/_admin/overview',
+ extra_environ=dict(username='root'))
assert 'Analytics Tracking ID' not in r
- r = self.app.get('/adobe/adobe-1/admin/overview', extra_environ=dict(username='root'))
+ r = self.app.get('/adobe/adobe-1/admin/overview',
+ extra_environ=dict(username='root'))
assert 'Analytics Tracking ID' not in r
- r = self.app.get('/adobe/adobe-1/admin/overview', extra_environ=dict(username='root'))
+ r = self.app.get('/adobe/adobe-1/admin/overview',
+ extra_environ=dict(username='root'))
assert "_add_tracking('nbhd', 'U-123456');" not in r
assert "_add_tracking('proj', 'U-654321');" not in r
@@ -264,7 +284,8 @@ class TestNeighborhood(TestController):
neighborhood.features['css'] = 'none'
r = self.app.get('/adobe/')
assert test_css not in r
- r = self.app.get('/adobe/_admin/overview', extra_environ=dict(username='root'))
+ r = self.app.get('/adobe/_admin/overview',
+ extra_environ=dict(username='root'))
assert custom_css not in r
neighborhood = M.Neighborhood.query.get(name='Adobe')
@@ -273,7 +294,8 @@ class TestNeighborhood(TestController):
while isinstance(r.response, HTTPFound):
r = r.follow()
assert test_css in r
- r = self.app.get('/adobe/_admin/overview', extra_environ=dict(username='root'))
+ r = self.app.get('/adobe/_admin/overview',
+ extra_environ=dict(username='root'))
assert custom_css in r
neighborhood = M.Neighborhood.query.get(name='Adobe')
@@ -282,14 +304,16 @@ class TestNeighborhood(TestController):
while isinstance(r.response, HTTPFound):
r = r.follow()
assert test_css in r
- r = self.app.get('/adobe/_admin/overview', extra_environ=dict(username='root'))
+ r = self.app.get('/adobe/_admin/overview',
+ extra_environ=dict(username='root'))
assert custom_css in r
def test_picker_css(self):
neighborhood = M.Neighborhood.query.get(name='Adobe')
neighborhood.features['css'] = 'picker'
- r = self.app.get('/adobe/_admin/overview', extra_environ=dict(username='root'))
+ r = self.app.get('/adobe/_admin/overview',
+ extra_environ=dict(username='root'))
assert 'Project title, font' in r
assert 'Project title, color' in r
assert 'Bar on top' in r
@@ -321,7 +345,9 @@ class TestNeighborhood(TestController):
neighborhood = M.Neighborhood.query.get(name='Projects')
neighborhood.features['max_projects'] = None
r = self.app.post('/p/register',
- params=dict(project_unixname='maxproject1', project_name='Max project1', project_description='', neighborhood='Projects'),
+ params=dict(
+ project_unixname='maxproject1', project_name='Max project1',
+ project_description='', neighborhood='Projects'),
antispam=True,
extra_environ=dict(username='root'), status=302)
assert '/p/maxproject1/admin' in r.location
@@ -330,7 +356,9 @@ class TestNeighborhood(TestController):
neighborhood = M.Neighborhood.query.get(name='Projects')
neighborhood.features['max_projects'] = 0
r = self.app.post('/p/register',
- params=dict(project_unixname='maxproject2', project_name='Max project2', project_description='', neighborhood='Projects'),
+ params=dict(
+ project_unixname='maxproject2', project_name='Max project2',
+ project_description='', neighborhood='Projects'),
antispam=True,
extra_environ=dict(username='root'))
while isinstance(r.response, HTTPFound):
@@ -341,7 +369,9 @@ class TestNeighborhood(TestController):
# Set rate limit to unlimit
with h.push_config(config, **{'project.rate_limits': '{}'}):
r = self.app.post('/p/register',
- params=dict(project_unixname='rateproject1', project_name='Rate project1', project_description='', neighborhood='Projects'),
+ params=dict(
+ project_unixname='rateproject1', project_name='Rate project1',
+ project_description='', neighborhood='Projects'),
antispam=True,
extra_environ=dict(username='test-user-1'), status=302)
assert '/p/rateproject1/admin' in r.location
@@ -349,7 +379,9 @@ class TestNeighborhood(TestController):
# Set rate limit to 1 in first hour of user account
with h.push_config(config, **{'project.rate_limits': '{"3600": 1}'}):
r = self.app.post('/p/register',
- params=dict(project_unixname='rateproject2', project_name='Rate project2', project_description='', neighborhood='Projects'),
+ params=dict(
+ project_unixname='rateproject2', project_name='Rate project2',
+ project_description='', neighborhood='Projects'),
antispam=True,
extra_environ=dict(username='test-user-1'))
while isinstance(r.response, HTTPFound):
@@ -360,7 +392,9 @@ class TestNeighborhood(TestController):
# Set rate limit to unlimit
with h.push_config(config, **{'project.rate_limits': '{}'}):
r = self.app.post('/p/register',
- params=dict(project_unixname='rateproject1', project_name='Rate project1', project_description='', neighborhood='Projects'),
+ params=dict(
+ project_unixname='rateproject1', project_name='Rate project1',
+ project_description='', neighborhood='Projects'),
antispam=True,
extra_environ=dict(username='root'), status=302)
assert '/p/rateproject1/admin' in r.location
@@ -368,55 +402,66 @@ class TestNeighborhood(TestController):
# Set rate limit to 1 in first hour of user account
with h.push_config(config, **{'project.rate_limits': '{"3600": 1}'}):
r = self.app.post('/p/register',
- params=dict(project_unixname='rateproject2', project_name='Rate project2', project_description='', neighborhood='Projects'),
+ params=dict(
+ project_unixname='rateproject2', project_name='Rate project2',
+ project_description='', neighborhood='Projects'),
antispam=True,
extra_environ=dict(username='root'))
assert '/p/rateproject2/admin' in r.location
def test_invite(self):
p_nbhd_id = str(M.Neighborhood.query.get(name='Projects')._id)
- r = self.app.get('/adobe/_moderate/', extra_environ=dict(username='root'))
+ r = self.app.get('/adobe/_moderate/',
+ extra_environ=dict(username='root'))
r = self.app.post('/adobe/_moderate/invite',
- params=dict(pid='adobe-1', invite='on', neighborhood_id=p_nbhd_id),
+ params=dict(pid='adobe-1', invite='on',
+ neighborhood_id=p_nbhd_id),
extra_environ=dict(username='root'))
r = self.app.get(r.location, extra_environ=dict(username='root'))
assert 'error' in r
r = self.app.post('/adobe/_moderate/invite',
- params=dict(pid='no_such_user', invite='on', neighborhood_id=p_nbhd_id),
+ params=dict(pid='no_such_user',
+ invite='on', neighborhood_id=p_nbhd_id),
extra_environ=dict(username='root'))
r = self.app.get(r.location, extra_environ=dict(username='root'))
assert 'error' in r
r = self.app.post('/adobe/_moderate/invite',
- params=dict(pid='test', invite='on', neighborhood_id=p_nbhd_id),
+ params=dict(pid='test', invite='on',
+ neighborhood_id=p_nbhd_id),
extra_environ=dict(username='root'))
r = self.app.get(r.location, extra_environ=dict(username='root'))
assert 'invited' in r, r
assert 'warning' not in r
r = self.app.post('/adobe/_moderate/invite',
- params=dict(pid='test', invite='on', neighborhood_id=p_nbhd_id),
+ params=dict(pid='test', invite='on',
+ neighborhood_id=p_nbhd_id),
extra_environ=dict(username='root'))
r = self.app.get(r.location, extra_environ=dict(username='root'))
assert 'warning' in r
r = self.app.post('/adobe/_moderate/invite',
- params=dict(pid='test', uninvite='on', neighborhood_id=p_nbhd_id),
+ params=dict(pid='test', uninvite='on',
+ neighborhood_id=p_nbhd_id),
extra_environ=dict(username='root'))
r = self.app.get(r.location, extra_environ=dict(username='root'))
assert 'uninvited' in r
assert 'warning' not in r
r = self.app.post('/adobe/_moderate/invite',
- params=dict(pid='test', uninvite='on', neighborhood_id=p_nbhd_id),
+ params=dict(pid='test', uninvite='on',
+ neighborhood_id=p_nbhd_id),
extra_environ=dict(username='root'))
r = self.app.get(r.location, extra_environ=dict(username='root'))
assert 'warning' in r
r = self.app.post('/adobe/_moderate/invite',
- params=dict(pid='test', invite='on', neighborhood_id=p_nbhd_id),
+ params=dict(pid='test', invite='on',
+ neighborhood_id=p_nbhd_id),
extra_environ=dict(username='root'))
r = self.app.get(r.location, extra_environ=dict(username='root'))
assert 'invited' in r
assert 'warning' not in r
def test_evict(self):
- r = self.app.get('/adobe/_moderate/', extra_environ=dict(username='root'))
+ r = self.app.get('/adobe/_moderate/',
+ extra_environ=dict(username='root'))
r = self.app.post('/adobe/_moderate/evict',
params=dict(pid='test'),
extra_environ=dict(username='root'))
@@ -434,27 +479,40 @@ class TestNeighborhood(TestController):
def test_register(self):
r = self.app.get('/adobe/register', status=405)
r = self.app.post('/adobe/register',
- params=dict(project_unixname='', project_name='Nothing', project_description='', neighborhood='Adobe'),
+ params=dict(
+ project_unixname='', project_name='Nothing',
+ project_description='', neighborhood='Adobe'),
antispam=True,
extra_environ=dict(username='root'))
- assert r.html.find('div', {'class':'error'}).string == 'Please use only letters, numbers, and dashes 3-15 characters long.'
+ assert r.html.find('div', {'class': 'error'}
+ ).string == 'Please use only letters, numbers, and dashes 3-15 characters long.'
r = self.app.post('/adobe/register',
- params=dict(project_unixname='mymoz', project_name='My Moz', project_description='', neighborhood='Adobe'),
+ params=dict(
+ project_unixname='mymoz', project_name='My Moz',
+ project_description='', neighborhood='Adobe'),
antispam=True,
extra_environ=dict(username='*anonymous'),
status=302)
r = self.app.post('/adobe/register',
- params=dict(project_unixname='foo.mymoz', project_name='My Moz', project_description='', neighborhood='Adobe'),
+ params=dict(
+ project_unixname='foo.mymoz', project_name='My Moz',
+ project_description='', neighborhood='Adobe'),
antispam=True,
extra_environ=dict(username='root'))
- assert r.html.find('div', {'class':'error'}).string == 'Please use only letters, numbers, and dashes 3-15 characters long.'
+ assert r.html.find('div', {'class': 'error'}
+ ).string == 'Please use only letters, numbers, and dashes 3-15 characters long.'
r = self.app.post('/p/register',
- params=dict(project_unixname='test', project_name='Tester', project_description='', neighborhood='Projects'),
+ params=dict(
+ project_unixname='test', project_name='Tester',
+ project_description='', neighborhood='Projects'),
antispam=True,
extra_environ=dict(username='root'))
- assert r.html.find('div', {'class':'error'}).string == 'This project name is taken.'
+ assert r.html.find('div', {'class': 'error'}
+ ).string == 'This project name is taken.'
r = self.app.post('/adobe/register',
- params=dict(project_unixname='mymoz', project_name='My Moz', project_description='', neighborhood='Adobe'),
+ params=dict(
+ project_unixname='mymoz', project_name='My Moz',
+ project_description='', neighborhood='Adobe'),
antispam=True,
extra_environ=dict(username='root'),
status=302)
@@ -506,7 +564,8 @@ class TestNeighborhood(TestController):
flash_msg_cookie = urllib2.unquote(r.headers['Set-Cookie'])
assert 'Internal Error.' in flash_msg_cookie
- proj = M.Project.query.get(shortname='myprivate1', neighborhood_id=neighborhood._id)
+ proj = M.Project.query.get(
+ shortname='myprivate1', neighborhood_id=neighborhood._id)
assert proj is None
# Turn on private
@@ -526,7 +585,8 @@ class TestNeighborhood(TestController):
antispam=True,
extra_environ=dict(username='root'))
- proj = M.Project.query.get(shortname='myprivate2', neighborhood_id=neighborhood._id)
+ proj = M.Project.query.get(
+ shortname='myprivate2', neighborhood_id=neighborhood._id)
assert proj.private
def test_register_private_ok(self):
@@ -542,7 +602,8 @@ class TestNeighborhood(TestController):
antispam=True,
extra_environ=dict(username='root'),
status=302)
- assert config.get('auth.login_url', '/auth/') not in r.location, r.location
+ assert config.get('auth.login_url',
+ '/auth/') not in r.location, r.location
r = self.app.get(
'/p/mymoz/wiki/',
extra_environ=dict(username='root')).follow(extra_environ=dict(username='root'), status=200)
@@ -557,29 +618,31 @@ class TestNeighborhood(TestController):
status=403)
def test_project_template(self):
- icon_url = 'file://' + os.path.join(allura.__path__[0], 'nf', 'allura', 'images', 'neo-icon-set-454545-256x350.png')
+ icon_url = 'file://' + \
+ os.path.join(allura.__path__[0], 'nf', 'allura',
+ 'images', 'neo-icon-set-454545-256x350.png')
test_groups = [{
- "name": "Viewer", # group will be created, all params are valid
+ "name": "Viewer", # group will be created, all params are valid
"permissions": ["read"],
"usernames": ["user01"]
}, {
- "name": "", # group won't be created - invalid name
+ "name": "", # group won't be created - invalid name
"permissions": ["read"],
"usernames": ["user01"]
}, {
- "name": "TestGroup1", # group won't be created - invalid perm name
+ "name": "TestGroup1", # group won't be created - invalid perm name
"permissions": ["foobar"],
"usernames": ["user01"]
}, {
- "name": "TestGroup2", # will be created; 'inspect' perm ignored
+ "name": "TestGroup2", # will be created; 'inspect' perm ignored
"permissions": ["read", "inspect"],
"usernames": ["user01", "user02"]
}, {
- "name": "TestGroup3", # will be created with no users in group
+ "name": "TestGroup3", # will be created with no users in group
"permissions": ["admin"]
}]
r = self.app.post('/adobe/_admin/update', params=dict(name='Mozq1',
- css='', homepage='# MozQ1!\n[Root]', project_template="""{
+ css='', homepage='# MozQ1!\n[Root]', project_template="""{
"private":true,
"icon":{
"url":"%s",
@@ -625,15 +688,23 @@ class TestNeighborhood(TestController):
status=302).follow()
p = M.Project.query.get(shortname='testtemp')
# make sure the correct tools got installed in the right order
- top_nav = r.html.find('div', {'id':'top_nav'})
- assert top_nav.contents[1].contents[1].contents[1]['href'] == '/adobe/testtemp/wiki/'
- assert 'Wiki' in top_nav.contents[1].contents[1].contents[1].contents[0]
- assert top_nav.contents[1].contents[3].contents[1]['href'] == '/adobe/testtemp/discussion/'
- assert 'Discussion' in top_nav.contents[1].contents[3].contents[1].contents[0]
- assert top_nav.contents[1].contents[5].contents[1]['href'] == '/adobe/testtemp/news/'
- assert 'News' in top_nav.contents[1].contents[5].contents[1].contents[0]
- assert top_nav.contents[1].contents[7].contents[1]['href'] == '/adobe/testtemp/admin/'
- assert 'Admin' in top_nav.contents[1].contents[7].contents[1].contents[0]
+ top_nav = r.html.find('div', {'id': 'top_nav'})
+ assert top_nav.contents[1].contents[1].contents[
+ 1]['href'] == '/adobe/testtemp/wiki/'
+ assert 'Wiki' in top_nav.contents[
+ 1].contents[1].contents[1].contents[0]
+ assert top_nav.contents[1].contents[3].contents[
+ 1]['href'] == '/adobe/testtemp/discussion/'
+ assert 'Discussion' in top_nav.contents[
+ 1].contents[3].contents[1].contents[0]
+ assert top_nav.contents[1].contents[5].contents[
+ 1]['href'] == '/adobe/testtemp/news/'
+ assert 'News' in top_nav.contents[
+ 1].contents[5].contents[1].contents[0]
+ assert top_nav.contents[1].contents[7].contents[
+ 1]['href'] == '/adobe/testtemp/admin/'
+ assert 'Admin' in top_nav.contents[
+ 1].contents[7].contents[1].contents[0]
# make sure project is private
r = self.app.get(
'/adobe/testtemp/wiki/',
@@ -677,16 +748,17 @@ class TestNeighborhood(TestController):
for username in usernames:
user = M.User.by_username(username)
if user and user._id:
- assert role in M.ProjectRole.by_user(user, project=p).roles
+ assert role in M.ProjectRole.by_user(
+ user, project=p).roles
# confirm roles with invalid json data are not created
if name in ('', 'TestGroup1'):
assert name not in roles
def test_projects_anchored_tools(self):
r = self.app.post('/adobe/_admin/update', params=dict(name='Adobe',
- css='',
- homepage='# Adobe!\n[Root]',
- project_template="""{
+ css='',
+ homepage='# Adobe!\n[Root]',
+ project_template="""{
"private":true,
"tools":{
"wiki":{
@@ -705,9 +777,9 @@ class TestNeighborhood(TestController):
"tool_order":["wiki","admin"],
}""" ),
- extra_environ=dict(username='root'))
+ extra_environ=dict(username='root'))
neighborhood = M.Neighborhood.query.get(name='Adobe')
- neighborhood.anchored_tools ='wiki:Wiki'
+ neighborhood.anchored_tools = 'wiki:Wiki'
r = self.app.post(
'/adobe/register',
params=dict(
@@ -719,8 +791,10 @@ class TestNeighborhood(TestController):
antispam=True,
extra_environ=dict(username='root'))
r = self.app.get('/adobe/testtemp/admin/tools')
- assert r.html.find('div', id='top_nav').find('a', href='/adobe/testtemp/wiki/'), r.html
- assert r.html.find('div', id='top_nav').find('a', href='/adobe/testtemp/admin/'), r.html
+ assert r.html.find('div', id='top_nav').find(
+ 'a', href='/adobe/testtemp/wiki/'), r.html
+ assert r.html.find('div', id='top_nav').find(
+ 'a', href='/adobe/testtemp/admin/'), r.html
def test_name_suggest(self):
r = self.app.get('/p/suggest_name?project_name=My+Moz')
@@ -730,12 +804,17 @@ class TestNeighborhood(TestController):
def test_name_check(self):
for name in ('My+Moz', 'Te%st!', 'ab', 'a' * 16):
- r = self.app.get('/p/check_names?neighborhood=Projects&project_unixname=%s' % name)
- assert_equal(r.json, {'project_unixname': 'Please use only letters, numbers, and dashes 3-15 characters long.'})
- r = self.app.get('/p/check_names?neighborhood=Projects&project_unixname=mymoz')
+ r = self.app.get(
+ '/p/check_names?neighborhood=Projects&project_unixname=%s' % name)
+ assert_equal(
+ r.json, {'project_unixname': 'Please use only letters, numbers, and dashes 3-15 characters long.'})
+ r = self.app.get(
+ '/p/check_names?neighborhood=Projects&project_unixname=mymoz')
assert_equal(r.json, {})
- r = self.app.get('/p/check_names?neighborhood=Projects&project_unixname=test')
- assert_equal(r.json, {'project_unixname': 'This project name is taken.'})
+ r = self.app.get(
+ '/p/check_names?neighborhood=Projects&project_unixname=test')
+ assert_equal(r.json,
+ {'project_unixname': 'This project name is taken.'})
@td.with_tool('test/sub1', 'Wiki', 'wiki')
def test_neighborhood_project(self):
@@ -748,44 +827,54 @@ class TestNeighborhood(TestController):
# p/test exists, so try creating adobe/test
self.app.get('/adobe/test/wiki/', status=404)
r = self.app.post('/adobe/register',
- params=dict(project_unixname='test', project_name='Test again', project_description='', neighborhood='Adobe', tools='wiki'),
+ params=dict(
+ project_unixname='test', project_name='Test again',
+ project_description='', neighborhood='Adobe', tools='wiki'),
antispam=True,
extra_environ=dict(username='root'))
- assert r.status_int == 302, r.html.find('div', {'class':'error'}).string
+ assert r.status_int == 302, r.html.find(
+ 'div', {'class': 'error'}).string
r = self.app.get('/adobe/test/wiki/').follow(status=200)
def test_neighborhood_awards(self):
file_name = 'adobe_icon.png'
- file_path = os.path.join(allura.__path__[0], 'public', 'nf', 'images', file_name)
+ file_path = os.path.join(
+ allura.__path__[0], 'public', 'nf', 'images', file_name)
file_data = file(file_path).read()
upload = ('icon', file_name, file_data)
- r = self.app.get('/adobe/_admin/awards', extra_environ=dict(username='root'))
+ r = self.app.get('/adobe/_admin/awards',
+ extra_environ=dict(username='root'))
r = self.app.post('/adobe/_admin/awards/create',
params=dict(short='FOO', full='A basic foo award'),
extra_environ=dict(username='root'), upload_files=[upload])
r = self.app.post('/adobe/_admin/awards/create',
- params=dict(short='BAR', full='A basic bar award with no icon'),
+ params=dict(short='BAR',
+ full='A basic bar award with no icon'),
extra_environ=dict(username='root'))
foo_id = str(M.Award.query.find(dict(short='FOO')).first()._id)
bar_id = str(M.Award.query.find(dict(short='BAR')).first()._id)
r = self.app.post('/adobe/_admin/awards/%s/update' % bar_id,
- params=dict(short='BAR2', full='Updated description.'),
+ params=dict(short='BAR2',
+ full='Updated description.'),
extra_environ=dict(username='root')).follow().follow()
assert 'BAR2' in r
assert 'Updated description.' in r
- r = self.app.get('/adobe/_admin/awards/%s' % foo_id, extra_environ=dict(username='root'))
- r = self.app.get('/adobe/_admin/awards/%s/icon' % foo_id, extra_environ=dict(username='root'))
+ r = self.app.get('/adobe/_admin/awards/%s' %
+ foo_id, extra_environ=dict(username='root'))
+ r = self.app.get('/adobe/_admin/awards/%s/icon' %
+ foo_id, extra_environ=dict(username='root'))
image = PIL.Image.open(StringIO(r.body))
assert image.size == (48, 48)
self.app.post('/adobe/_admin/awards/grant',
- params=dict(grant='FOO', recipient='adobe-1'),
- extra_environ=dict(username='root'))
- self.app.get('/adobe/_admin/awards/%s/adobe-1' % foo_id, extra_environ=dict(username='root'))
+ params=dict(grant='FOO', recipient='adobe-1'),
+ extra_environ=dict(username='root'))
+ self.app.get('/adobe/_admin/awards/%s/adobe-1' %
+ foo_id, extra_environ=dict(username='root'))
self.app.post('/adobe/_admin/awards/%s/adobe-1/revoke' % foo_id,
- extra_environ=dict(username='root'))
+ extra_environ=dict(username='root'))
self.app.post('/adobe/_admin/awards/%s/delete' % foo_id,
- extra_environ=dict(username='root'))
+ extra_environ=dict(username='root'))
def test_add_a_project_link(self):
from pylons import tmpl_context as c
@@ -806,13 +895,16 @@ class TestNeighborhood(TestController):
assert 'Add a Project' in r
def test_help(self):
- r = self.app.get('/p/_admin/help/', extra_environ=dict(username='root'))
+ r = self.app.get('/p/_admin/help/',
+ extra_environ=dict(username='root'))
assert 'macro' in r
@td.with_user_project('test-user')
def test_profile_topnav_menu(self):
- r = self.app.get('/u/test-user/', extra_environ=dict(username='test-user')).follow()
- assert r.html.find('div', id='top_nav').find('a', href='/u/test-user/profile/'), r.html
+ r = self.app.get('/u/test-user/',
+ extra_environ=dict(username='test-user')).follow()
+ assert r.html.find('div', id='top_nav').find(
+ 'a', href='/u/test-user/profile/'), r.html
def test_user_project_creates_on_demand(self):
M.User.register(dict(username='donald-duck'), make_project=False)
@@ -822,12 +914,13 @@ class TestNeighborhood(TestController):
def test_disabled_user_has_no_user_project(self):
user = M.User.register(dict(username='donald-duck'))
self.app.get('/u/donald-duck/') # assert it's there
- M.User.query.update(dict(username='donald-duck'), {'$set': {'disabled': True}})
+ M.User.query.update(dict(username='donald-duck'),
+ {'$set': {'disabled': True}})
self.app.get('/u/donald-duck/', status=404)
-
def test_more_projects_link(self):
r = self.app.get('/adobe/adobe-1/admin/')
- link = r.html.find('div', {'class':'neighborhood_title_link'}).find('a')
+ link = r.html.find(
+ 'div', {'class': 'neighborhood_title_link'}).find('a')
assert 'View More Projects' in str(link)
assert link['href'] == '/adobe/'
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/c93733ac/Allura/allura/tests/functional/test_rest.py
----------------------------------------------------------------------
diff --git a/Allura/allura/tests/functional/test_rest.py b/Allura/allura/tests/functional/test_rest.py
index 6829434..328e117 100644
--- a/Allura/allura/tests/functional/test_rest.py
+++ b/Allura/allura/tests/functional/test_rest.py
@@ -43,7 +43,8 @@ class TestRestHome(TestRestApiBase):
assert r.status_int == 403
def test_bad_timestamp(self):
- r = self.api_post('/rest/p/test/wiki/', api_timestamp=(datetime.utcnow() + timedelta(days=1)).isoformat())
+ r = self.api_post('/rest/p/test/wiki/',
+ api_timestamp=(datetime.utcnow() + timedelta(days=1)).isoformat())
assert r.status_int == 403
@mock.patch('allura.controllers.rest.M.OAuthAccessToken')
@@ -80,22 +81,22 @@ class TestRestHome(TestRestApiBase):
def test_bearer_token_valid(self, request):
user = M.User.by_username('test-admin')
consumer_token = M.OAuthConsumerToken(
- name='foo',
- description='foo app',
- )
+ name='foo',
+ description='foo app',
+ )
request_token = M.OAuthRequestToken(
- consumer_token_id=consumer_token._id,
- user_id=user._id,
- callback='manual',
- validation_pin=h.nonce(20),
- is_bearer=True,
- )
+ consumer_token_id=consumer_token._id,
+ user_id=user._id,
+ callback='manual',
+ validation_pin=h.nonce(20),
+ is_bearer=True,
+ )
access_token = M.OAuthAccessToken(
- consumer_token_id=consumer_token._id,
- request_token_id=request_token._id,
- user_id=user._id,
- is_bearer=True,
- )
+ consumer_token_id=consumer_token._id,
+ request_token_id=request_token._id,
+ user_id=user._id,
+ is_bearer=True,
+ )
ThreadLocalODMSession.flush_all()
request.params = {'access_token': access_token.api_key}
request.scheme = 'https'
@@ -146,7 +147,8 @@ class TestRestHome(TestRestApiBase):
# Deny anonymous to see 'private-bugs' tool
role = M.ProjectRole.by_name('*anonymous')._id
read_permission = M.ACE.allow(role, 'read')
- app = M.Project.query.get(shortname='test').app_instance('private-bugs')
+ app = M.Project.query.get(
+ shortname='test').app_instance('private-bugs')
if read_permission in app.config.acl:
app.config.acl.remove(read_permission)
@@ -158,7 +160,8 @@ class TestRestHome(TestRestApiBase):
assert_in('private-bugs', tool_mounts)
# anonymous sees only non-private tool
- r = self.app.get('/rest/p/test/', extra_environ={'username': '*anonymous'})
+ r = self.app.get('/rest/p/test/',
+ extra_environ={'username': '*anonymous'})
assert_equal(r.json['shortname'], 'test')
tool_mounts = [t['mount_point'] for t in r.json['tools']]
assert_in('bugs', tool_mounts)
@@ -168,10 +171,10 @@ class TestRestHome(TestRestApiBase):
self.app.post(
'/wiki/tést/update',
params={
- 'title':'tést',
- 'text':'sometext',
- 'labels':'',
- 'viewable_by-0.id':'all'})
+ 'title': 'tést',
+ 'text': 'sometext',
+ 'labels': '',
+ 'viewable_by-0.id': 'all'})
r = self.api_get('/rest/p/test/wiki/tést/')
assert r.status_int == 200
assert r.json['title'].encode('utf-8') == 'tést', r.json
@@ -179,8 +182,10 @@ class TestRestHome(TestRestApiBase):
@td.with_wiki
def test_deny_access(self):
wiki = M.Project.query.get(shortname='test').app_instance('wiki')
- anon_read_perm = M.ACE.allow(M.ProjectRole.by_name('*anonymous')._id, 'read')
- auth_read_perm = M.ACE.allow(M.ProjectRole.by_name('*authenticated')._id, 'read')
+ anon_read_perm = M.ACE.allow(
+ M.ProjectRole.by_name('*anonymous')._id, 'read')
+ auth_read_perm = M.ACE.allow(
+ M.ProjectRole.by_name('*authenticated')._id, 'read')
acl = wiki.config.acl
if anon_read_perm in acl:
acl.remove(anon_read_perm)
@@ -195,26 +200,27 @@ class TestRestHome(TestRestApiBase):
def test_index(self):
eps = {
- 'site_stats': {
- 'foo_24hr': lambda: 42,
- 'bar_24hr': lambda: 84,
- 'qux_24hr': lambda: 0,
- },
- }
+ 'site_stats': {
+ 'foo_24hr': lambda: 42,
+ 'bar_24hr': lambda: 84,
+ 'qux_24hr': lambda: 0,
+ },
+ }
with mock.patch.dict(g.entry_points, eps):
response = self.app.get('/rest/')
assert_equal(response.json, {
'site_stats': {
- 'foo_24hr': 42,
- 'bar_24hr': 84,
- 'qux_24hr': 0,
- },
- })
+ 'foo_24hr': 42,
+ 'bar_24hr': 84,
+ 'qux_24hr': 0,
+ },
+ })
def test_name_validation(self):
r = self.api_get('/rest/p/test/')
assert r.status_int == 200
with mock.patch('allura.lib.plugin.ProjectRegistrationProvider') as Provider:
- Provider.get().shortname_validator.to_python.side_effect = Invalid('name', 'value', {})
+ Provider.get().shortname_validator.to_python.side_effect = Invalid(
+ 'name', 'value', {})
r = self.api_get('/rest/p/test/')
assert r.status_int == 404
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/c93733ac/Allura/allura/tests/functional/test_rest_api_tickets.py
----------------------------------------------------------------------
diff --git a/Allura/allura/tests/functional/test_rest_api_tickets.py b/Allura/allura/tests/functional/test_rest_api_tickets.py
index 145e143..8185d5d 100644
--- a/Allura/allura/tests/functional/test_rest_api_tickets.py
+++ b/Allura/allura/tests/functional/test_rest_api_tickets.py
@@ -30,8 +30,10 @@ class TestApiTicket(TestRestApiBase):
if not expire:
expire = timedelta(days=1)
test_admin = M.User.query.get(username='test-admin')
- api_ticket = M.ApiTicket(user_id=test_admin._id, capabilities={'import': ['Projects','test']},
- expires=datetime.utcnow() + expire)
+ api_ticket = M.ApiTicket(
+ user_id=test_admin._id, capabilities={
+ 'import': ['Projects', 'test']},
+ expires=datetime.utcnow() + expire)
session(api_ticket).flush()
self.set_api_token(api_ticket)
@@ -47,7 +49,8 @@ class TestApiTicket(TestRestApiBase):
def test_bad_timestamp(self):
self.set_api_ticket()
- r = self.api_post('/rest/p/test/wiki/', api_timestamp=(datetime.utcnow() + timedelta(days=1)).isoformat())
+ r = self.api_post('/rest/p/test/wiki/',
+ api_timestamp=(datetime.utcnow() + timedelta(days=1)).isoformat())
assert r.status_int == 403
def test_bad_path(self):
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/c93733ac/Allura/allura/tests/functional/test_root.py
----------------------------------------------------------------------
diff --git a/Allura/allura/tests/functional/test_root.py b/Allura/allura/tests/functional/test_root.py
index 918377f..8c7441e 100644
--- a/Allura/allura/tests/functional/test_root.py
+++ b/Allura/allura/tests/functional/test_root.py
@@ -53,10 +53,11 @@ class TestRootController(TestController):
def test_index(self):
response = self.app.get('/')
- assert_equal(response.html.find('h2',{'class':'dark title'}).contents[0].strip(), 'All Neighborhoods')
- nbhds = response.html.findAll('td',{'class':'nbhd'})
+ assert_equal(response.html.find('h2', {'class': 'dark title'}).contents[
+ 0].strip(), 'All Neighborhoods')
+ nbhds = response.html.findAll('td', {'class': 'nbhd'})
assert nbhds[0].find('a').get('href') == '/adobe/'
- cat_links = response.html.find('div',{'id':'sidebar'}).findAll('li')
+ cat_links = response.html.find('div', {'id': 'sidebar'}).findAll('li')
assert len(cat_links) == 4
assert cat_links[0].find('a').get('href') == '/browse/clustering'
assert cat_links[0].find('a').find('span').string == 'Clustering'
@@ -68,31 +69,40 @@ class TestRootController(TestController):
response = self.app.get('/')
# inject it into the sidebar data
- content = str(response.html.find('div',{'id':'content_base'}))
+ content = str(response.html.find('div', {'id': 'content_base'}))
assert '<script>' not in content
assert '<script>' in content
def test_strange_accept_headers(self):
hdrs = [
'text/plain;text/html;text/*',
- 'text/html,application/xhtml+xml,application/xml;q=0.9;text/plain;q=0.8,image/png,*/*;q=0.5' ]
+ 'text/html,application/xhtml+xml,application/xml;q=0.9;text/plain;q=0.8,image/png,*/*;q=0.5']
for hdr in hdrs:
- # malformed headers used to return 500, just make sure they don't now
+ # malformed headers used to return 500, just make sure they don't
+ # now
self.app.get('/', headers=dict(Accept=hdr), validate_skip=True)
def test_project_browse(self):
- com_cat = M.ProjectCategory.query.find(dict(label='Communications')).first()
+ com_cat = M.ProjectCategory.query.find(
+ dict(label='Communications')).first()
fax_cat = M.ProjectCategory.query.find(dict(label='Fax')).first()
- M.Project.query.find(dict(shortname='adobe-1')).first().category_id = com_cat._id
+ M.Project.query.find(dict(shortname='adobe-1')
+ ).first().category_id = com_cat._id
response = self.app.get('/browse')
- assert len(response.html.findAll('a',{'href':'/adobe/adobe-1/'})) == 1
- assert len(response.html.findAll('a',{'href':'/adobe/adobe-2/'})) == 1
+ assert len(
+ response.html.findAll('a', {'href': '/adobe/adobe-1/'})) == 1
+ assert len(
+ response.html.findAll('a', {'href': '/adobe/adobe-2/'})) == 1
response = self.app.get('/browse/communications')
- assert len(response.html.findAll('a',{'href':'/adobe/adobe-1/'})) == 1
- assert len(response.html.findAll('a',{'href':'/adobe/adobe-2/'})) == 0
+ assert len(
+ response.html.findAll('a', {'href': '/adobe/adobe-1/'})) == 1
+ assert len(
+ response.html.findAll('a', {'href': '/adobe/adobe-2/'})) == 0
response = self.app.get('/browse/communications/fax')
- assert len(response.html.findAll('a',{'href':'/adobe/adobe-1/'})) == 0
- assert len(response.html.findAll('a',{'href':'/adobe/adobe-2/'})) == 0
+ assert len(
+ response.html.findAll('a', {'href': '/adobe/adobe-1/'})) == 0
+ assert len(
+ response.html.findAll('a', {'href': '/adobe/adobe-2/'})) == 0
def test_neighborhood_home(self):
# Install home app
@@ -102,45 +112,57 @@ class TestRootController(TestController):
p.install_app('home', 'home', 'Home', ordinal=0)
response = self.app.get('/adobe/')
- projects = response.html.findAll('div',{'class':'border card'})
+ projects = response.html.findAll('div', {'class': 'border card'})
assert len(projects) == 2
- cat_links = response.html.find('div',{'id':'sidebar'}).findAll('ul')[1].findAll('li')
+ cat_links = response.html.find(
+ 'div', {'id': 'sidebar'}).findAll('ul')[1].findAll('li')
assert len(cat_links) == 3, cat_links
assert cat_links[0].find('a').get('href') == '/adobe/browse/clustering'
assert cat_links[0].find('a').find('span').string == 'Clustering'
def test_neighborhood_project_browse(self):
- com_cat = M.ProjectCategory.query.find(dict(label='Communications')).first()
+ com_cat = M.ProjectCategory.query.find(
+ dict(label='Communications')).first()
fax_cat = M.ProjectCategory.query.find(dict(label='Fax')).first()
- M.Project.query.find(dict(shortname='adobe-1')).first().category_id = com_cat._id
- M.Project.query.find(dict(shortname='adobe-2')).first().category_id = fax_cat._id
+ M.Project.query.find(dict(shortname='adobe-1')
+ ).first().category_id = com_cat._id
+ M.Project.query.find(dict(shortname='adobe-2')
+ ).first().category_id = fax_cat._id
response = self.app.get('/adobe/browse')
- assert len(response.html.findAll('a',{'href':'/adobe/adobe-1/'})) == 1
- assert len(response.html.findAll('a',{'href':'/adobe/adobe-2/'})) == 1
+ assert len(
+ response.html.findAll('a', {'href': '/adobe/adobe-1/'})) == 1
+ assert len(
+ response.html.findAll('a', {'href': '/adobe/adobe-2/'})) == 1
response = self.app.get('/adobe/browse/communications')
- assert len(response.html.findAll('a',{'href':'/adobe/adobe-1/'})) == 1
- assert len(response.html.findAll('a',{'href':'/adobe/adobe-2/'})) == 1
+ assert len(
+ response.html.findAll('a', {'href': '/adobe/adobe-1/'})) == 1
+ assert len(
+ response.html.findAll('a', {'href': '/adobe/adobe-2/'})) == 1
response = self.app.get('/adobe/browse/communications/fax')
- assert len(response.html.findAll('a',{'href':'/adobe/adobe-1/'})) == 0
- assert len(response.html.findAll('a',{'href':'/adobe/adobe-2/'})) == 1
+ assert len(
+ response.html.findAll('a', {'href': '/adobe/adobe-1/'})) == 0
+ assert len(
+ response.html.findAll('a', {'href': '/adobe/adobe-2/'})) == 1
@td.with_wiki
def test_markdown_to_html(self):
n = M.Neighborhood.query.get(name='Projects')
- r = self.app.get('/nf/markdown_to_html?markdown=*aaa*bb[wiki:Home]&project=test&app=bugs&neighborhood=%s' % n._id, validate_chunk=True)
+ r = self.app.get(
+ '/nf/markdown_to_html?markdown=*aaa*bb[wiki:Home]&project=test&app=bugs&neighborhood=%s' % n._id, validate_chunk=True)
assert '<p><em>aaa</em>bb<a class="alink" href="/p/test/wiki/Home/">[wiki:Home]</a></p>' in r, r
def test_slash_redirect(self):
- r = self.app.get('/p',status=301)
- r = self.app.get('/p/',status=302)
+ r = self.app.get('/p', status=301)
+ r = self.app.get('/p/', status=302)
@skipif(module_not_available('newrelic'))
def test_newrelic_set_transaction_name(self):
from allura.controllers.project import NeighborhoodController
with mock.patch('newrelic.agent.callable_name') as callable_name,\
- mock.patch('newrelic.agent.set_transaction_name') as set_transaction_name:
+ mock.patch('newrelic.agent.set_transaction_name') as set_transaction_name:
callable_name.return_value = 'foo'
r = self.app.get('/p/')
arg = callable_name.call_args[0][0]
- assert_equal(arg.undecorated, NeighborhoodController.index.undecorated)
+ assert_equal(arg.undecorated,
+ NeighborhoodController.index.undecorated)
set_transaction_name.assert_called_with('foo')
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/c93733ac/Allura/allura/tests/functional/test_search.py
----------------------------------------------------------------------
diff --git a/Allura/allura/tests/functional/test_search.py b/Allura/allura/tests/functional/test_search.py
index f63d4c2..1081f25 100644
--- a/Allura/allura/tests/functional/test_search.py
+++ b/Allura/allura/tests/functional/test_search.py
@@ -31,4 +31,3 @@ class TestSearch(TestController):
def test_project_search_controller(self):
r = self.app.get('/search/')
r = self.app.get('/search/', params=dict(q='Root'))
-
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/c93733ac/Allura/allura/tests/functional/test_site_admin.py
----------------------------------------------------------------------
diff --git a/Allura/allura/tests/functional/test_site_admin.py b/Allura/allura/tests/functional/test_site_admin.py
index 0f20247..b6da963 100644
--- a/Allura/allura/tests/functional/test_site_admin.py
+++ b/Allura/allura/tests/functional/test_site_admin.py
@@ -24,28 +24,30 @@ from allura import model as M
from allura.tests import TestController
from allura.lib.decorators import task
+
class TestSiteAdmin(TestController):
def test_access(self):
r = self.app.get('/nf/admin/', extra_environ=dict(
- username='test-user'), status=403)
+ username='test-user'), status=403)
r = self.app.get('/nf/admin/', extra_environ=dict(
- username='*anonymous'), status=302)
+ username='*anonymous'), status=302)
r = r.follow()
assert 'Login' in r
def test_home(self):
r = self.app.get('/nf/admin/', extra_environ=dict(
- username='root'))
- assert 'Forge Site Admin' in r.html.find('h2',{'class':'dark title'}).contents[0]
+ username='root'))
+ assert 'Forge Site Admin' in r.html.find(
+ 'h2', {'class': 'dark title'}).contents[0]
stats_table = r.html.find('table')
cells = stats_table.findAll('td')
assert cells[0].contents[0] == 'Adobe', cells[0].contents[0]
def test_tickets_access(self):
r = self.app.get('/nf/admin/api_tickets', extra_environ=dict(
- username='test-user'), status=403)
+ username='test-user'), status=403)
def test_new_projects_access(self):
self.app.get('/nf/admin/new_projects', extra_environ=dict(
@@ -56,7 +58,7 @@ class TestSiteAdmin(TestController):
def test_new_projects(self):
r = self.app.get('/nf/admin/new_projects', extra_environ=dict(
- username='root'))
+ username='root'))
headers = r.html.find('table').findAll('th')
assert headers[1].contents[0] == 'Created'
assert headers[2].contents[0] == 'Shortname'
@@ -69,18 +71,18 @@ class TestSiteAdmin(TestController):
def test_new_projects_deleted_projects(self):
'''Deleted projects should not be visible here'''
r = self.app.get('/nf/admin/new_projects', extra_environ=dict(
- username='root'))
+ username='root'))
count = len(r.html.find('table').findAll('tr'))
p = M.Project.query.get(shortname='test')
p.deleted = True
ThreadLocalORMSession.flush_all()
r = self.app.get('/nf/admin/new_projects', extra_environ=dict(
- username='root'))
+ username='root'))
assert_equal(len(r.html.find('table').findAll('tr')), count - 1)
def test_new_projects_daterange_filtering(self):
r = self.app.get('/nf/admin/new_projects', extra_environ=dict(
- username='root'))
+ username='root'))
count = len(r.html.find('table').findAll('tr'))
assert_equal(count, 7)
@@ -105,7 +107,8 @@ class TestSiteAdmin(TestController):
assert 'value="p"' in r
def test_task_list(self):
- r = self.app.get('/nf/admin/task_manager', extra_environ=dict(username='*anonymous'), status=302)
+ r = self.app.get('/nf/admin/task_manager',
+ extra_environ=dict(username='*anonymous'), status=302)
import math
task = M.MonQTask.post(math.ceil, (12.5,))
r = self.app.get('/nf/admin/task_manager?page_num=1')
@@ -115,7 +118,8 @@ class TestSiteAdmin(TestController):
import math
task = M.MonQTask.post(math.ceil, (12.5,))
url = '/nf/admin/task_manager/view/%s' % task._id
- r = self.app.get(url, extra_environ=dict(username='*anonymous'), status=302)
+ r = self.app.get(
+ url, extra_environ=dict(username='*anonymous'), status=302)
r = self.app.get(url)
assert 'math.ceil' in r, r
@@ -129,15 +133,15 @@ class TestSiteAdmin(TestController):
user = M.User.by_username('root')
task_args = dict(
- args=['foo'],
- kwargs=dict(bar='baz'))
+ args=['foo'],
+ kwargs=dict(bar='baz'))
r = self.app.post('/nf/admin/task_manager/create', params=dict(
task='allura.tests.functional.test_site_admin.test_task',
task_args=json.dumps(task_args),
user='root',
path='/p/test/admin',
- ), status=302)
+ ), status=302)
task = M.MonQTask.query.find({}).sort('_id', -1).next()
assert str(task._id) in r.location
assert task.context['project_id'] == project._id
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/c93733ac/Allura/allura/tests/functional/test_static.py
----------------------------------------------------------------------
diff --git a/Allura/allura/tests/functional/test_static.py b/Allura/allura/tests/functional/test_static.py
index 11e9a8f..49e9295 100644
--- a/Allura/allura/tests/functional/test_static.py
+++ b/Allura/allura/tests/functional/test_static.py
@@ -17,6 +17,7 @@
from allura.tests import TestController
+
class TestStatic(TestController):
def test_static_controller(self):
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/c93733ac/Allura/allura/tests/functional/test_user_profile.py
----------------------------------------------------------------------
diff --git a/Allura/allura/tests/functional/test_user_profile.py b/Allura/allura/tests/functional/test_user_profile.py
index 25d6430..2706776 100644
--- a/Allura/allura/tests/functional/test_user_profile.py
+++ b/Allura/allura/tests/functional/test_user_profile.py
@@ -24,6 +24,7 @@ from allura.model import Project, User
from allura.tests import decorators as td
from allura.tests import TestController
+
class TestUserProfile(TestController):
@td.with_user_project('test-admin')
@@ -41,7 +42,7 @@ class TestUserProfile(TestController):
response = self.app.get('/u/test-admin/profile/')
assert 'Email Addresses' in response
self.app.get('/u/test-user', extra_environ=dict(
- username='test-user'))
+ username='test-user'))
response = self.app.get('/u/test-user/profile/')
assert 'Email Addresses' not in response
@@ -71,7 +72,8 @@ class TestUserProfile(TestController):
gen_message_id.return_value = 'id'
test_user = User.by_username('test-user')
test_user.set_pref('email_address', 'test-user@example.com')
- response = self.app.get('/u/test-user/profile/send_message', status=200)
+ response = self.app.get(
+ '/u/test-user/profile/send_message', status=200)
assert '<b>From:</b> "Test Admin" <test-admin@users.localhost>' in response
self.app.post('/u/test-user/profile/send_user_message',
params={'subject': 'test subject',
@@ -101,45 +103,52 @@ class TestUserProfile(TestController):
subject=u'test subject')
check.return_value = False
- response = self.app.get('/u/test-user/profile/send_message', status=200)
+ response = self.app.get(
+ '/u/test-user/profile/send_message', status=200)
assert 'Sorry, messaging is rate-limited' in response
@td.with_user_project('test-user')
def test_send_message_for_anonymous(self):
r = self.app.get('/u/test-user/profile/send_message',
- extra_environ={'username': '*anonymous'},
- status=302)
- assert 'You must be logged in to send user messages.' in self.webflash(r)
+ extra_environ={'username': '*anonymous'},
+ status=302)
+ assert 'You must be logged in to send user messages.' in self.webflash(
+ r)
r = self.app.post('/u/test-user/profile/send_user_message',
- params={'subject': 'test subject',
- 'message': 'test message',
- 'cc': 'on'},
- extra_environ={'username': '*anonymous'},
- status=302)
- assert 'You must be logged in to send user messages.' in self.webflash(r)
+ params={'subject': 'test subject',
+ 'message': 'test message',
+ 'cc': 'on'},
+ extra_environ={'username': '*anonymous'},
+ status=302)
+ assert 'You must be logged in to send user messages.' in self.webflash(
+ r)
@td.with_user_project('test-user')
def test_link_to_send_message_form(self):
- User.by_username('test-admin').set_pref('email_address', 'admin@example.com')
- User.by_username('test-user').set_pref('email_address', 'user@example.com')
+ User.by_username('test-admin').set_pref('email_address',
+ 'admin@example.com')
+ User.by_username('test-user').set_pref('email_address',
+ 'user@example.com')
r = self.app.get('/u/test-user/profile',
status=200)
assert '<a href="send_message">Send me a message</a>' in r
r = self.app.get('/u/test-user/profile',
- extra_environ={'username': '*anonymous'},
- status=200)
+ extra_environ={'username': '*anonymous'},
+ status=200)
assert '<a href="send_message">Send me a message</a>' not in r
@td.with_user_project('test-user')
def test_disable_user_messages(self):
- User.by_username('test-admin').set_pref('email_address', 'admin@example.com')
+ User.by_username('test-admin').set_pref('email_address',
+ 'admin@example.com')
test_user = User.by_username('test-user')
test_user.set_pref('email_address', 'user@example.com')
test_user.set_pref('disable_user_messages', True)
r = self.app.get('/u/test-user/profile')
assert '<a href="send_message">Send me a message</a>' not in r
r = self.app.get('/u/test-user/profile/send_message', status=302)
- assert 'This user has disabled direct email messages' in self.webflash(r)
+ assert 'This user has disabled direct email messages' in self.webflash(
+ r)
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/c93733ac/Allura/allura/tests/model/test_artifact.py
----------------------------------------------------------------------
diff --git a/Allura/allura/tests/model/test_artifact.py b/Allura/allura/tests/model/test_artifact.py
index 6609a3c..6b2ec66 100644
--- a/Allura/allura/tests/model/test_artifact.py
+++ b/Allura/allura/tests/model/test_artifact.py
@@ -41,22 +41,29 @@ from allura.websetup.schema import REGISTRY
from alluratest.controller import setup_basic_test, setup_unit_test
from forgewiki import model as WM
+
class Checkmessage(M.Message):
+
class __mongometa__:
- name='checkmessage'
+ name = 'checkmessage'
+
def url(self):
return ''
+
def __init__(self, **kw):
super(Checkmessage, self).__init__(**kw)
if self.slug is not None and self.full_slug is None:
- self.full_slug = datetime.utcnow().strftime('%Y%m%d%H%M%S') + ':' + self.slug
+ self.full_slug = datetime.utcnow().strftime(
+ '%Y%m%d%H%M%S') + ':' + self.slug
Mapper.compile_all()
+
def setUp():
setup_basic_test()
setup_unit_test()
setup_with_tools()
+
@td.with_wiki
def setup_with_tools():
h.set_context('test', 'wiki', neighborhood='Projects')
@@ -68,9 +75,11 @@ def setup_with_tools():
Checkmessage.project = c.project
Checkmessage.app_config = c.app.config
+
def tearDown():
ThreadLocalORMSession.close_all()
+
@with_setup(setUp, tearDown)
def test_artifact():
pg = WM.Page(title='TestPage1')
@@ -103,13 +112,14 @@ def test_artifact():
assert 'TestPage' in pg.shorthand_id()
assert pg.link_text() == pg.shorthand_id()
+
@with_setup(setUp, tearDown)
def test_artifactlink():
pg = WM.Page(title='TestPage2')
q = M.Shortlink.query.find(dict(
- project_id=c.project._id,
- app_config_id=c.app.config._id,
- link=pg.shorthand_id()))
+ project_id=c.project._id,
+ app_config_id=c.app.config._id,
+ link=pg.shorthand_id()))
assert q.count() == 0
ThreadLocalORMSession.flush_all()
M.MonQTask.run_ready()
@@ -130,19 +140,26 @@ def test_artifactlink():
ThreadLocalORMSession.flush_all()
assert q.count() == 0
+
@with_setup(setUp, tearDown)
def test_gen_messageid():
- assert re.match(r'[0-9a-zA-Z]*.wiki@test.p.sourceforge.net', h.gen_message_id())
+ assert re.match(r'[0-9a-zA-Z]*.wiki@test.p.sourceforge.net',
+ h.gen_message_id())
+
@with_setup(setUp, tearDown)
def test_gen_messageid_with_id_set():
oid = ObjectId()
- assert re.match(r'%s.wiki@test.p.sourceforge.net' % str(oid), h.gen_message_id(oid))
+ assert re.match(r'%s.wiki@test.p.sourceforge.net' %
+ str(oid), h.gen_message_id(oid))
+
@with_setup(setUp, tearDown)
def test_artifact_messageid():
p = WM.Page(title='T')
- assert re.match(r'%s.wiki@test.p.sourceforge.net' % str(p._id), p.message_id())
+ assert re.match(r'%s.wiki@test.p.sourceforge.net' %
+ str(p._id), p.message_id())
+
@with_setup(setUp, tearDown)
def test_versioning():
@@ -177,6 +194,6 @@ def test_versioning():
def test_messages_unknown_lookup():
from bson import ObjectId
m = Checkmessage()
- m.author_id = ObjectId() # something new
+ m.author_id = ObjectId() # something new
assert type(m.author()) == M.User, type(m.author())
assert m.author() == M.User.anonymous()
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/c93733ac/Allura/allura/tests/model/test_auth.py
----------------------------------------------------------------------
diff --git a/Allura/allura/tests/model/test_auth.py b/Allura/allura/tests/model/test_auth.py
index 98542e8..5dadb07 100644
--- a/Allura/allura/tests/model/test_auth.py
+++ b/Allura/allura/tests/model/test_auth.py
@@ -41,16 +41,20 @@ def setUp():
ThreadLocalORMSession.close_all()
setup_global_objects()
+
@with_setup(setUp)
def test_password_encoder():
# Verify salt
- ep = plugin.LocalAuthenticationProvider(Request.blank('/'))._encode_password
+ ep = plugin.LocalAuthenticationProvider(
+ Request.blank('/'))._encode_password
assert ep('test_pass') != ep('test_pass')
assert ep('test_pass', '0000') == ep('test_pass', '0000')
+
@with_setup(setUp)
def test_email_address():
- addr = M.EmailAddress(_id='test_admin@sf.net', claimed_by_user_id=c.user._id)
+ addr = M.EmailAddress(_id='test_admin@sf.net',
+ claimed_by_user_id=c.user._id)
ThreadLocalORMSession.flush_all()
assert addr.claimed_by_user() == c.user
addr2 = M.EmailAddress.upsert('test@sf.net')
@@ -66,13 +70,15 @@ def test_email_address():
c.user.claim_address('test@SF.NET')
assert 'test@sf.net' in c.user.email_addresses
+
@with_setup(setUp)
def test_openid():
oid = M.OpenId.upsert('http://google.com/accounts/1', 'My Google OID')
oid.claimed_by_user_id = c.user._id
ThreadLocalORMSession.flush_all()
assert oid.claimed_by_user() is c.user
- assert M.OpenId.upsert('http://google.com/accounts/1', 'My Google OID') is oid
+ assert M.OpenId.upsert(
+ 'http://google.com/accounts/1', 'My Google OID') is oid
ThreadLocalORMSession.flush_all()
assert oid is c.user.openid_object(oid._id)
c.user.claim_openid('http://google.com/accounts/2')
@@ -80,18 +86,21 @@ def test_openid():
assert oid2._id in c.user.open_ids
ThreadLocalORMSession.flush_all()
+
@td.with_user_project('test-admin')
@with_setup(setUp)
def test_user():
assert c.user.url() .endswith('/u/test-admin/')
assert c.user.script_name .endswith('/u/test-admin/')
- assert_equal(set(p.shortname for p in c.user.my_projects()), set(['test', 'test2', 'u/test-admin', 'adobe-1', '--init--']))
+ assert_equal(set(p.shortname for p in c.user.my_projects()),
+ set(['test', 'test2', 'u/test-admin', 'adobe-1', '--init--']))
# delete one of the projects and make sure it won't appear in my_projects()
p = M.Project.query.get(shortname='test2')
p.deleted = True
- assert_equal(set(p.shortname for p in c.user.my_projects()), set(['test', 'u/test-admin', 'adobe-1', '--init--']))
+ assert_equal(set(p.shortname for p in c.user.my_projects()),
+ set(['test', 'u/test-admin', 'adobe-1', '--init--']))
u = M.User.register(dict(
- username='nosetest-user'))
+ username='nosetest-user'))
ThreadLocalORMSession.flush_all()
assert_equal(u.private_project().shortname, 'u/nosetest-user')
roles = g.credentials.user_roles(
@@ -105,6 +114,7 @@ def test_user():
assert provider._validate_password(u, 'foobar')
assert not provider._validate_password(u, 'foo')
+
@with_setup(setUp)
def test_user_project_creates_on_demand():
u = M.User.register(dict(username='foobar123'), make_project=False)
@@ -113,6 +123,7 @@ def test_user_project_creates_on_demand():
assert u.private_project()
assert M.Project.query.get(shortname='u/foobar123')
+
@with_setup(setUp)
def test_user_project_already_deleted_creates_on_demand():
u = M.User.register(dict(username='foobar123'), make_project=True)
@@ -124,13 +135,16 @@ def test_user_project_already_deleted_creates_on_demand():
ThreadLocalORMSession.flush_all()
assert M.Project.query.get(shortname='u/foobar123', deleted=False)
+
@with_setup(setUp)
def test_user_project_does_not_create_on_demand_for_disabled_user():
- u = M.User.register(dict(username='foobar123', disabled=True), make_project=False)
+ u = M.User.register(
+ dict(username='foobar123', disabled=True), make_project=False)
ThreadLocalORMSession.flush_all()
assert not u.private_project()
assert not M.Project.query.get(shortname='u/foobar123')
+
@with_setup(setUp)
def test_user_project_does_not_create_on_demand_for_anonymous_user():
u = M.User.anonymous()
@@ -139,6 +153,7 @@ def test_user_project_does_not_create_on_demand_for_anonymous_user():
assert not M.Project.query.get(shortname='u/anonymous')
assert not M.Project.query.get(shortname='u/*anonymous')
+
@with_setup(setUp)
def test_user_project_does_not_create_on_demand_for_openid_user():
u = M.User.register({'username': ''}, make_project=False)
@@ -148,6 +163,7 @@ def test_user_project_does_not_create_on_demand_for_openid_user():
assert not M.Project.query.get(shortname='u/anonymous')
assert not M.Project.query.get(shortname='u/*anonymous')
+
@with_setup(setUp)
def test_project_role():
role = M.ProjectRole(project_id=c.project._id, name='test_role')
@@ -162,12 +178,13 @@ def test_project_role():
pr.special
assert pr.user in (c.user, None, M.User.anonymous())
+
@with_setup(setUp)
def test_default_project_roles():
roles = dict(
(pr.name, pr)
for pr in M.ProjectRole.query.find(dict(
- project_id=c.project._id)).all()
+ project_id=c.project._id)).all()
if pr.name)
assert 'Admin' in roles.keys(), roles.keys()
assert 'Developer' in roles.keys(), roles.keys()
@@ -180,6 +197,7 @@ def test_default_project_roles():
assert len(roles) == M.ProjectRole.query.find(dict(
project_id=c.project._id)).count() - 1
+
@with_setup(setUp)
def test_dup_api_token():
from ming.orm import session
@@ -193,7 +211,9 @@ def test_dup_api_token():
assert False, "Entry with duplicate unique key was inserted"
except DuplicateKeyError:
pass
- assert len(M.ApiToken.query.find().all()) == 1, "Duplicate entries with unique key found"
+ assert len(M.ApiToken.query.find().all()
+ ) == 1, "Duplicate entries with unique key found"
+
@with_setup(setUp)
def test_openid_claimed_by_user():
@@ -203,9 +223,11 @@ def test_openid_claimed_by_user():
ThreadLocalORMSession.flush_all()
assert oid.claimed_by_user() is None
+
@with_setup(setUp)
def test_email_address_claimed_by_user():
- addr = M.EmailAddress(_id='test_admin@sf.net', claimed_by_user_id=c.user._id)
+ addr = M.EmailAddress(_id='test_admin@sf.net',
+ claimed_by_user_id=c.user._id)
c.user.disabled = True
ThreadLocalORMSession.flush_all()
assert addr.claimed_by_user() is None
@@ -214,8 +236,10 @@ def test_email_address_claimed_by_user():
@td.with_user_project('test-admin')
@with_setup(setUp)
def test_user_projects_by_role():
- assert_equal(set(p.shortname for p in c.user.my_projects()), set(['test', 'test2', 'u/test-admin', 'adobe-1', '--init--']))
- assert_equal(set(p.shortname for p in c.user.my_projects('Admin')), set(['test', 'test2', 'u/test-admin', 'adobe-1', '--init--']))
+ assert_equal(set(p.shortname for p in c.user.my_projects()),
+ set(['test', 'test2', 'u/test-admin', 'adobe-1', '--init--']))
+ assert_equal(set(p.shortname for p in c.user.my_projects('Admin')),
+ set(['test', 'test2', 'u/test-admin', 'adobe-1', '--init--']))
# Remove admin access from c.user to test2 project
project = M.Project.query.get(shortname='test2')
admin_role = M.ProjectRole.by_name('Admin', project)
@@ -225,8 +249,11 @@ def test_user_projects_by_role():
user_role.roles.append(developer_role._id)
ThreadLocalORMSession.flush_all()
g.credentials.clear()
- assert_equal(set(p.shortname for p in c.user.my_projects()), set(['test', 'test2', 'u/test-admin', 'adobe-1', '--init--']))
- assert_equal(set(p.shortname for p in c.user.my_projects('Admin')), set(['test', 'u/test-admin', 'adobe-1', '--init--']))
+ assert_equal(set(p.shortname for p in c.user.my_projects()),
+ set(['test', 'test2', 'u/test-admin', 'adobe-1', '--init--']))
+ assert_equal(set(p.shortname for p in c.user.my_projects('Admin')),
+ set(['test', 'u/test-admin', 'adobe-1', '--init--']))
+
@patch.object(g, 'user_message_max_messages', 3)
def test_check_sent_user_message_times():
@@ -238,5 +265,5 @@ def test_check_sent_user_message_times():
assert user1.can_send_user_message()
assert_equal(len(user1.sent_user_message_times), 2)
user1.sent_user_message_times.append(
- datetime.utcnow() - timedelta(minutes=15))
+ datetime.utcnow() - timedelta(minutes=15))
assert not user1.can_send_user_message()