You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@allura.apache.org by br...@apache.org on 2015/09/30 21:25:41 UTC
[1/3] allura git commit: [#7980] set default line length settings for
pep8 & flake8
Repository: allura
Updated Branches:
refs/heads/db/7980 579b34ab4 -> 275a16aed (forced update)
[#7980] set default line length settings for pep8 & flake8
Project: http://git-wip-us.apache.org/repos/asf/allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/allura/commit/275a16ae
Tree: http://git-wip-us.apache.org/repos/asf/allura/tree/275a16ae
Diff: http://git-wip-us.apache.org/repos/asf/allura/diff/275a16ae
Branch: refs/heads/db/7980
Commit: 275a16aedf1b6b2d75883e9fd459d7d57b6f236e
Parents: f2bd03c
Author: Dave Brondsema <da...@brondsema.net>
Authored: Wed Sep 30 10:53:49 2015 -0400
Committer: Dave Brondsema <da...@brondsema.net>
Committed: Wed Sep 30 10:53:59 2015 -0400
----------------------------------------------------------------------
ForgeActivity/setup.cfg | 6 ++++++
ForgeBlog/setup.cfg | 6 ++++++
ForgeChat/setup.cfg | 6 ++++++
ForgeDiscussion/setup.cfg | 6 ++++++
ForgeGit/setup.cfg | 6 ++++++
ForgeLink/setup.cfg | 6 ++++++
ForgeSVN/setup.cfg | 6 ++++++
ForgeTracker/setup.cfg | 6 ++++++
ForgeWiki/setup.cfg | 6 ++++++
setup.cfg | 22 ++++++++++++++++++++++
10 files changed, 76 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/allura/blob/275a16ae/ForgeActivity/setup.cfg
----------------------------------------------------------------------
diff --git a/ForgeActivity/setup.cfg b/ForgeActivity/setup.cfg
index 2637327..f054a10 100644
--- a/ForgeActivity/setup.cfg
+++ b/ForgeActivity/setup.cfg
@@ -1,2 +1,8 @@
+[pep8]
+max-line-length = 119
+
+[flake8]
+max-line-length = 119
+
[egg_info]
tag_build = dev0
http://git-wip-us.apache.org/repos/asf/allura/blob/275a16ae/ForgeBlog/setup.cfg
----------------------------------------------------------------------
diff --git a/ForgeBlog/setup.cfg b/ForgeBlog/setup.cfg
index 2637327..f054a10 100644
--- a/ForgeBlog/setup.cfg
+++ b/ForgeBlog/setup.cfg
@@ -1,2 +1,8 @@
+[pep8]
+max-line-length = 119
+
+[flake8]
+max-line-length = 119
+
[egg_info]
tag_build = dev0
http://git-wip-us.apache.org/repos/asf/allura/blob/275a16ae/ForgeChat/setup.cfg
----------------------------------------------------------------------
diff --git a/ForgeChat/setup.cfg b/ForgeChat/setup.cfg
index 2637327..f054a10 100644
--- a/ForgeChat/setup.cfg
+++ b/ForgeChat/setup.cfg
@@ -1,2 +1,8 @@
+[pep8]
+max-line-length = 119
+
+[flake8]
+max-line-length = 119
+
[egg_info]
tag_build = dev0
http://git-wip-us.apache.org/repos/asf/allura/blob/275a16ae/ForgeDiscussion/setup.cfg
----------------------------------------------------------------------
diff --git a/ForgeDiscussion/setup.cfg b/ForgeDiscussion/setup.cfg
index 2637327..f054a10 100644
--- a/ForgeDiscussion/setup.cfg
+++ b/ForgeDiscussion/setup.cfg
@@ -1,2 +1,8 @@
+[pep8]
+max-line-length = 119
+
+[flake8]
+max-line-length = 119
+
[egg_info]
tag_build = dev0
http://git-wip-us.apache.org/repos/asf/allura/blob/275a16ae/ForgeGit/setup.cfg
----------------------------------------------------------------------
diff --git a/ForgeGit/setup.cfg b/ForgeGit/setup.cfg
index 2637327..f054a10 100644
--- a/ForgeGit/setup.cfg
+++ b/ForgeGit/setup.cfg
@@ -1,2 +1,8 @@
+[pep8]
+max-line-length = 119
+
+[flake8]
+max-line-length = 119
+
[egg_info]
tag_build = dev0
http://git-wip-us.apache.org/repos/asf/allura/blob/275a16ae/ForgeLink/setup.cfg
----------------------------------------------------------------------
diff --git a/ForgeLink/setup.cfg b/ForgeLink/setup.cfg
index 2637327..f054a10 100644
--- a/ForgeLink/setup.cfg
+++ b/ForgeLink/setup.cfg
@@ -1,2 +1,8 @@
+[pep8]
+max-line-length = 119
+
+[flake8]
+max-line-length = 119
+
[egg_info]
tag_build = dev0
http://git-wip-us.apache.org/repos/asf/allura/blob/275a16ae/ForgeSVN/setup.cfg
----------------------------------------------------------------------
diff --git a/ForgeSVN/setup.cfg b/ForgeSVN/setup.cfg
index 2637327..f054a10 100644
--- a/ForgeSVN/setup.cfg
+++ b/ForgeSVN/setup.cfg
@@ -1,2 +1,8 @@
+[pep8]
+max-line-length = 119
+
+[flake8]
+max-line-length = 119
+
[egg_info]
tag_build = dev0
http://git-wip-us.apache.org/repos/asf/allura/blob/275a16ae/ForgeTracker/setup.cfg
----------------------------------------------------------------------
diff --git a/ForgeTracker/setup.cfg b/ForgeTracker/setup.cfg
index 2637327..f054a10 100644
--- a/ForgeTracker/setup.cfg
+++ b/ForgeTracker/setup.cfg
@@ -1,2 +1,8 @@
+[pep8]
+max-line-length = 119
+
+[flake8]
+max-line-length = 119
+
[egg_info]
tag_build = dev0
http://git-wip-us.apache.org/repos/asf/allura/blob/275a16ae/ForgeWiki/setup.cfg
----------------------------------------------------------------------
diff --git a/ForgeWiki/setup.cfg b/ForgeWiki/setup.cfg
index 2637327..f054a10 100644
--- a/ForgeWiki/setup.cfg
+++ b/ForgeWiki/setup.cfg
@@ -1,2 +1,8 @@
+[pep8]
+max-line-length = 119
+
+[flake8]
+max-line-length = 119
+
[egg_info]
tag_build = dev0
http://git-wip-us.apache.org/repos/asf/allura/blob/275a16ae/setup.cfg
----------------------------------------------------------------------
diff --git a/setup.cfg b/setup.cfg
new file mode 100644
index 0000000..1ba576a
--- /dev/null
+++ b/setup.cfg
@@ -0,0 +1,22 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+[pep8]
+max-line-length = 119
+
+[flake8]
+max-line-length = 119
[3/3] allura git commit: [#7980] Fix many pep8 / pyflakes and related
issues
Posted by br...@apache.org.
[#7980] Fix many pep8 / pyflakes and related issues
* line length
* legit uses of has_key
* unused vars
* unused imports
* etc
Project: http://git-wip-us.apache.org/repos/asf/allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/allura/commit/f2bd03c7
Tree: http://git-wip-us.apache.org/repos/asf/allura/tree/f2bd03c7
Diff: http://git-wip-us.apache.org/repos/asf/allura/diff/f2bd03c7
Branch: refs/heads/db/7980
Commit: f2bd03c7424a753afc76a0736d203bc084f73d3e
Parents: aa6e158
Author: Dave Brondsema <da...@brondsema.net>
Authored: Wed Sep 30 09:48:31 2015 -0400
Committer: Dave Brondsema <da...@brondsema.net>
Committed: Wed Sep 30 10:53:59 2015 -0400
----------------------------------------------------------------------
Allura/allura/command/__init__.py | 5 +
.../allura/command/create_trove_categories.py | 66 ++++-----
Allura/allura/controllers/__init__.py | 8 +-
Allura/allura/controllers/auth.py | 12 +-
Allura/allura/lib/helpers.py | 53 +++----
Allura/allura/lib/widgets/__init__.py | 4 +
Allura/allura/lib/widgets/forms.py | 40 +++--
Allura/allura/model/__init__.py | 15 +-
Allura/allura/model/repo.py | 5 +
Allura/allura/model/repository.py | 34 +++--
Allura/allura/tests/functional/test_auth.py | 105 +++++++------
Allura/allura/tests/functional/test_discuss.py | 30 ++--
.../tests/functional/test_neighborhood.py | 55 +++----
Allura/allura/tests/functional/test_rest.py | 6 +-
.../tests/functional/test_user_profile.py | 6 +-
Allura/allura/tests/test_globals.py | 34 +++--
Allura/allura/tests/test_utils.py | 22 +--
Allura/allura/websetup/bootstrap.py | 38 ++---
Allura/setup.cfg | 6 +
.../forgeactivity/tests/functional/test_rest.py | 6 +-
.../forgeblog/tests/functional/test_rest.py | 6 +-
.../tests/functional/test_forum.py | 92 ++++++------
.../tests/functional/test_forum_admin.py | 23 ++-
.../tests/functional/test_rest.py | 11 +-
.../forgediscussion/widgets/__init__.py | 4 +
.../tests/functional/test_controllers.py | 148 ++++++++-----------
.../tests/google/test_extractor.py | 23 ++-
.../forgelink/tests/functional/test_rest.py | 6 +-
.../forgetracker/tests/functional/test_rest.py | 6 +-
.../forgetracker/tests/functional/test_root.py | 77 +++++-----
.../forgewiki/tests/functional/test_rest.py | 6 +-
.../forgewiki/tests/functional/test_root.py | 23 ++-
scripts/teamforge-import.py | 20 +--
33 files changed, 499 insertions(+), 496 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/allura/blob/f2bd03c7/Allura/allura/command/__init__.py
----------------------------------------------------------------------
diff --git a/Allura/allura/command/__init__.py b/Allura/allura/command/__init__.py
index 24254aa..0221b7b 100644
--- a/Allura/allura/command/__init__.py
+++ b/Allura/allura/command/__init__.py
@@ -22,3 +22,8 @@ from smtp_server import SMTPServerCommand
from create_neighborhood import CreateNeighborhoodCommand, UpdateNeighborhoodCommand
from create_trove_categories import CreateTroveCategoriesCommand
from set_neighborhood_features import SetNeighborhoodFeaturesCommand
+
+__all__ = [
+ 'Command', 'ShowModelsCommand', 'ReindexCommand', 'EnsureIndexCommand', 'ScriptCommand', 'SetToolAccessCommand',
+ 'SMTPServerCommand', 'CreateNeighborhoodCommand', 'UpdateNeighborhoodCommand', 'CreateTroveCategoriesCommand',
+ 'SetNeighborhoodFeaturesCommand']
http://git-wip-us.apache.org/repos/asf/allura/blob/f2bd03c7/Allura/allura/command/create_trove_categories.py
----------------------------------------------------------------------
diff --git a/Allura/allura/command/create_trove_categories.py b/Allura/allura/command/create_trove_categories.py
index eba9244..288117c 100644
--- a/Allura/allura/command/create_trove_categories.py
+++ b/Allura/allura/command/create_trove_categories.py
@@ -233,7 +233,7 @@ class CreateTroveCategoriesCommand(base.Command):
"User Interface :: Toolkits/Libraries :: ClanLib", True))
self.create_trove_cat(
(516, 500, "db_group_objmap", "Project is a relational object mapper",
- "Database Environment :: Grouping and Descriptive Categories (DB) :: Project is a relational object mapper",
+ "Database Environment :: Grouping and Descriptive Categories (DB) :: Project is a relational object mapper", # nopep8
True))
self.create_trove_cat(
(487, 458, "ui_ggi", "GGI", "User Interface :: Toolkits/Libraries :: GGI", True))
@@ -245,7 +245,7 @@ class CreateTroveCategoriesCommand(base.Command):
"User Interface :: Toolkits/Libraries :: wxWidgets", True))
self.create_trove_cat(
(511, 500, "db_group_mgmt", "Project is a database management tool",
- "Database Environment :: Grouping and Descriptive Categories (DB) :: Project is a database management tool",
+ "Database Environment :: Grouping and Descriptive Categories (DB) :: Project is a database management tool", # nopep8
True))
self.create_trove_cat(
(479, 458, "ui_qt", "Qt", "User Interface :: Toolkits/Libraries :: Qt", True))
@@ -253,7 +253,7 @@ class CreateTroveCategoriesCommand(base.Command):
(477, 458, "ui_gtk", "GTK+", "User Interface :: Toolkits/Libraries :: GTK+", True))
self.create_trove_cat(
(513, 500, "db_group_netdbms", "Project is a network-based DBMS (database system)",
- "Database Environment :: Grouping and Descriptive Categories (DB) :: Project is a network-based DBMS (database system)",
+ "Database Environment :: Grouping and Descriptive Categories (DB) :: Project is a network-based DBMS (database system)", # nopep8
True))
self.create_trove_cat(
(228, 458, "newt", "Newt", "User Interface :: Toolkits/Libraries :: Newt", True))
@@ -261,7 +261,7 @@ class CreateTroveCategoriesCommand(base.Command):
"User Interface :: Toolkits/Libraries :: Curses/Ncurses", True))
self.create_trove_cat(
(515, 500, "db_group_conv", "Project is a database conversion tool",
- "Database Environment :: Grouping and Descriptive Categories (DB) :: Project is a database conversion tool",
+ "Database Environment :: Grouping and Descriptive Categories (DB) :: Project is a database conversion tool", # nopep8
True))
self.create_trove_cat(
(478, 458, "ui_tk", "Tk", "User Interface :: Toolkits/Libraries :: Tk", True))
@@ -271,7 +271,7 @@ class CreateTroveCategoriesCommand(base.Command):
"Topic :: Communications :: Email :: Post-Office", True))
self.create_trove_cat(
(514, 500, "db_group_propfmt", "Project is a tool for a proprietary database file format",
- "Database Environment :: Grouping and Descriptive Categories (DB) :: Project is a tool for a proprietary database file format",
+ "Database Environment :: Grouping and Descriptive Categories (DB) :: Project is a tool for a proprietary database file format", # nopep8
True))
self.create_trove_cat(
(482, 458, "ui_aalib", "AAlib", "User Interface :: Toolkits/Libraries :: AAlib", True))
@@ -279,7 +279,7 @@ class CreateTroveCategoriesCommand(base.Command):
(484, 458, "ui_fltk", "FLTK", "User Interface :: Toolkits/Libraries :: FLTK", True))
self.create_trove_cat(
(512, 500, "db_group_filedbms", "Project is a file-based DBMS (database system)",
- "Database Environment :: Grouping and Descriptive Categories (DB) :: Project is a file-based DBMS (database system)",
+ "Database Environment :: Grouping and Descriptive Categories (DB) :: Project is a file-based DBMS (database system)", # nopep8
True))
self.create_trove_cat(
(486, 458, "ui_plib", "Plib", "User Interface :: Toolkits/Libraries :: Plib", True))
@@ -287,7 +287,7 @@ class CreateTroveCategoriesCommand(base.Command):
(488, 458, "ui_glide", "Glide", "User Interface :: Toolkits/Libraries :: Glide", True))
self.create_trove_cat(
(510, 500, "db_group_api", "Project is a database abstraction layer (API)",
- "Database Environment :: Grouping and Descriptive Categories (DB) :: Project is a database abstraction layer (API)",
+ "Database Environment :: Grouping and Descriptive Categories (DB) :: Project is a database abstraction layer (API)", # nopep8
True))
self.create_trove_cat(
(490, 458, "ui_glut", "GLUT", "User Interface :: Toolkits/Libraries :: GLUT", True))
@@ -828,14 +828,14 @@ class CreateTroveCategoriesCommand(base.Command):
(441, 315, "ecos", "eCos", "Operating System :: Handheld/Embedded Operating Systems :: eCos", True))
self.create_trove_cat(
(
- 443, 315, "vxworks", "VxWorks", "Operating System :: Handheld/Embedded Operating Systems :: VxWorks", True))
+ 443, 315, "vxworks", "VxWorks", "Operating System :: Handheld/Embedded Operating Systems :: VxWorks", True)) # nopep8
self.create_trove_cat((444, 315, "symbianos", "SymbianOS",
"Operating System :: Handheld/Embedded Operating Systems :: SymbianOS", True))
self.create_trove_cat(
(442, 315, "qnx", "QNX", "Operating System :: Handheld/Embedded Operating Systems :: QNX", True))
self.create_trove_cat(
(
- 440, 315, "uclinux", "uClinux", "Operating System :: Handheld/Embedded Operating Systems :: uClinux", True))
+ 440, 315, "uclinux", "uClinux", "Operating System :: Handheld/Embedded Operating Systems :: uClinux", True)) # nopep8
self.create_trove_cat(
(418, 199, "modern_oses", "Modern (Vendor-Supported) Desktop Operating Systems",
"Operating System :: Modern (Vendor-Supported) Desktop Operating Systems", True))
@@ -871,13 +871,13 @@ class CreateTroveCategoriesCommand(base.Command):
(634, 236, "console-platforms", "Console-based Platforms",
"Operating System :: Other Operating Systems :: Console-based Platforms", True))
self.create_trove_cat((637, 634, "sega-dreamcast", "Sega Dreamcast",
- "Operating System :: Other Operating Systems :: Console-based Platforms :: Sega Dreamcast",
+ "Operating System :: Other Operating Systems :: Console-based Platforms :: Sega Dreamcast", # nopep8
True))
self.create_trove_cat((635, 634, "xbox", "Microsoft Xbox",
- "Operating System :: Other Operating Systems :: Console-based Platforms :: Microsoft Xbox",
+ "Operating System :: Other Operating Systems :: Console-based Platforms :: Microsoft Xbox", # nopep8
True))
self.create_trove_cat((636, 634, "sony-ps2", "Sony Playstation 2",
- "Operating System :: Other Operating Systems :: Console-based Platforms :: Sony Playstation 2",
+ "Operating System :: Other Operating Systems :: Console-based Platforms :: Sony Playstation 2", # nopep8
True))
self.create_trove_cat(
(422, 236, "mswin_98", "Win98", "Operating System :: Other Operating Systems :: Win98", True))
@@ -923,11 +923,11 @@ class CreateTroveCategoriesCommand(base.Command):
"Operating System :: Grouping and Descriptive Categories :: Project is OS Distribution-Specific", True))
self.create_trove_cat(
(449, 432, "eightbit_oses", "Classic 8-bit Operating Systems (Apple, Atari, Commodore, etc.)",
- "Operating System :: Grouping and Descriptive Categories :: Classic 8-bit Operating Systems (Apple, Atari, Commodore, etc.)",
+ "Operating System :: Grouping and Descriptive Categories :: Classic 8-bit Operating Systems (Apple, Atari, Commodore, etc.)", # nopep8
True))
self.create_trove_cat(
(436, 432, "os_portable", "OS Portable (Source code to work with many OS platforms)",
- "Operating System :: Grouping and Descriptive Categories :: OS Portable (Source code to work with many OS platforms)",
+ "Operating System :: Grouping and Descriptive Categories :: OS Portable (Source code to work with many OS platforms)", # nopep8
True))
self.create_trove_cat(
(438, 432, "os_projectdistro", "Project is an Operating System Distribution",
@@ -935,7 +935,7 @@ class CreateTroveCategoriesCommand(base.Command):
True))
self.create_trove_cat(
(235, 432, "independent", "OS Independent (Written in an interpreted language)",
- "Operating System :: Grouping and Descriptive Categories :: OS Independent (Written in an interpreted language)",
+ "Operating System :: Grouping and Descriptive Categories :: OS Independent (Written in an interpreted language)", # nopep8
True))
self.create_trove_cat(
(200, 432, "posix", "All POSIX (Linux/BSD/UNIX-like OSes)",
@@ -945,7 +945,7 @@ class CreateTroveCategoriesCommand(base.Command):
"Operating System :: Grouping and Descriptive Categories :: 32-bit MS Windows (NT/2000/XP)", True))
self.create_trove_cat(
(202, 432, "bsd", "All BSD Platforms (FreeBSD/NetBSD/OpenBSD/Apple Mac OS X)",
- "Operating System :: Grouping and Descriptive Categories :: All BSD Platforms (FreeBSD/NetBSD/OpenBSD/Apple Mac OS X)",
+ "Operating System :: Grouping and Descriptive Categories :: All BSD Platforms (FreeBSD/NetBSD/OpenBSD/Apple Mac OS X)", # nopep8
True))
self.create_trove_cat(
(435, 432, "mswin_all32bit", "All 32-bit MS Windows (95/98/NT/2000/XP)",
@@ -1107,7 +1107,7 @@ class CreateTroveCategoriesCommand(base.Command):
self.create_trove_cat((57, 55, "kde", "K Desktop Environment (KDE)",
"Topic :: Desktop Environment :: K Desktop Environment (KDE)", True))
self.create_trove_cat(
- (61, 57, "themes", "Themes", "Topic :: Desktop Environment :: K Desktop Environment (KDE) :: Themes", True))
+ (61, 57, "themes", "Themes", "Topic :: Desktop Environment :: K Desktop Environment (KDE) :: Themes", True)) # nopep8
self.create_trove_cat(
(58, 55, "gnome", "Gnome", "Topic :: Desktop Environment :: Gnome", True))
self.create_trove_cat((62, 55, "screensavers", "Screen Savers",
@@ -1473,7 +1473,7 @@ class CreateTroveCategoriesCommand(base.Command):
"Operating System :: Modern (Vendor-Supported) Desktop Operating Systems :: Windows 7", True))
self.create_trove_cat(
(
- 728, 315, "android", "Android", "Operating System :: Handheld/Embedded Operating Systems :: Android", True))
+ 728, 315, "android", "Android", "Operating System :: Handheld/Embedded Operating Systems :: Android", True)) # nopep8
self.create_trove_cat((780, 315, "ios", "Apple iPhone",
"Operating System :: Handheld/Embedded Operating Systems :: Apple iPhone", True))
self.create_trove_cat((863, 534, "architects", "Architects",
@@ -1564,7 +1564,7 @@ class CreateTroveCategoriesCommand(base.Command):
self.create_trove_cat((673, 576, "bsm", "Business Service Management",
"Topic :: Office/Business :: Enterprise :: Business Service Management"))
self.create_trove_cat((674, 673, "servicesupport", "Service Support",
- "Topic :: Office/Business :: Enterprise :: Business Service Management :: Service Support"))
+ "Topic :: Office/Business :: Enterprise :: Business Service Management :: Service Support")) # nopep8
self.create_trove_cat(
(675, 673, "serviceassurance", "Service Assurance",
"Topic :: Office/Business :: Enterprise :: Business Service Management :: Service Assurance"))
@@ -1593,14 +1593,14 @@ class CreateTroveCategoriesCommand(base.Command):
"License :: OSI-Approved Open Source :: Simple Public License 2.0"))
self.create_trove_cat(
(687, 673, "cmdb", "Configuration Management Database (CMDB)",
- "Topic :: Office/Business :: Enterprise :: Business Service Management :: Configuration Management Database (CMDB)"))
+ "Topic :: Office/Business :: Enterprise :: Business Service Management :: Configuration Management Database (CMDB)")) # nopep8
self.create_trove_cat(
(688, 18, "mobileapps", "Mobile", "Topic :: Mobile"))
self.create_trove_cat((689, 315, "winmobile", "Windows Mobile",
"Operating System :: Handheld/Embedded Operating Systems :: Windows Mobile"))
self.create_trove_cat(
(690, 315, "brew", "BREW (Binary Runtime Environment for Wireless)",
- "Operating System :: Handheld/Embedded Operating Systems :: BREW (Binary Runtime Environment for Wireless)"))
+ "Operating System :: Handheld/Embedded Operating Systems :: BREW (Binary Runtime Environment for Wireless)")) # nopep8
self.create_trove_cat(
(691, 315, "j2me", "J2ME (Java Platform, Micro Edition)",
"Operating System :: Handheld/Embedded Operating Systems :: J2ME (Java Platform, Micro Edition)"))
@@ -1658,16 +1658,16 @@ class CreateTroveCategoriesCommand(base.Command):
(717, 160, "proglangmeta", "Project is a programming language",
"Programming Language :: Project is a programming language"))
self.create_trove_cat((718, 634, "msxb360", "Microsoft Xbox 360",
- "Operating System :: Other Operating Systems :: Console-based Platforms :: Microsoft Xbox 360"))
+ "Operating System :: Other Operating Systems :: Console-based Platforms :: Microsoft Xbox 360")) # nopep8
self.create_trove_cat((719, 634, "nintendogc", "Nintendo GameCube",
- "Operating System :: Other Operating Systems :: Console-based Platforms :: Nintendo GameCube"))
+ "Operating System :: Other Operating Systems :: Console-based Platforms :: Nintendo GameCube")) # nopep8
self.create_trove_cat((720, 634, "nintendowii", "Nintendo Wii",
- "Operating System :: Other Operating Systems :: Console-based Platforms :: Nintendo Wii"))
+ "Operating System :: Other Operating Systems :: Console-based Platforms :: Nintendo Wii")) # nopep8
self.create_trove_cat((721, 634, "sonyps3", "Sony PlayStation 3",
- "Operating System :: Other Operating Systems :: Console-based Platforms :: Sony PlayStation 3"))
+ "Operating System :: Other Operating Systems :: Console-based Platforms :: Sony PlayStation 3")) # nopep8
self.create_trove_cat(
(722, 634, "sonypsp", "Sony PlayStation Portable (PSP)",
- "Operating System :: Other Operating Systems :: Console-based Platforms :: Sony PlayStation Portable (PSP)"))
+ "Operating System :: Other Operating Systems :: Console-based Platforms :: Sony PlayStation Portable (PSP)")) # nopep8
self.create_trove_cat(
(723, 160, "scilab", "Scilab", "Programming Language :: Scilab"))
self.create_trove_cat(
@@ -1685,10 +1685,10 @@ class CreateTroveCategoriesCommand(base.Command):
(730, 274, "basque", "Basque (Euskara)", "Translations :: Basque (Euskara)"))
self.create_trove_cat(
(731, 14, "classpath", "GNU General Public License with Classpath exception (Classpath::License)",
- "License :: OSI-Approved Open Source :: GNU General Public License with Classpath exception (Classpath::License)"))
+ "License :: OSI-Approved Open Source :: GNU General Public License with Classpath exception (Classpath::License)")) # nopep8
self.create_trove_cat(
(732, 727, "caddcam", "Computer-aided technologies (CADD/CAM/CAE)",
- "Topic :: Scientific/Engineering :: Mechanical and Civil Engineering :: Computer-aided technologies (CADD/CAM/CAE)"))
+ "Topic :: Scientific/Engineering :: Mechanical and Civil Engineering :: Computer-aided technologies (CADD/CAM/CAE)")) # nopep8
self.create_trove_cat((733, 576, "humanresources", "Human Resources",
"Topic :: Office/Business :: Enterprise :: Human Resources"))
self.create_trove_cat(
@@ -1983,7 +1983,7 @@ class CreateTroveCategoriesCommand(base.Command):
self.update_trove_cat(
16, dict(
fullname="GNU Library or Lesser General Public License version 2.0 (LGPLv2)",
- fullpath="License :: OSI-Approved Open Source :: GNU Library or Lesser General Public License version 2.0 (LGPLv2)"))
+ fullpath="License :: OSI-Approved Open Source :: GNU Library or Lesser General Public License version 2.0 (LGPLv2)")) # nopep8
self.update_trove_cat(
15, dict(fullname="GNU General Public License version 2.0 (GPLv2)",
fullpath="License :: OSI-Approved Open Source :: GNU General Public License version 2.0 (GPLv2)"))
@@ -1995,16 +1995,16 @@ class CreateTroveCategoriesCommand(base.Command):
"License :: Creative Commons Attribution License"))
self.create_trove_cat(
(869, 868, "ccaslv2", "Creative Commons Attribution ShareAlike License V2.0",
- "License :: Creative Commons Attribution License :: Creative Commons Attribution ShareAlike License V2.0"))
+ "License :: Creative Commons Attribution License :: Creative Commons Attribution ShareAlike License V2.0")) # nopep8
self.create_trove_cat(
(870, 868, "ccaslv3", "Creative Commons Attribution ShareAlike License V3.0",
- "License :: Creative Commons Attribution License :: Creative Commons Attribution ShareAlike License V3.0"))
+ "License :: Creative Commons Attribution License :: Creative Commons Attribution ShareAlike License V3.0")) # nopep8
self.create_trove_cat(
(871, 868, "ccanclv2", "Creative Commons Attribution Non-Commercial License V2.0",
- "License :: Creative Commons Attribution License :: Creative Commons Attribution Non-Commercial License V2.0"))
+ "License :: Creative Commons Attribution License :: Creative Commons Attribution Non-Commercial License V2.0")) # nopep8
self.create_trove_cat(
(680, 14, "lgplv3", "GNU Library or Lesser General Public License version 3.0 (LGPLv3)",
- "License :: OSI-Approved Open Source :: GNU Library or Lesser General Public License version 3.0 (LGPLv3)"))
+ "License :: OSI-Approved Open Source :: GNU Library or Lesser General Public License version 3.0 (LGPLv3)")) # nopep8
self.create_trove_cat(
(679, 14, "gplv3", "GNU General Public License version 3.0 (GPLv3)",
"License :: OSI-Approved Open Source :: GNU General Public License version 3.0 (GPLv3)"))
http://git-wip-us.apache.org/repos/asf/allura/blob/f2bd03c7/Allura/allura/controllers/__init__.py
----------------------------------------------------------------------
diff --git a/Allura/allura/controllers/__init__.py b/Allura/allura/controllers/__init__.py
index a69bafb..417b8ad 100644
--- a/Allura/allura/controllers/__init__.py
+++ b/Allura/allura/controllers/__init__.py
@@ -18,6 +18,10 @@
# under the License.
"""Controllers for the allura application."""
-from .discuss import DiscussionController, AppDiscussionController, ThreadController, PostController, ModerationController
-from .discuss import AppDiscussionRestController
+from .discuss import DiscussionController, AppDiscussionController, ThreadController, PostController
+from .discuss import ModerationController, AppDiscussionRestController
from .base import BaseController, DispatchIndex
+
+__all__ = [
+ 'DiscussionController', 'AppDiscussionController', 'ThreadController', 'PostController', 'ModerationController',
+ 'AppDiscussionRestController', 'BaseController', 'DispatchIndex']
http://git-wip-us.apache.org/repos/asf/allura/blob/f2bd03c7/Allura/allura/controllers/auth.py
----------------------------------------------------------------------
diff --git a/Allura/allura/controllers/auth.py b/Allura/allura/controllers/auth.py
index f4f03c9..e3c4d38 100644
--- a/Allura/allura/controllers/auth.py
+++ b/Allura/allura/controllers/auth.py
@@ -51,6 +51,7 @@ from allura.controllers import BaseController
log = logging.getLogger(__name__)
+
class F(object):
login_form = LoginForm()
password_change_form = forms.PasswordChangeForm(action='/auth/preferences/change_password')
@@ -183,20 +184,19 @@ class AuthController(BaseController):
user_record = M.User.by_email_address(email)
allow_non_primary_email_reset = asbool(config.get('auth.allow_non_primary_email_password_reset', True))
-
if not re.match(r"[^@]+@[^@]+\.[^@]+", email):
flash('Enter email in correct format!','error')
redirect('/auth/forgotten_password')
if not allow_non_primary_email_reset:
- message = 'If the given email address is on record, a password reset email has been sent to the account\'s primary email address.'
+ message = 'If the given email address is on record, '\
+ 'a password reset email has been sent to the account\'s primary email address.'
email_record = M.EmailAddress.get(email=provider.get_primary_email_address(user_record=user_record),
confirmed=True)
else:
message = 'A password reset email has been sent, if the given email address is on record in our system.'
email_record = M.EmailAddress.get(email=email, confirmed=True)
-
if user_record and email_record and email_record.confirmed:
hash = h.nonce(42)
user_record.set_tool_data('AuthPasswordReset',
@@ -459,10 +459,8 @@ class PreferencesController(BaseController):
# not using **kw in method signature, to ensure 'admin' can't be passed in via a form submit
kw = form_params
addr = kw.pop('addr', None)
- new_addr= kw.pop('new_addr', None)
+ new_addr = kw.pop('new_addr', None)
primary_addr = kw.pop('primary_addr', None)
- oid = kw.pop('oid', None)
- new_oid = kw.pop('new_oid', None)
provider = plugin.AuthenticationProvider.get(request)
for i, (old_a, data) in enumerate(zip(user.email_addresses, addr or [])):
obj = user.address_object(old_a)
@@ -1011,7 +1009,7 @@ class OAuthController(BaseController):
validation_pin=h.nonce(20),
is_bearer=True,
)
- access_token = M.OAuthAccessToken(
+ M.OAuthAccessToken(
consumer_token_id=consumer_token._id,
request_token_id=c.user._id,
user_id=request_token.user_id,
http://git-wip-us.apache.org/repos/asf/allura/blob/f2bd03c7/Allura/allura/lib/helpers.py
----------------------------------------------------------------------
diff --git a/Allura/allura/lib/helpers.py b/Allura/allura/lib/helpers.py
index 68330ba..bf5a580 100644
--- a/Allura/allura/lib/helpers.py
+++ b/Allura/allura/lib/helpers.py
@@ -133,9 +133,11 @@ def make_safe_path_portion(ustr, relaxed=True):
s = s.replace('--', '-')
return s
+
def escape_json(data):
return json.dumps(data).replace('<', '\u003C')
+
def monkeypatch(*objs):
def patchem(func):
for obj in objs:
@@ -695,9 +697,9 @@ def paging_sanitizer(limit, page, total_count, zero_based_pages=True):
return limit, page
-def _add_inline_line_numbers_to_text(text):
+def _add_inline_line_numbers_to_text(txt):
markup_text = '<div class="codehilite"><pre>'
- for line_num, line in enumerate(text.splitlines(), 1):
+ for line_num, line in enumerate(txt.splitlines(), 1):
markup_text = markup_text + \
'<span id="l%s" class="code_block"><span class="lineno">%s</span> %s</span>' % (
line_num, line_num, line)
@@ -705,7 +707,7 @@ def _add_inline_line_numbers_to_text(text):
return markup_text
-def _add_table_line_numbers_to_text(text):
+def _add_table_line_numbers_to_text(txt):
def _prepend_whitespaces(num, max_num):
num, max_num = str(num), str(max_num)
diff = len(max_num) - len(num)
@@ -715,7 +717,7 @@ def _add_table_line_numbers_to_text(text):
max_num = l + start
return '\n'.join(map(_prepend_whitespaces, range(start, max_num), [max_num] * l))
- lines = text.splitlines(True)
+ lines = txt.splitlines(True)
linenumbers = '<td class="linenos"><div class="linenodiv"><pre>' + \
_len_to_str_column(len(lines)) + '</pre></div></td>'
markup_text = '<table class="codehilitetable"><tbody><tr>' + \
@@ -731,28 +733,28 @@ INLINE = 'inline'
TABLE = 'table'
-def render_any_markup(name, text, code_mode=False, linenumbers_style=TABLE):
+def render_any_markup(name, txt, code_mode=False, linenumbers_style=TABLE):
"""
renders markdown using allura enhacements if file is in markdown format
renders any other markup format using the pypeline
Returns jinja-safe text
"""
- if text == '':
- text = '<p><em>Empty File</em></p>'
+ if txt == '':
+ txt = '<p><em>Empty File</em></p>'
else:
fmt = g.pypeline_markup.can_render(name)
if fmt == 'markdown':
- text = g.markdown.convert(text)
+ txt = g.markdown.convert(txt)
else:
- text = g.pypeline_markup.render(name, text)
+ txt = g.pypeline_markup.render(name, txt)
if not fmt:
if code_mode and linenumbers_style == INLINE:
- text = _add_inline_line_numbers_to_text(text)
+ txt = _add_inline_line_numbers_to_text(txt)
elif code_mode and linenumbers_style == TABLE:
- text = _add_table_line_numbers_to_text(text)
+ txt = _add_table_line_numbers_to_text(txt)
else:
- text = '<pre>%s</pre>' % text
- return Markup(text)
+ txt = '<pre>%s</pre>' % txt
+ return Markup(txt)
# copied from jinja2 dev
# latest release, 2.6, implements this incorrectly
@@ -1053,28 +1055,28 @@ def urlopen(url, retries=3, codes=(408, 500, 502, 503, 504), timeout=None):
raise e
-def plain2markdown(text, preserve_multiple_spaces=False, has_html_entities=False):
+def plain2markdown(txt, preserve_multiple_spaces=False, has_html_entities=False):
if not has_html_entities:
# prevent &foo; and { from becoming HTML entities
- text = re_amp.sub('&', text)
+ txt = re_amp.sub('&', txt)
# avoid accidental 4-space indentations creating code blocks
if preserve_multiple_spaces:
- text = text.replace('\t', ' ' * 4)
- text = re_preserve_spaces.sub(' ', text)
+ txt = txt.replace('\t', ' ' * 4)
+ txt = re_preserve_spaces.sub(' ', txt)
else:
- text = re_leading_spaces.sub('', text)
+ txt = re_leading_spaces.sub('', txt)
try:
# try to use html2text for most of the escaping
import html2text
html2text.BODY_WIDTH = 0
- text = html2text.escape_md_section(text, snob=True)
+ txt = html2text.escape_md_section(txt, snob=True)
except ImportError:
# fall back to just escaping any MD-special chars
- text = md_chars_matcher_all.sub(r"\\\1", text)
+ txt = md_chars_matcher_all.sub(r"\\\1", txt)
# prevent < and > from becoming tags
- text = re_angle_bracket_open.sub('<', text)
- text = re_angle_bracket_close.sub('>', text)
- return text
+ txt = re_angle_bracket_open.sub('<', txt)
+ txt = re_angle_bracket_close.sub('>', txt)
+ return txt
def iter_entry_points(group, *a, **kw):
@@ -1166,7 +1168,7 @@ def login_overlay(exceptions=None):
"""
try:
yield
- except HTTPUnauthorized as e:
+ except HTTPUnauthorized:
if exceptions:
for exception in exceptions:
if request.path.rstrip('/').endswith('/%s' % exception):
@@ -1251,7 +1253,6 @@ def rate_limit(cfg_opt, artifact_count, start_date, exception=None):
now = datetime.utcnow()
for rate, count in rate_limits.items():
age = now - start_date
- age = (age.microseconds +
- (age.seconds + age.days * 24 * 3600) * 10 ** 6) / 10 ** 6
+ age = (age.microseconds + (age.seconds + age.days * 24 * 3600) * 10 ** 6) / 10 ** 6
if age < int(rate) and artifact_count >= count:
raise exception()
http://git-wip-us.apache.org/repos/asf/allura/blob/f2bd03c7/Allura/allura/lib/widgets/__init__.py
----------------------------------------------------------------------
diff --git a/Allura/allura/lib/widgets/__init__.py b/Allura/allura/lib/widgets/__init__.py
index 6e13a39..9d21e37 100644
--- a/Allura/allura/lib/widgets/__init__.py
+++ b/Allura/allura/lib/widgets/__init__.py
@@ -20,3 +20,7 @@ from .subscriptions import SubscriptionForm
from .oauth_widgets import OAuthApplicationForm, OAuthRevocationForm
from .auth_widgets import LoginForm, ForgottenPasswordForm, DisableAccountForm
from .vote import VoteForm
+
+__all__ = [
+ 'Post', 'Thread', 'Discussion', 'SubscriptionForm', 'OAuthApplicationForm', 'OAuthRevocationForm', 'LoginForm',
+ 'ForgottenPasswordForm', 'DisableAccountForm', 'VoteForm']
http://git-wip-us.apache.org/repos/asf/allura/blob/f2bd03c7/Allura/allura/lib/widgets/forms.py
----------------------------------------------------------------------
diff --git a/Allura/allura/lib/widgets/forms.py b/Allura/allura/lib/widgets/forms.py
index cfbad2c..5d35788 100644
--- a/Allura/allura/lib/widgets/forms.py
+++ b/Allura/allura/lib/widgets/forms.py
@@ -18,7 +18,6 @@
import logging
import warnings
-from collections import defaultdict
from pylons import app_globals as g, tmpl_context as c
from formencode import validators as fev
import formencode
@@ -686,13 +685,12 @@ class SelectSubCategoryForm(ForgeForm):
def display(self, **kw):
categories = kw.get('categories')
- self.fields['selected_category'].options = \
- [ew.Option(py_value=el.trove_cat_id, label=el.fullname)
- for el in categories]
- self.fields['selected_category'].validator = \
- validator = formencode.All(
- V.OneOfValidator(categories),
- fev.UnicodeString(not_empty=True))
+ self.fields['selected_category'].options = [
+ ew.Option(py_value=el.trove_cat_id, label=el.fullname) for el in categories
+ ]
+ self.fields['selected_category'].validator = formencode.All(
+ V.OneOfValidator(categories),
+ fev.UnicodeString(not_empty=True))
return super(ForgeForm, self).display(**kw)
@@ -830,18 +828,19 @@ class NeighborhoodOverviewForm(ForgeForm):
empty_val = False
if inp['value'] is None or inp['value'] == '':
empty_val = True
- display += '<tr><td class="left"><label>%(label)s</label></td>'\
- '<td><input type="checkbox" name="%(ctx_name)s-%(inp_name)s-def" %(def_checked)s>default</td>'\
- '<td class="right"><div class="%(ctx_name)s-%(inp_name)s-inp"><table class="input_inner">'\
- '<tr><td><input type="text" class="%(inp_type)s" name="%(ctx_name)s-%(inp_name)s" '\
- 'value="%(inp_value)s"></td><td>%(inp_additional)s</td></tr></table></div></td></tr>\n' % {'ctx_id': ctx['id'],
- 'ctx_name': ctx['name'],
- 'inp_name': inp['name'],
- 'inp_value': inp['value'],
- 'label': inp['label'],
- 'inp_type': inp['type'],
- 'def_checked': 'checked="checked"' if empty_val else '',
- 'inp_additional': additional_inputs}
+ display += '<tr><td class="left"><label>%(label)s</label></td>' \
+ '<td><input type="checkbox" name="%(ctx_name)s-%(inp_name)s-def" %(def_checked)s>default</td>' \
+ '<td class="right"><div class="%(ctx_name)s-%(inp_name)s-inp"><table class="input_inner">' \
+ '<tr><td><input type="text" class="%(inp_type)s" name="%(ctx_name)s-%(inp_name)s" ' \
+ 'value="%(inp_value)s"></td><td>%(inp_additional)s</td></tr></table></div></td></tr>\n' % {
+ 'ctx_id': ctx['id'],
+ 'ctx_name': ctx['name'],
+ 'inp_name': inp['name'],
+ 'inp_value': inp['value'],
+ 'label': inp['label'],
+ 'inp_type': inp['type'],
+ 'def_checked': 'checked="checked"' if empty_val else '',
+ 'inp_additional': additional_inputs}
display += '</table>'
if ctx['errors'] and field.show_errors and not ignore_errors:
@@ -1105,7 +1104,6 @@ class AwardGrantForm(ForgeForm):
self._project_select_url = kw.pop('project_select_url', '')
super(AwardGrantForm, self).__init__(*args, **kw)
-
def award_options(self):
return [ew.Option(py_value=a.short, label=a.short) for a in self._awards]
http://git-wip-us.apache.org/repos/asf/allura/blob/f2bd03c7/Allura/allura/model/__init__.py
----------------------------------------------------------------------
diff --git a/Allura/allura/model/__init__.py b/Allura/allura/model/__init__.py
index 784d1af..cb817b4 100644
--- a/Allura/allura/model/__init__.py
+++ b/Allura/allura/model/__init__.py
@@ -22,7 +22,8 @@
from .neighborhood import Neighborhood, NeighborhoodFile
from .project import Project, ProjectCategory, TroveCategory, ProjectFile, AppConfig
from .index import ArtifactReference, Shortlink
-from .artifact import Artifact, MovedArtifact, Message, VersionedArtifact, Snapshot, Feed, AwardFile, Award, AwardGrant, VotableArtifact
+from .artifact import Artifact, MovedArtifact, Message, VersionedArtifact, Snapshot, Feed, AwardFile, Award, AwardGrant
+from .artifact import VotableArtifact
from .discuss import Discussion, Thread, PostHistory, Post, DiscussionAttachment
from .attachments import BaseAttachment
from .auth import AuthGlobals, User, ProjectRole, EmailAddress, OldProjectRole
@@ -48,3 +49,15 @@ from . import repo_refresh
from ming.orm import Mapper
Mapper.compile_all()
+
+__all__ = [
+ 'Neighborhood', 'NeighborhoodFile', 'Project', 'ProjectCategory', 'TroveCategory', 'ProjectFile', 'AppConfig',
+ 'ArtifactReference', 'Shortlink', 'Artifact', 'MovedArtifact', 'Message', 'VersionedArtifact', 'Snapshot', 'Feed',
+ 'AwardFile', 'Award', 'AwardGrant', 'VotableArtifact', 'Discussion', 'Thread', 'PostHistory', 'Post',
+ 'DiscussionAttachment', 'BaseAttachment', 'AuthGlobals', 'User', 'ProjectRole', 'EmailAddress', 'OldProjectRole',
+ 'AuditLog', 'audit_log', 'AlluraUserProperty', 'File', 'Notification', 'Mailbox', 'Repository',
+ 'RepositoryImplementation', 'MergeRequest', 'GitLikeTree', 'Stats', 'OAuthToken', 'OAuthConsumerToken',
+ 'OAuthRequestToken', 'OAuthAccessToken', 'MonQTask', 'Webhook', 'ACE', 'ACL', 'EVERYONE', 'ALL_PERMISSIONS',
+ 'DENY_ALL', 'MarkdownCache', 'main_doc_session', 'main_orm_session', 'project_doc_session', 'project_orm_session',
+ 'artifact_orm_session', 'repository_orm_session', 'task_orm_session', 'ArtifactSessionExtension', 'repository',
+ 'repo_refresh', ]
http://git-wip-us.apache.org/repos/asf/allura/blob/f2bd03c7/Allura/allura/model/repo.py
----------------------------------------------------------------------
diff --git a/Allura/allura/model/repo.py b/Allura/allura/model/repo.py
index f041116..6ba6633 100644
--- a/Allura/allura/model/repo.py
+++ b/Allura/allura/model/repo.py
@@ -24,3 +24,8 @@ from .repository import QSIZE, README_RE, VIEWABLE_EXTENSIONS, PYPELINE_EXTENSIO
from .repository import CommitDoc, TreeDoc, LastCommitDoc, TreesDoc, CommitRunDoc
from .repository import RepoObject, Commit, Tree, Blob, LastCommit
from .repository import ModelCache
+
+__all__ = [
+ 'SUser', 'SObjType', 'QSIZE', 'README_RE', 'VIEWABLE_EXTENSIONS', 'PYPELINE_EXTENSIONS',
+ 'DIFF_SIMILARITY_THRESHOLD', 'CommitDoc', 'TreeDoc', 'LastCommitDoc', 'TreesDoc', 'CommitRunDoc', 'RepoObject',
+ 'Commit', 'Tree', 'Blob', 'LastCommit', 'ModelCache']
http://git-wip-us.apache.org/repos/asf/allura/blob/f2bd03c7/Allura/allura/model/repository.py
----------------------------------------------------------------------
diff --git a/Allura/allura/model/repository.py b/Allura/allura/model/repository.py
index 77c3fc4..75ed2dc 100644
--- a/Allura/allura/model/repository.py
+++ b/Allura/allura/model/repository.py
@@ -30,7 +30,7 @@ from urlparse import urljoin
from threading import Thread
from Queue import Queue
from itertools import chain
-from difflib import SequenceMatcher, unified_diff
+from difflib import SequenceMatcher
import tg
from paste.deploy.converters import asint, asbool
@@ -56,7 +56,7 @@ from .timeline import ActivityObject
from .monq_model import MonQTask
from .project import AppConfig
from .session import main_doc_session
-from .session import repository_orm_session, artifact_orm_session
+from .session import repository_orm_session
log = logging.getLogger(__name__)
@@ -78,18 +78,20 @@ SObjType = S.OneOf('blob', 'tree', 'submodule')
# Used for when we're going to batch queries using $in
QSIZE = 100
BINARY_EXTENSIONS = frozenset([
- ".3ds", ".3g2", ".3gp", ".7z", ".a", ".aac", ".adp", ".ai", ".aif", ".apk", ".ar", ".asf", ".au", ".avi",
- ".bak", ".bin", ".bk", ".bmp", ".btif", ".bz2", ".cab", ".caf", ".cgm", ".cmx", ".cpio", ".cr2", ".dat", ".deb", ".djvu", ".dll",
- ".dmg", ".dng", ".doc", ".docx", ".dra", ".DS_Store", ".dsk", ".dts", ".dtshd", ".dvb", ".dwg", ".dxf", ".ecelp4800",
- ".ecelp7470", ".ecelp9600", ".egg", ".eol", ".eot", ".epub", ".exe", ".f4v", ".fbs", ".fh", ".fla", ".flac", ".fli", ".flv",
- ".fpx", ".fst", ".fvt", ".g3", ".gif", ".gz", ".h261", ".h263", ".h264", ".ico", ".ief", ".img", ".ipa", ".iso", ".jar", ".jpeg",
- ".jpg", ".jpgv", ".jpm", ".jxr", ".ktx", ".lvp", ".lz", ".lzma", ".lzo", ".m3u", ".m4a", ".m4v", ".mar", ".mdi", ".mid", ".mj2",
- ".mka", ".mkv", ".mmr", ".mng", ".mov", ".movie", ".mp3", ".mp4", ".mp4a", ".mpeg", ".mpg", ".mpga", ".mxu", ".nef", ".npx", ".o",
- ".oga", ".ogg", ".ogv", ".otf", ".pbm", ".pcx", ".pdf", ".pea", ".pgm", ".pic", ".png", ".pnm", ".ppm", ".psd", ".pya", ".pyc",
- ".pyo", ".pyv", ".qt", ".rar", ".ras", ".raw", ".rgb", ".rip", ".rlc", ".rz", ".s3m", ".s7z", ".scpt", ".sgi", ".shar", ".sil",
- ".smv", ".so", ".sub", ".swf", ".tar", ".tbz2", ".tga", ".tgz", ".tif", ".tiff", ".tlz", ".ts", ".ttf", ".uvh", ".uvi", ".uvm",
- ".uvp", ".uvs", ".uvu", ".viv", ".vob", ".war", ".wav", ".wax", ".wbmp", ".wdp", ".weba", ".webm", ".webp", ".whl", ".wm", ".wma",
- ".wmv", ".wmx", ".woff", ".woff2", ".wvx", ".xbm", ".xif", ".xm", ".xpi", ".xpm", ".xwd", ".xz", ".z", ".zip", ".zipx"
+ ".3ds", ".3g2", ".3gp", ".7z", ".a", ".aac", ".adp", ".ai", ".aif", ".apk", ".ar", ".asf", ".au", ".avi", ".bak",
+ ".bin", ".bk", ".bmp", ".btif", ".bz2", ".cab", ".caf", ".cgm", ".cmx", ".cpio", ".cr2", ".dat", ".deb", ".djvu",
+ ".dll", ".dmg", ".dng", ".doc", ".docx", ".dra", ".DS_Store", ".dsk", ".dts", ".dtshd", ".dvb", ".dwg", ".dxf",
+ ".ecelp4800", ".ecelp7470", ".ecelp9600", ".egg", ".eol", ".eot", ".epub", ".exe", ".f4v", ".fbs", ".fh", ".fla",
+ ".flac", ".fli", ".flv", ".fpx", ".fst", ".fvt", ".g3", ".gif", ".gz", ".h261", ".h263", ".h264", ".ico", ".ief",
+ ".img", ".ipa", ".iso", ".jar", ".jpeg", ".jpg", ".jpgv", ".jpm", ".jxr", ".ktx", ".lvp", ".lz", ".lzma", ".lzo",
+ ".m3u", ".m4a", ".m4v", ".mar", ".mdi", ".mid", ".mj2", ".mka", ".mkv", ".mmr", ".mng", ".mov", ".movie", ".mp3",
+ ".mp4", ".mp4a", ".mpeg", ".mpg", ".mpga", ".mxu", ".nef", ".npx", ".o", ".oga", ".ogg", ".ogv", ".otf", ".pbm",
+ ".pcx", ".pdf", ".pea", ".pgm", ".pic", ".png", ".pnm", ".ppm", ".psd", ".pya", ".pyc", ".pyo", ".pyv", ".qt",
+ ".rar", ".ras", ".raw", ".rgb", ".rip", ".rlc", ".rz", ".s3m", ".s7z", ".scpt", ".sgi", ".shar", ".sil", ".smv",
+ ".so", ".sub", ".swf", ".tar", ".tbz2", ".tga", ".tgz", ".tif", ".tiff", ".tlz", ".ts", ".ttf", ".uvh", ".uvi",
+ ".uvm", ".uvp", ".uvs", ".uvu", ".viv", ".vob", ".war", ".wav", ".wax", ".wbmp", ".wdp", ".weba", ".webm", ".webp",
+ ".whl", ".wm", ".wma", ".wmv", ".wmx", ".woff", ".woff2", ".wvx", ".xbm", ".xif", ".xm", ".xpi", ".xpm", ".xwd",
+ ".xz", ".z", ".zip", ".zipx"
])
PYPELINE_EXTENSIONS = frozenset(utils.MARKDOWN_EXTENSIONS + ['.rst'])
@@ -895,7 +897,7 @@ class MergeRequest(VersionedArtifact, ActivityObject):
'state': {'$in': ['busy', 'complete', 'error', 'ready']}, # needed to use index
'task_name': 'allura.tasks.repo_tasks.merge',
'args': [self._id],
- 'time_queue': {'$gt': datetime.utcnow() - timedelta(days=1)}, # constrain on index further
+ 'time_queue': {'$gt': datetime.utcnow() - timedelta(days=1)}, # constrain on index further
}).sort('_id', -1).limit(1).first()
if task:
return task.state
@@ -906,7 +908,7 @@ class MergeRequest(VersionedArtifact, ActivityObject):
'state': {'$in': ['busy', 'complete', 'error', 'ready']}, # needed to use index
'task_name': 'allura.tasks.repo_tasks.can_merge',
'args': [self._id],
- 'time_queue': {'$gt': datetime.utcnow() - timedelta(days=1)}, # constrain on index further
+ 'time_queue': {'$gt': datetime.utcnow() - timedelta(days=1)}, # constrain on index further
}).sort('_id', -1).limit(1).first()
if task:
return task.state
http://git-wip-us.apache.org/repos/asf/allura/blob/f2bd03c7/Allura/allura/tests/functional/test_auth.py
----------------------------------------------------------------------
diff --git a/Allura/allura/tests/functional/test_auth.py b/Allura/allura/tests/functional/test_auth.py
index 388be1a..5ad86ea 100644
--- a/Allura/allura/tests/functional/test_auth.py
+++ b/Allura/allura/tests/functional/test_auth.py
@@ -1063,7 +1063,7 @@ class TestPreferences(TestController):
weekday=weekday2,
starttime=starttime2.strftime('%H:%M'),
endtime=endtime2.strftime('%H:%M'),
- _session_id=self.app.cookies['_session_id'],
+ _session_id=self.app.cookies['_session_id'],
))
user = M.User.query.get(username='test-admin')
timeslot2dict = dict(week_day=weekday2,
@@ -1159,14 +1159,14 @@ class TestPreferences(TestController):
skill_cat = M.TroveCategory.query.get(show_as_skill=True)
level = 'low'
comment = 'test comment'
- result = self.app.get('/auth/user_info/skills/')
- r = self.app.post('/auth/user_info/skills/save_skill',
- params=dict(
- level=level,
- comment=comment,
- selected_skill=str(skill_cat.trove_cat_id),
- _session_id=self.app.cookies['_session_id'],
- ))
+ self.app.get('/auth/user_info/skills/')
+ self.app.post('/auth/user_info/skills/save_skill',
+ params=dict(
+ level=level,
+ comment=comment,
+ selected_skill=str(skill_cat.trove_cat_id),
+ _session_id=self.app.cookies['_session_id'],
+ ))
user = M.User.query.get(username='test-admin')
skilldict = dict(category_id=skill_cat._id,
comment=comment, level=level)
@@ -1175,14 +1175,14 @@ class TestPreferences(TestController):
# Add again the same skill
level = 'medium'
comment = 'test comment 2'
- result = self.app.get('/auth/user_info/skills/')
- r = self.app.post('/auth/user_info/skills/save_skill',
- params=dict(
- level=level,
- comment=comment,
- selected_skill=str(skill_cat.trove_cat_id),
- _session_id=self.app.cookies['_session_id'],
- ))
+ self.app.get('/auth/user_info/skills/')
+ self.app.post('/auth/user_info/skills/save_skill',
+ params=dict(
+ level=level,
+ comment=comment,
+ selected_skill=str(skill_cat.trove_cat_id),
+ _session_id=self.app.cookies['_session_id'],
+ ))
user = M.User.query.get(username='test-admin')
skilldict = dict(category_id=skill_cat._id,
comment=comment, level=level)
@@ -1191,13 +1191,13 @@ class TestPreferences(TestController):
# Add an invalid skill
level2 = 'not a level'
comment2 = 'test comment 2'
- r = self.app.post('/auth/user_info/skills/save_skill',
- params=dict(
- level=level2,
- comment=comment2,
- selected_skill=str(skill_cat.trove_cat_id),
- _session_id=self.app.cookies['_session_id'],
- ))
+ self.app.post('/auth/user_info/skills/save_skill',
+ params=dict(
+ level=level2,
+ comment=comment2,
+ selected_skill=str(skill_cat.trove_cat_id),
+ _session_id=self.app.cookies['_session_id'],
+ ))
user = M.User.query.get(username='test-admin')
# Check that everything is as it was before
assert len(user.skills) == 1 and skilldict in user.skills
@@ -1450,13 +1450,13 @@ class TestOAuth(TestController):
def test_interactive(self, Request, Server):
M.OAuthConsumerToken.consumer = mock.Mock()
user = M.User.by_username('test-admin')
- consumer_token = M.OAuthConsumerToken(
+ M.OAuthConsumerToken(
api_key='api_key',
user_id=user._id,
description='ctok_desc',
)
ThreadLocalORMSession.flush_all()
- req = Request.from_request.return_value = {
+ Request.from_request.return_value = {
'oauth_consumer_key': 'api_key',
'oauth_callback': 'http://my.domain.com/callback',
}
@@ -1467,7 +1467,7 @@ class TestOAuth(TestController):
r = r.forms[0].submit('yes')
assert r.location.startswith('http://my.domain.com/callback')
pin = parse_qs(urlparse(r.location).query)['oauth_verifier'][0]
- req = Request.from_request.return_value = {
+ Request.from_request.return_value = {
'oauth_consumer_key': 'api_key',
'oauth_token': rtok,
'oauth_verifier': pin,
@@ -1502,10 +1502,10 @@ class TestOAuth(TestController):
@mock.patch('allura.controllers.rest.oauth.Server')
@mock.patch('allura.controllers.rest.oauth.Request')
def test_request_token_no_consumer_token(self, Request, Server):
- req = Request.from_request.return_value = {
+ Request.from_request.return_value = {
'oauth_consumer_key': 'api_key'}
- r = self.app.post('/rest/oauth/request_token',
- params={'key': 'value'}, status=403)
+ self.app.post('/rest/oauth/request_token',
+ params={'key': 'value'}, status=403)
@mock.patch('allura.controllers.rest.oauth.Server')
@mock.patch('allura.controllers.rest.oauth.Request')
@@ -1513,12 +1513,12 @@ class TestOAuth(TestController):
Server().verify_request.side_effect = ValueError
M.OAuthConsumerToken.consumer = mock.Mock()
user = M.User.by_username('test-user')
- consumer_token = M.OAuthConsumerToken(
+ M.OAuthConsumerToken(
api_key='api_key',
user_id=user._id,
)
ThreadLocalORMSession.flush_all()
- req = Request.from_request.return_value = {'oauth_consumer_key': 'api_key'}
+ Request.from_request.return_value = {'oauth_consumer_key': 'api_key'}
self.app.post('/rest/oauth/request_token', params={'key': 'value'}, status=403)
def test_authorize_ok(self):
@@ -1528,7 +1528,7 @@ class TestOAuth(TestController):
user_id=user._id,
description='ctok_desc',
)
- rtok = M.OAuthRequestToken(
+ M.OAuthRequestToken(
api_key='api_key',
consumer_token_id=ctok._id,
callback='oob',
@@ -1549,7 +1549,7 @@ class TestOAuth(TestController):
user_id=user._id,
description='ctok_desc',
)
- rtok = M.OAuthRequestToken(
+ M.OAuthRequestToken(
api_key='api_key',
consumer_token_id=ctok._id,
callback='oob',
@@ -1567,7 +1567,7 @@ class TestOAuth(TestController):
user_id=user._id,
description='ctok_desc',
)
- rtok = M.OAuthRequestToken(
+ M.OAuthRequestToken(
api_key='api_key',
consumer_token_id=ctok._id,
callback='oob',
@@ -1584,7 +1584,7 @@ class TestOAuth(TestController):
user_id=user._id,
description='ctok_desc',
)
- rtok = M.OAuthRequestToken(
+ M.OAuthRequestToken(
api_key='api_key',
consumer_token_id=ctok._id,
callback='http://my.domain.com/callback',
@@ -1601,7 +1601,7 @@ class TestOAuth(TestController):
user_id=user._id,
description='ctok_desc',
)
- rtok = M.OAuthRequestToken(
+ M.OAuthRequestToken(
api_key='api_key',
consumer_token_id=ctok._id,
callback='http://my.domain.com/callback?myparam=foo',
@@ -1613,7 +1613,7 @@ class TestOAuth(TestController):
@mock.patch('allura.controllers.rest.oauth.Request')
def test_access_token_no_consumer(self, Request):
- req = Request.from_request.return_value = {
+ Request.from_request.return_value = {
'oauth_consumer_key': 'api_key',
'oauth_token': 'api_key',
'oauth_verifier': 'good',
@@ -1622,13 +1622,13 @@ class TestOAuth(TestController):
@mock.patch('allura.controllers.rest.oauth.Request')
def test_access_token_no_request(self, Request):
- req = Request.from_request.return_value = {
+ Request.from_request.return_value = {
'oauth_consumer_key': 'api_key',
'oauth_token': 'api_key',
'oauth_verifier': 'good',
}
user = M.User.by_username('test-admin')
- ctok = M.OAuthConsumerToken(
+ M.OAuthConsumerToken(
api_key='api_key',
user_id=user._id,
description='ctok_desc',
@@ -1638,7 +1638,7 @@ class TestOAuth(TestController):
@mock.patch('allura.controllers.rest.oauth.Request')
def test_access_token_bad_pin(self, Request):
- req = Request.from_request.return_value = {
+ Request.from_request.return_value = {
'oauth_consumer_key': 'api_key',
'oauth_token': 'api_key',
'oauth_verifier': 'bad',
@@ -1649,7 +1649,7 @@ class TestOAuth(TestController):
user_id=user._id,
description='ctok_desc',
)
- rtok = M.OAuthRequestToken(
+ M.OAuthRequestToken(
api_key='api_key',
consumer_token_id=ctok._id,
callback='http://my.domain.com/callback?myparam=foo',
@@ -1662,7 +1662,7 @@ class TestOAuth(TestController):
@mock.patch('allura.controllers.rest.oauth.Server')
@mock.patch('allura.controllers.rest.oauth.Request')
def test_access_token_bad_sig(self, Request, Server):
- req = Request.from_request.return_value = {
+ Request.from_request.return_value = {
'oauth_consumer_key': 'api_key',
'oauth_token': 'api_key',
'oauth_verifier': 'good',
@@ -1673,7 +1673,7 @@ class TestOAuth(TestController):
user_id=user._id,
description='ctok_desc',
)
- rtok = M.OAuthRequestToken(
+ M.OAuthRequestToken(
api_key='api_key',
consumer_token_id=ctok._id,
callback='http://my.domain.com/callback?myparam=foo',
@@ -1687,7 +1687,7 @@ class TestOAuth(TestController):
@mock.patch('allura.controllers.rest.oauth.Server')
@mock.patch('allura.controllers.rest.oauth.Request')
def test_access_token_ok(self, Request, Server):
- req = Request.from_request.return_value = {
+ Request.from_request.return_value = {
'oauth_consumer_key': 'api_key',
'oauth_token': 'api_key',
'oauth_verifier': 'good',
@@ -1698,7 +1698,7 @@ class TestOAuth(TestController):
user_id=user._id,
description='ctok_desc',
)
- rtok = M.OAuthRequestToken(
+ M.OAuthRequestToken(
api_key='api_key',
consumer_token_id=ctok._id,
callback='http://my.domain.com/callback?myparam=foo',
@@ -1735,8 +1735,8 @@ class TestDisableAccount(TestController):
def test_bad_password(self):
self.app.get('/') # establish session
- r = self.app.post('/auth/disable/do_disable',{'password': 'bad',
- '_session_id': self.app.cookies['_session_id'],})
+ r = self.app.post('/auth/disable/do_disable', {'password': 'bad',
+ '_session_id': self.app.cookies['_session_id'], })
assert_in('Invalid password', r)
user = M.User.by_username('test-admin')
assert_equal(user.disabled, False)
@@ -1744,7 +1744,7 @@ class TestDisableAccount(TestController):
def test_disable(self):
self.app.get('/') # establish session
r = self.app.post('/auth/disable/do_disable', {'password': 'foo',
- '_session_id': self.app.cookies['_session_id'],})
+ '_session_id': self.app.cookies['_session_id'], })
assert_equal(r.status_int, 302)
assert_equal(r.location, 'http://localhost/')
flash = json.loads(self.webflash(r))
@@ -1866,8 +1866,8 @@ class TestPasswordExpire(TestController):
self.assert_redirects()
user = M.User.by_username('test-user')
user.set_tool_data('AuthPasswordReset',
- hash="generated_hash_value",
- hash_expiry="04-08-2020")
+ hash="generated_hash_value",
+ hash_expiry="04-08-2020")
hash = user.get_tool_data('AuthPasswordReset', 'hash')
hash_expiry = user.get_tool_data('AuthPasswordReset', 'hash_expiry')
assert_equal(hash, 'generated_hash_value')
@@ -1890,7 +1890,6 @@ class TestPasswordExpire(TestController):
assert_equal(hash, '')
assert_equal(hash_expiry, '')
-
def check_validation(self, oldpw, pw, pw2):
user = M.User.by_username('test-user')
old_update_time = user.last_password_updated
@@ -1950,7 +1949,6 @@ class TestPasswordExpire(TestController):
class TestCSRFProtection(TestController):
-
def test_blocks_invalid(self):
# so test-admin isn't automatically logged in for all requests
self.app.extra_environ = {'disable_auth_magic': 'True'}
@@ -1980,4 +1978,3 @@ class TestCSRFProtection(TestController):
def test_token_present_on_first_request(self):
r = self.app.get('/auth/')
assert_true(r.form['_session_id'].value)
-
http://git-wip-us.apache.org/repos/asf/allura/blob/f2bd03c7/Allura/allura/tests/functional/test_discuss.py
----------------------------------------------------------------------
diff --git a/Allura/allura/tests/functional/test_discuss.py b/Allura/allura/tests/functional/test_discuss.py
index 0063cb8..6f8b8a7 100644
--- a/Allura/allura/tests/functional/test_discuss.py
+++ b/Allura/allura/tests/functional/test_discuss.py
@@ -66,9 +66,8 @@ class TestDiscuss(TestController):
params = dict()
inputs = f.findAll('input')
for field in inputs:
- if field.has_key('name'):
- params[field['name']] = field.has_key(
- 'value') and field['value'] or ''
+ if field.has_key('name'): # nopep8 - beautifulsoup3 actually uses has_key
+ params[field['name']] = field.get('value') or ''
params[f.find('textarea')['name']] = text
r = self.app.post(f['action'].encode('utf-8'), params=params,
headers={'Referer': thread_link.encode("utf-8")},
@@ -91,9 +90,8 @@ class TestDiscuss(TestController):
params = dict()
inputs = post_form.findAll('input')
for field in inputs:
- if field.has_key('name'):
- params[field['name']] = field.has_key(
- 'value') and field['value'] or ''
+ if field.has_key('name'): # nopep8 - beautifulsoup3 actually uses has_key
+ params[field['name']] = field.get('value') or ''
params[post_form.find('textarea')['name']] = 'This is a new post'
r = self.app.post(post_link,
params=params,
@@ -106,9 +104,8 @@ class TestDiscuss(TestController):
params = dict()
inputs = post_form.findAll('input')
for field in inputs:
- if field.has_key('name'):
- params[field['name']] = field.has_key(
- 'value') and field['value'] or ''
+ if field.has_key('name'): # nopep8 - beautifulsoup3 actually uses has_key
+ params[field['name']] = field.get('value') or ''
params[post_form.find('textarea')['name']] = 'Tis a reply'
r = self.app.post(post_link + 'reply',
params=params,
@@ -218,9 +215,8 @@ class TestDiscuss(TestController):
params = dict()
inputs = reply_form.findAll('input')
for field in inputs:
- if field.has_key('name'):
- params[field['name']] = field.has_key(
- 'value') and field['value'] or ''
+ if field.has_key('name'): # nopep8 - beautifulsoup3 actually uses has_key
+ params[field['name']] = field.get('value') or ''
params[reply_form.find('textarea')['name']] = 'zzz'
self.app.post(post_link, params)
assert create_activity.call_count == 1, create_activity.call_count
@@ -259,9 +255,8 @@ class TestAttachment(TestController):
params = dict()
inputs = f.findAll('input')
for field in inputs:
- if field.has_key('name'):
- params[field['name']] = field.has_key(
- 'value') and field['value'] or ''
+ if field.has_key('name'): # nopep8 - beautifulsoup3 actually uses has_key
+ params[field['name']] = field.get('value') or ''
params[f.find('textarea')['name']] = 'Test Post'
r = self.app.post(f['action'].encode('utf-8'), params=params,
headers={'Referer': self.thread_link})
@@ -299,9 +294,8 @@ class TestAttachment(TestController):
inputs = post_form.findAll('input')
for field in inputs:
- if field.has_key('name') and (field['name'] != 'file_info'):
- params[field['name']] = field.has_key(
- 'value') and field['value'] or ''
+ if field.has_key('name') and field['name'] != 'file_info': # nopep8 - beautifulsoup3 actually uses has_key
+ params[field['name']] = field.get('value') or ''
params[post_form.find('textarea')['name']] = 'Reply'
r = self.app.post(self.post_link + 'reply',
params=params,
http://git-wip-us.apache.org/repos/asf/allura/blob/f2bd03c7/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 8b6a74f..825b9c5 100644
--- a/Allura/allura/tests/functional/test_neighborhood.py
+++ b/Allura/allura/tests/functional/test_neighborhood.py
@@ -37,7 +37,6 @@ from alluratest.controller import setup_trove_categories
class TestNeighborhood(TestController):
-
def test_home_project(self):
r = self.app.get('/adobe/wiki/')
assert r.location.endswith('/adobe/wiki/Home/')
@@ -119,9 +118,9 @@ class TestNeighborhood(TestController):
def test_prohibited_tools(self):
self.app.post('/p/_admin/update',
- params=dict(name='Projects',
- prohibited_tools='wiki, tickets'),
- extra_environ=dict(username='root'))
+ params=dict(name='Projects',
+ prohibited_tools='wiki, tickets'),
+ extra_environ=dict(username='root'))
r = self.app.get('/p/_admin/overview', extra_environ=dict(username='root'))
assert 'wiki, tickets' in r
@@ -132,7 +131,7 @@ class TestNeighborhood(TestController):
r = self.app.post('/p/_admin/update',
params=dict(name='Projects',
- prohibited_tools='wiki, test'),
+ prohibited_tools='wiki, test'),
extra_environ=dict(username='root'))
assert 'error' in self.webflash(r), self.webflash(r)
@@ -360,8 +359,8 @@ class TestNeighborhood(TestController):
assert '/*projecttitlecolor*/.project_title{color:green;}' in neighborhood.css
assert '/*barontop*/.pad h2.colored {background-color:#555555; background-image: none;}' in neighborhood.css
assert '/*titlebarbackground*/.pad h2.title{background-color:#333; background-image: none;}' in neighborhood.css
- assert "/*titlebarcolor*/.pad h2.title, .pad h2.title small a {color:#444;} "\
- ".pad h2.dark small b.ico {background-image: "\
+ assert "/*titlebarcolor*/.pad h2.title, .pad h2.title small a {color:#444;} " \
+ ".pad h2.dark small b.ico {background-image: " \
"url('/nf/_ew_/theme/allura/images/neo-icon-set-ffffff-256x350.png');}" in neighborhood.css
def test_max_projects(self):
@@ -646,8 +645,8 @@ class TestNeighborhood(TestController):
def test_project_template(self):
setup_trove_categories()
icon_url = 'file://' + \
- os.path.join(allura.__path__[0], 'nf', 'allura',
- 'images', 'neo-icon-set-454545-256x350.png')
+ 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
"permissions": ["read"],
@@ -669,7 +668,9 @@ class TestNeighborhood(TestController):
"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",
@@ -716,22 +717,14 @@ class TestNeighborhood(TestController):
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]
+ 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/',
@@ -803,7 +796,7 @@ class TestNeighborhood(TestController):
},
"tool_order":["wiki","admin"],
- }""" ),
+ }"""),
extra_environ=dict(username='root'))
neighborhood = M.Neighborhood.query.get(name='Adobe')
neighborhood.anchored_tools = 'wiki:Wiki'
@@ -834,7 +827,8 @@ class TestNeighborhood(TestController):
r = self.app.get(
'/p/check_names?neighborhood=Projects&project_unixname=%s' % name)
assert_equal(
- r.json, {'project_unixname': 'Please use only small letters, numbers, and dashes 3-15 characters long.'})
+ r.json,
+ {'project_unixname': 'Please use only small letters, numbers, and dashes 3-15 characters long.'})
r = self.app.get(
'/p/check_names?neighborhood=Projects&project_unixname=mymoz')
assert_equal(r.json, {})
@@ -894,8 +888,8 @@ class TestNeighborhood(TestController):
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',
- url='http://award.org', comment='Winner!'),
+ params=dict(grant='FOO', recipient='adobe-1',
+ url='http://award.org', comment='Winner!'),
extra_environ=dict(username='root'))
r = self.app.get('/adobe/_admin/accolades',
extra_environ=dict(username='root'))
@@ -959,7 +953,6 @@ class TestNeighborhood(TestController):
class TestPhoneVerificationOnProjectRegistration(TestController):
-
def test_phone_verification_fragment_renders(self):
self.app.get('/p/phone_verification_fragment', status=200)
self.app.get('/adobe/phone_verification_fragment', status=200)
http://git-wip-us.apache.org/repos/asf/allura/blob/f2bd03c7/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 903cda7..1a2006d 100644
--- a/Allura/allura/tests/functional/test_rest.py
+++ b/Allura/allura/tests/functional/test_rest.py
@@ -249,9 +249,9 @@ class TestRestHome(TestRestApiBase):
assert_equal(r.json['result'], False)
def test_project_has_access_no_params(self):
- r = self.api_get('/rest/p/test/has_access', status=404)
- r = self.api_get('/rest/p/test/has_access?user=root', status=404)
- r = self.api_get('/rest/p/test/has_access?perm=read', status=404)
+ self.api_get('/rest/p/test/has_access', status=404)
+ self.api_get('/rest/p/test/has_access?user=root', status=404)
+ self.api_get('/rest/p/test/has_access?perm=read', status=404)
def test_project_has_access_unknown_params(self):
"""Unknown user and/or permission always False for has_access API"""
http://git-wip-us.apache.org/repos/asf/allura/blob/f2bd03c7/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 4425ace..14c28bf 100644
--- a/Allura/allura/tests/functional/test_user_profile.py
+++ b/Allura/allura/tests/functional/test_user_profile.py
@@ -194,9 +194,9 @@ class TestUserProfileHasAccessAPI(TestRestApiBase):
@td.with_user_project('test-admin')
def test_has_access_no_params(self):
- r = self.api_get('/rest/u/test-admin/profile/has_access', status=404)
- r = self.api_get('/rest/u/test-admin/profile/has_access?user=root', status=404)
- r = self.api_get('/rest/u/test-admin/profile/has_access?perm=read', status=404)
+ self.api_get('/rest/u/test-admin/profile/has_access', status=404)
+ self.api_get('/rest/u/test-admin/profile/has_access?user=root', status=404)
+ self.api_get('/rest/u/test-admin/profile/has_access?perm=read', status=404)
@td.with_user_project('test-admin')
def test_has_access_unknown_params(self):
http://git-wip-us.apache.org/repos/asf/allura/blob/f2bd03c7/Allura/allura/tests/test_globals.py
----------------------------------------------------------------------
diff --git a/Allura/allura/tests/test_globals.py b/Allura/allura/tests/test_globals.py
index 0203969..bb5d80e 100644
--- a/Allura/allura/tests/test_globals.py
+++ b/Allura/allura/tests/test_globals.py
@@ -48,6 +48,7 @@ from allura.tests import decorators as td
from forgewiki import model as WM
from forgeblog import model as BM
+
def squish_spaces(text):
return re.sub(r'\s+', ' ', text)
@@ -171,7 +172,9 @@ def test_macro_gittip_button():
with h.push_config(c, project=p_test):
r = g.markdown_wiki.convert('[[gittip_button username=test]]')
assert_equal(
- r, u'<div class="markdown_content"><p><iframe height="22pt" src="https://www.gittip.com/test/widget.html" style="border: 0; margin: 0; padding: 0;" width="48pt"></iframe>\n</p></div>')
+ r,
+ u'<div class="markdown_content"><p><iframe height="22pt" src="https://www.gittip.com/test/widget.html" '
+ u'style="border: 0; margin: 0; padding: 0;" width="48pt"></iframe>\n</p></div>')
def test_macro_neighborhood_feeds():
@@ -213,7 +216,7 @@ def test_macro_members():
p_test.add_user(M.User.by_username('test-user'), ['Developer'])
p_test.add_user(M.User.by_username('test-user-0'), ['Member'])
ThreadLocalORMSession.flush_all()
- r = g.markdown_wiki.convert('[[members limit=2]]').replace('\t','').replace('\n','')
+ r = g.markdown_wiki.convert('[[members limit=2]]').replace('\t', '').replace('\n', '')
assert_equal(r,
'<div class="markdown_content"><h6>Project Members:</h6>'
'<ul class="md-users-list">'
@@ -258,7 +261,7 @@ def test_macro_project_admins_one_br():
with h.push_config(c, project=p_test):
r = g.markdown_wiki.convert('[[project_admins]]\n[[download_button]]')
- assert not '</a><br/><br/><a href=' in r, r
+ assert '</a><br/><br/><a href=' not in r, r
assert '</a></li><li><a href=' in r, r
@@ -293,6 +296,7 @@ def test_macro_include_no_extra_br():
<p></p></div>'''
assert_equal(squish_spaces(html), squish_spaces(expected_html))
+
@with_setup(setUp, tearDown)
@td.with_wiki
@td.with_tool('test', 'Wiki', 'wiki2')
@@ -330,11 +334,13 @@ def test_macro_include_permissions():
@patch('oembed.OEmbedEndpoint.fetch')
def test_macro_embed(oembed_fetch):
oembed_fetch.return_value = {
- "html": '<iframe width="480" height="270" src="http://www.youtube.com/embed/kOLpSPEA72U?feature=oembed" frameborder="0" allowfullscreen></iframe>)',
+ "html": '<iframe width="480" height="270" src="http://www.youtube.com/embed/kOLpSPEA72U?feature=oembed" '
+ 'frameborder="0" allowfullscreen></iframe>)',
"title": "Nature's 3D Printer: MIND BLOWING Cocoon in Rainforest - Smarter Every Day 94",
}
r = g.markdown_wiki.convert('[[embed url=http://www.youtube.com/watch?v=kOLpSPEA72U]]')
- assert_in('<div class="grid-20"><iframe height="270" src="https://www.youtube.com/embed/kOLpSPEA72U?feature=oembed" width="480"></iframe></div>',
+ assert_in('<div class="grid-20"><iframe height="270" '
+ 'src="https://www.youtube.com/embed/kOLpSPEA72U?feature=oembed" width="480"></iframe></div>',
r.replace('\n', ''))
@@ -484,13 +490,20 @@ def test_markdown_invalid_tagslash():
r = g.markdown.convert('<div/onload><img src=x onerror=alert(document.cookie)>')
assert_not_in('onerror', r)
+
def test_markdown_invalid_script_in_link():
r = g.markdown.convert('[xss](http://"><a onmouseover=prompt(document.domain)>xss</a>)')
- assert_equal('''<div class="markdown_content"><p><a class="" href='http://"><a%20onmouseover=prompt(document.domain)>xss</a>' rel="nofollow">xss</a></p></div>''', r)
+ assert_equal('<div class="markdown_content"><p><a class="" '
+ '''href='http://"><a%20onmouseover=prompt(document.domain)>xss</a>' '''
+ 'rel="nofollow">xss</a></p></div>', r)
+
def test_markdown_invalid_script_in_link2():
r = g.markdown.convert('[xss](http://"><img src=x onerror=alert(document.cookie)>)')
- assert_equal('''<div class="markdown_content"><p><a class="" href='http://"><img%20src=x%20onerror=alert(document.cookie)>' rel="nofollow">xss</a></p></div>''', r)
+ assert_equal('<div class="markdown_content"><p><a class="" '
+ '''href='http://"><img%20src=x%20onerror=alert(document.cookie)>' '''
+ 'rel="nofollow">xss</a></p></div>', r)
+
@td.with_wiki
def test_macro_include():
@@ -629,7 +642,8 @@ def test_hideawards_macro():
with h.push_context(p_nbhd.neighborhood_project._id):
r = g.markdown_wiki.convert('[[projects]]')
- assert_in('<div class="feature"> <a href="http://award.org" rel="nofollow" title="Winner!">Award short</a> </div>',
+ assert_in('<div class="feature"> <a href="http://award.org" rel="nofollow" title="Winner!">'
+ 'Award short</a> </div>',
squish_spaces(r))
r = g.markdown_wiki.convert('[[projects show_awards_banner=False]]')
@@ -642,7 +656,7 @@ def get_project_names(r):
"""
# projects short names are in h2 elements without any attributes
# there is one more h2 element, but it has `class` attribute
- #re_proj_names = re.compile('<h2><a[^>]>(.+)<\/a><\/h2>')
+ # re_proj_names = re.compile('<h2><a[^>]>(.+)<\/a><\/h2>')
re_proj_names = re.compile('<h2><a[^>]+>(.+)<\/a><\/h2>')
return [e for e in re_proj_names.findall(r)]
@@ -754,8 +768,10 @@ class TestHandlePaging(unittest.TestCase):
def setUp(self):
prefs = {}
c.user = Mock()
+
def get_pref(name):
return prefs.get(name)
+
def set_pref(name, value):
prefs[name] = value
c.user.get_pref = get_pref
http://git-wip-us.apache.org/repos/asf/allura/blob/f2bd03c7/Allura/allura/tests/test_utils.py
----------------------------------------------------------------------
diff --git a/Allura/allura/tests/test_utils.py b/Allura/allura/tests/test_utils.py
index dd67ded..413165a 100644
--- a/Allura/allura/tests/test_utils.py
+++ b/Allura/allura/tests/test_utils.py
@@ -22,7 +22,6 @@ import time
import unittest
import datetime as dt
from ming.odm import session
-import model as M
from os import path
from webob import Request
@@ -169,12 +168,12 @@ class TestTruthyCallable(unittest.TestCase):
return utils.TruthyCallable(predicate)
true_predicate = wrapper_func(True)
false_predicate = wrapper_func(False)
- assert true_predicate(True) == True
- assert false_predicate(False) == False
- assert true_predicate() == True
- assert false_predicate() == False
- assert bool(true_predicate) == True
- assert bool(false_predicate) == False
+ assert true_predicate(True) is True
+ assert false_predicate(False) is False
+ assert true_predicate() is True
+ assert false_predicate() is False
+ assert bool(true_predicate) is True
+ assert bool(false_predicate) is False
class TestCaseInsensitiveDict(unittest.TestCase):
@@ -260,7 +259,8 @@ class TestHTMLSanitizer(unittest.TestCase):
assert_equal(self.simple_tag_list(p), ['div', 'div'])
def test_html_sanitizer_youtube_iframe(self):
- p = utils.ForgeHTMLSanitizer('<div><iframe src="https://www.youtube.com/embed/kOLpSPEA72U?feature=oembed"></iframe></div>')
+ p = utils.ForgeHTMLSanitizer(
+ '<div><iframe src="https://www.youtube.com/embed/kOLpSPEA72U?feature=oembed"></iframe></div>')
assert_equal(
self.simple_tag_list(p), ['div', 'iframe', 'div'])
@@ -272,6 +272,7 @@ def test_ip_address():
assert_equal(utils.ip_address(req),
'1.2.3.4')
+
def test_ip_address_header():
req = Mock()
req.remote_addr = '1.2.3.4'
@@ -280,6 +281,7 @@ def test_ip_address_header():
assert_equal(utils.ip_address(req),
'5.6.7.8')
+
def test_ip_address_header_not_set():
req = Mock()
req.remote_addr = '1.2.3.4'
@@ -329,5 +331,5 @@ def test_phone_number_hash():
def test_skip_mod_date():
with utils.skip_mod_date(M.Artifact):
- assert getattr(session(M.Artifact)._get(), 'skip_mod_date', None) == True
- assert getattr(session(M.Artifact)._get(), 'skip_mod_date', None) == False
\ No newline at end of file
+ assert getattr(session(M.Artifact)._get(), 'skip_mod_date', None) is True
+ assert getattr(session(M.Artifact)._get(), 'skip_mod_date', None) is False
http://git-wip-us.apache.org/repos/asf/allura/blob/f2bd03c7/Allura/allura/websetup/bootstrap.py
----------------------------------------------------------------------
diff --git a/Allura/allura/websetup/bootstrap.py b/Allura/allura/websetup/bootstrap.py
index 33a3f3c..8bc04fe 100644
--- a/Allura/allura/websetup/bootstrap.py
+++ b/Allura/allura/websetup/bootstrap.py
@@ -22,7 +22,6 @@ import os
import sys
import logging
import shutil
-from collections import defaultdict
from textwrap import dedent
import tg
@@ -110,7 +109,7 @@ def bootstrap(command, conf, vars):
log.info('Initializing search')
log.info('Registering root user & default neighborhoods')
- anonymous = M.User(
+ M.User(
_id=None,
username='*anonymous',
display_name='Anonymous')
@@ -172,7 +171,8 @@ def bootstrap(command, conf, vars):
[[projects show_total=yes]]
'''))
set_nbhd_wiki_content(p_users, dedent('''
- This is the "Users" neighborhood. All users automatically get a user-project created for them, using their username.
+ This is the "Users" neighborhood.
+ All users automatically get a user-project created for them, using their username.
[Neighborhood administration](/u/admin)
@@ -208,19 +208,19 @@ def bootstrap(command, conf, vars):
make_user('Test User %d' % unum)
log.info('Creating basic project categories')
- cat1 = M.ProjectCategory(name='clustering', label='Clustering')
+ M.ProjectCategory(name='clustering', label='Clustering')
cat2 = M.ProjectCategory(name='communications', label='Communications')
- cat2_1 = M.ProjectCategory(
+ M.ProjectCategory(
name='synchronization', label='Synchronization', parent_id=cat2._id)
- cat2_2 = M.ProjectCategory(
+ M.ProjectCategory(
name='streaming', label='Streaming', parent_id=cat2._id)
- cat2_3 = M.ProjectCategory(name='fax', label='Fax', parent_id=cat2._id)
- cat2_4 = M.ProjectCategory(name='bbs', label='BBS', parent_id=cat2._id)
+ M.ProjectCategory(name='fax', label='Fax', parent_id=cat2._id)
+ M.ProjectCategory(name='bbs', label='BBS', parent_id=cat2._id)
cat3 = M.ProjectCategory(name='database', label='Database')
- cat3_1 = M.ProjectCategory(
+ M.ProjectCategory(
name='front_ends', label='Front-Ends', parent_id=cat3._id)
- cat3_2 = M.ProjectCategory(
+ M.ProjectCategory(
name='engines_servers', label='Engines/Servers', parent_id=cat3._id)
if create_test_data:
@@ -244,12 +244,12 @@ def bootstrap(command, conf, vars):
p_projects.add_user(u_admin, ['Admin'])
p_users.add_user(u_admin, ['Admin'])
- p_allura = n_projects.register_project('allura', u_admin, 'Allura')
- u1 = make_user('Test User')
- p_adobe1 = n_adobe.register_project('adobe-1', u_admin, 'Adobe project 1')
+ n_projects.register_project('allura', u_admin, 'Allura')
+ make_user('Test User')
+ n_adobe.register_project('adobe-1', u_admin, 'Adobe project 1')
p_adobe.add_user(u_admin, ['Admin'])
p0 = n_projects.register_project('test', u_admin, 'Test Project')
- p1 = n_projects.register_project('test2', u_admin, 'Test 2')
+ n_projects.register_project('test2', u_admin, 'Test 2')
p0._extra_tool_status = ['alpha', 'beta']
sess = session(M.Neighborhood) # all the sessions are the same
@@ -279,11 +279,11 @@ def bootstrap(command, conf, vars):
log.info('Registering initial apps')
with h.push_config(c, user=u_admin):
p0.install_apps([{'ep_name': ep_name}
- for ep_name, app in g.entry_points['tool'].iteritems()
- if app._installable(tool_name=ep_name,
- nbhd=n_projects,
- project_tools=[])
- ])
+ for ep_name, app in g.entry_points['tool'].iteritems()
+ if app._installable(tool_name=ep_name,
+ nbhd=n_projects,
+ project_tools=[])
+ ])
ThreadLocalORMSession.flush_all()
ThreadLocalORMSession.close_all()
[2/3] allura git commit: [#7980] Fix many pep8 / pyflakes and related
issues
Posted by br...@apache.org.
http://git-wip-us.apache.org/repos/asf/allura/blob/f2bd03c7/Allura/setup.cfg
----------------------------------------------------------------------
diff --git a/Allura/setup.cfg b/Allura/setup.cfg
index a835b71..0298938 100644
--- a/Allura/setup.cfg
+++ b/Allura/setup.cfg
@@ -15,6 +15,12 @@
# specific language governing permissions and limitations
# under the License.
+[pep8]
+max-line-length = 119
+
+[flake8]
+max-line-length = 119
+
[egg_info]
tag_build = dev0
http://git-wip-us.apache.org/repos/asf/allura/blob/f2bd03c7/ForgeActivity/forgeactivity/tests/functional/test_rest.py
----------------------------------------------------------------------
diff --git a/ForgeActivity/forgeactivity/tests/functional/test_rest.py b/ForgeActivity/forgeactivity/tests/functional/test_rest.py
index f85639a..8c9e0f5 100644
--- a/ForgeActivity/forgeactivity/tests/functional/test_rest.py
+++ b/ForgeActivity/forgeactivity/tests/functional/test_rest.py
@@ -33,9 +33,9 @@ class TestActivityHasAccessAPI(TestRestApiBase):
config['activitystream.enabled'] = self._enabled
def test_has_access_no_params(self):
- r = self.api_get('/rest/p/test/activity/has_access', status=404)
- r = self.api_get('/rest/p/test/activity/has_access?user=root', status=404)
- r = self.api_get('/rest/p/test/activity/has_access?perm=read', status=404)
+ self.api_get('/rest/p/test/activity/has_access', status=404)
+ self.api_get('/rest/p/test/activity/has_access?user=root', status=404)
+ self.api_get('/rest/p/test/activity/has_access?perm=read', status=404)
def test_has_access_unknown_params(self):
"""Unknown user and/or permission always False for has_access API"""
http://git-wip-us.apache.org/repos/asf/allura/blob/f2bd03c7/ForgeBlog/forgeblog/tests/functional/test_rest.py
----------------------------------------------------------------------
diff --git a/ForgeBlog/forgeblog/tests/functional/test_rest.py b/ForgeBlog/forgeblog/tests/functional/test_rest.py
index 3df73da..e7a9d7b 100644
--- a/ForgeBlog/forgeblog/tests/functional/test_rest.py
+++ b/ForgeBlog/forgeblog/tests/functional/test_rest.py
@@ -214,9 +214,9 @@ class TestBlogApi(TestRestApiBase):
assert_equal(r.json['page'], 2)
def test_has_access_no_params(self):
- r = self.api_get('/rest/p/test/blog/has_access', status=404)
- r = self.api_get('/rest/p/test/blog/has_access?user=root', status=404)
- r = self.api_get('/rest/p/test/blog/has_access?perm=read', status=404)
+ self.api_get('/rest/p/test/blog/has_access', status=404)
+ self.api_get('/rest/p/test/blog/has_access?user=root', status=404)
+ self.api_get('/rest/p/test/blog/has_access?perm=read', status=404)
def test_has_access_unknown_params(self):
"""Unknown user and/or permission always False for has_access API"""
http://git-wip-us.apache.org/repos/asf/allura/blob/f2bd03c7/ForgeDiscussion/forgediscussion/tests/functional/test_forum.py
----------------------------------------------------------------------
diff --git a/ForgeDiscussion/forgediscussion/tests/functional/test_forum.py b/ForgeDiscussion/forgediscussion/tests/functional/test_forum.py
index caad619..c66d5f8 100644
--- a/ForgeDiscussion/forgediscussion/tests/functional/test_forum.py
+++ b/ForgeDiscussion/forgediscussion/tests/functional/test_forum.py
@@ -26,7 +26,7 @@ from email.mime.multipart import MIMEMultipart
import pkg_resources
from pylons import tmpl_context as c
-from nose.tools import assert_equal, assert_in, assert_not_in
+from nose.tools import assert_equal, assert_in, assert_not_in, assert_true, assert_false
import feedparser
from allura import model as M
@@ -147,9 +147,8 @@ class TestForumAsync(TestController):
self.user = M.User.query.get(username='root')
def test_has_access(self):
- assert False == c.app.has_access(M.User.anonymous(), 'testforum')
- assert True == c.app.has_access(
- M.User.query.get(username='root'), 'testforum')
+ assert_false(c.app.has_access(M.User.anonymous(), 'testforum'))
+ assert_true(c.app.has_access(M.User.query.get(username='root'), 'testforum'))
def test_post(self):
self._post('testforum', 'Test Thread', 'Nothing here')
@@ -209,9 +208,8 @@ class TestForumAsync(TestController):
params = dict()
inputs = f.findAll('input')
for field in inputs:
- if field.has_key('name'):
- params[field['name']] = field.has_key(
- 'value') and field['value'] or ''
+ if field.has_key('name'): # nopep8 - beautifulsoup3 actually uses has_key
+ params[field['name']] = field.get('value') or ''
params['subject'] = 'New Subject'
params['text'] = 'Asdf'
r = self.app.post(url, params=params)
@@ -221,9 +219,8 @@ class TestForumAsync(TestController):
params = dict()
inputs = post_form.findAll('input')
for field in inputs:
- if field.has_key('name'):
- params[field['name']] = field.has_key(
- 'value') and field['value'] or ''
+ if field.has_key('name'): # nopep8 - beautifulsoup3 actually uses has_key
+ params[field['name']] = field.get('value') or ''
params[post_form.find('textarea')['name']] = 'text'
r = self.app.post(url + 'reply', params=params)
self._post('testforum', 'Test Reply', 'Nothing here, either',
@@ -317,7 +314,6 @@ class TestForum(TestController):
form[field.name] = 'Test_Description'
return form
-
def test_unicode_name(self):
r = self.app.get('/admin/discussion/forums')
form = r.forms[3]
@@ -375,9 +371,8 @@ class TestForum(TestController):
params = dict()
inputs = f.findAll('input')
for field in inputs:
- if field.has_key('name'):
- params[field['name']] = field.has_key(
- 'value') and field['value'] or ''
+ if field.has_key('name'): # nopep8 - beautifulsoup3 actually uses has_key
+ params[field['name']] = field.get('value') or ''
params[f.find('textarea')['name']] = '1st post in Zero Posts thread'
params[f.find('select')['name']] = 'testforum'
params[f.find('input', {'style': 'width: 90%'})['name']] = 'Test Zero Posts'
@@ -419,8 +414,8 @@ class TestForum(TestController):
params = dict()
inputs = f.findAll('input')
for field in inputs:
- if field.has_key('name'):
- params[field['name']] = field.has_key('value') and field['value'] or ''
+ if field.has_key('name'): # nopep8 - beautifulsoup3 actually uses has_key
+ params[field['name']] = field.get('value') or ''
params[f.find('textarea')['name']] = 'This is a *test thread*'
params[f.find('select')['name']] = 'testforum'
params[f.find('input', {'style': 'width: 90%'})['name']] = 'Test Thread'
@@ -443,8 +438,8 @@ class TestForum(TestController):
params = dict()
inputs = f.findAll('input')
for field in inputs:
- if field.has_key('name'):
- params[field['name']] = field.has_key('value') and field['value'] or ''
+ if field.has_key('name'): # nopep8 - beautifulsoup3 actually uses has_key
+ params[field['name']] = field.get('value') or ''
params[f.find('textarea')['name']] = 'Post text'
params[f.find('select')['name']] = 'testforum'
params[f.find('input', {'style': 'width: 90%'})['name']] = "this is <h2> o'clock"
@@ -477,8 +472,8 @@ class TestForum(TestController):
params = dict()
inputs = f.findAll('input')
for field in inputs:
- if field.has_key('name'):
- params[field['name']] = field.has_key('value') and field['value'] or ''
+ if field.has_key('name'): # nopep8 - beautifulsoup3 actually uses has_key
+ params[field['name']] = field.get('value') or ''
params[f.find('textarea')['name']] = 'Post content'
params[f.find('select')['name']] = 'testforum'
params[f.find('input', {'style': 'width: 90%'})['name']] = 'Test Thread'
@@ -503,8 +498,7 @@ class TestForum(TestController):
assert 'Post content' in r
r = self.app.get('/discussion/testforum/moderate/')
post = FM.ForumPost.query.get(text='Post content')
- link = '<a href="%s">[%s]</a>' % (post.thread.url()
- + '?limit=25#' + post.slug, post.shorthand_id())
+ link = '<a href="%s">[%s]</a>' % (post.thread.url() + '?limit=25#' + post.slug, post.shorthand_id())
assert link in r, link
def test_thread(self):
@@ -514,8 +508,8 @@ class TestForum(TestController):
params = dict()
inputs = f.findAll('input')
for field in inputs:
- if field.has_key('name'):
- params[field['name']] = field.has_key('value') and field['value'] or ''
+ if field.has_key('name'): # nopep8 - beautifulsoup3 actually uses has_key
+ params[field['name']] = field.get('value') or ''
params[f.find('textarea')['name']] = 'aaa'
params[f.find('select')['name']] = 'testforum'
params[f.find('input', {'style': 'width: 90%'})['name']] = 'AAA'
@@ -528,8 +522,8 @@ class TestForum(TestController):
params = dict()
inputs = f.findAll('input')
for field in inputs:
- if field.has_key('name'):
- params[field['name']] = field.has_key('value') and field['value'] or ''
+ if field.has_key('name'): # nopep8 - beautifulsoup3 actually uses has_key
+ params[field['name']] = field.get('value') or ''
params[f.find('textarea')['name']] = 'bbb'
thread = self.app.post(str(rep_url), params=params)
thread = self.app.get(url)
@@ -550,8 +544,8 @@ class TestForum(TestController):
params = dict()
inputs = reply_form.findAll('input')
for field in inputs:
- if field.has_key('name'):
- params[field['name']] = field.has_key('value') and field['value'] or ''
+ if field.has_key('name'): # nopep8 - beautifulsoup3 actually uses has_key
+ params[field['name']] = field.get('value') or ''
params[reply_form.find('textarea')['name']] = 'zzz'
self.app.post(post_link, params)
r = self.app.get(thread_url)
@@ -565,8 +559,8 @@ class TestForum(TestController):
params = dict()
inputs = f.findAll('input')
for field in inputs:
- if field.has_key('name'):
- params[field['name']] = field.has_key('value') and field['value'] or ''
+ if field.has_key('name'): # nopep8 - beautifulsoup3 actually uses has_key
+ params[field['name']] = field.get('value') or ''
params[f.find('textarea')['name']] = 'Post text'
params[f.find('select')['name']] = 'testforum'
params[f.find('input', {'style': 'width: 90%'})['name']] = 'Post subject'
@@ -579,8 +573,8 @@ class TestForum(TestController):
params = dict()
inputs = f.findAll('input')
for field in inputs:
- if field.has_key('name') and 'subscription' not in field['name']:
- params[field['name']] = field.has_key('value') and field['value'] or ''
+ if field.has_key('name'): # nopep8 - beautifulsoup3 actually uses has_key
+ params[field['name']] = field.get('value') or ''
self.app.post(str(subscribe_url), params=params)
self.app.post('/discussion/general/subscribe_to_forum', {'subscribe': True})
f = thread.html.find('div', {'class': 'row reply_post_form'}).find('form')
@@ -588,8 +582,8 @@ class TestForum(TestController):
params = dict()
inputs = f.findAll('input')
for field in inputs:
- if field.has_key('name'):
- params[field['name']] = field.has_key('value') and field['value'] or ''
+ if field.has_key('name'): # nopep8 - beautifulsoup3 actually uses has_key
+ params[field['name']] = field.get('value') or ''
params[f.find('textarea')['name']] = 'Reply 2'
self.app.post(str(rep_url), params=params)
assert M.Notification.query.find(
@@ -613,8 +607,8 @@ class TestForum(TestController):
params = dict()
inputs = f.findAll('input')
for field in inputs:
- if field.has_key('name'):
- params[field['name']] = field.has_key('value') and field['value'] or ''
+ if field.has_key('name'): # nopep8 - beautifulsoup3 actually uses has_key
+ params[field['name']] = field.get('value') or ''
params[f.find('textarea')['name']] = 'aaa aaa'
params[f.find('select')['name']] = 'testforum'
params[f.find('input', {'style': 'width: 90%'})['name']] = 'AAAA'
@@ -666,8 +660,8 @@ class TestForum(TestController):
params = dict()
inputs = f.findAll('input')
for field in inputs:
- if field.has_key('name'):
- params[field['name']] = field.has_key('value') and field['value'] or ''
+ if field.has_key('name'): # nopep8 - beautifulsoup3 actually uses has_key
+ params[field['name']] = field.get('value') or ''
params[f.find('textarea')['name']] = 'aaa aaa'
params[f.find('select')['name']] = 'testforum'
params[f.find('input', {'style': 'width: 90%'})['name']] = 'topic1'
@@ -680,8 +674,8 @@ class TestForum(TestController):
params = dict()
inputs = f.findAll('input')
for field in inputs:
- if field.has_key('name'):
- params[field['name']] = field.has_key('value') and field['value'] or ''
+ if field.has_key('name'): # nopep8 - beautifulsoup3 actually uses has_key
+ params[field['name']] = field.get('value') or ''
params[f.find('textarea')['name']] = 'aaa aaa'
params[f.find('select')['name']] = 'testforum'
params[f.find('input', {'style': 'width: 90%'})['name']] = 'topic2'
@@ -731,8 +725,8 @@ class TestForum(TestController):
params = dict()
inputs = f.findAll('input')
for field in inputs:
- if field.has_key('name'):
- params[field['name']] = field.has_key('value') and field['value'] or ''
+ if field.has_key('name'): # nopep8 - beautifulsoup3 actually uses has_key
+ params[field['name']] = field.get('value') or ''
params[f.find('textarea')['name']] = 'aaa aaa'
params[f.find('select')['name']] = 'testforum'
params[f.find('input', {'style': 'width: 90%'})['name']] = 'topic1'
@@ -746,8 +740,8 @@ class TestForum(TestController):
params = dict()
inputs = f.findAll('input')
for field in inputs:
- if field.has_key('name'):
- params[field['name']] = field.has_key('value') and field['value'] or ''
+ if field.has_key('name'): # nopep8 - beautifulsoup3 actually uses has_key
+ params[field['name']] = field.get('value') or ''
params[f.find('textarea')['name']] = 'bbb'
thread = self.app.post(str(rep_url), params=params)
thread = self.app.get(url)
@@ -779,8 +773,8 @@ class TestForum(TestController):
params = dict()
inputs = f.findAll('input')
for field in inputs:
- if field.has_key('name'):
- params[field['name']] = field.has_key('value') and field['value'] or ''
+ if field.has_key('name'): # nopep8 - beautifulsoup3 actually uses has_key
+ params[field['name']] = field.get('value') or ''
params[f.find('textarea')['name']] = 'aaa'
params[f.find('select')['name']] = 'testforum'
params[f.find('input', {'style': 'width: 90%'})['name']] = 'AAA'
@@ -803,8 +797,8 @@ class TestForum(TestController):
params = dict()
inputs = f.findAll('input')
for field in inputs:
- if field.has_key('name'):
- params[field['name']] = field.has_key('value') and field['value'] or ''
+ if field.has_key('name'): # nopep8 - beautifulsoup3 actually uses has_key
+ params[field['name']] = field.get('value') or ''
params[f.find('textarea')['name']] = 'aaa'
params[f.find('select')['name']] = 'testforum'
params[f.find('input', {'style': 'width: 90%'})['name']] = 'AAA'
@@ -847,7 +841,7 @@ class TestForum(TestController):
timestamp_before = M.Project.query.get(shortname='test').last_updated
# View the thread and make sure project last_updated is not updated
- thread = self.app.get(url)
+ self.app.get(url)
timestamp_after = M.Project.query.get(shortname='test').last_updated
assert_equal(timestamp_before, timestamp_after)
http://git-wip-us.apache.org/repos/asf/allura/blob/f2bd03c7/ForgeDiscussion/forgediscussion/tests/functional/test_forum_admin.py
----------------------------------------------------------------------
diff --git a/ForgeDiscussion/forgediscussion/tests/functional/test_forum_admin.py b/ForgeDiscussion/forgediscussion/tests/functional/test_forum_admin.py
index 4597017..3e7f0d4 100644
--- a/ForgeDiscussion/forgediscussion/tests/functional/test_forum_admin.py
+++ b/ForgeDiscussion/forgediscussion/tests/functional/test_forum_admin.py
@@ -188,9 +188,8 @@ class TestForumAdmin(TestController):
params = dict()
inputs = f.findAll('input')
for field in inputs:
- if field.has_key('name'):
- params[field['name']] = field.has_key(
- 'value') and field['value'] or ''
+ if field.has_key('name'): # nopep8 - beautifulsoup3 actually uses has_key
+ params[field['name']] = field.get('value') or ''
params[f.find('textarea')['name']] = 'secret text'
params[f.find('select')['name']] = 'secret'
params[f.find('input', {'style': 'width: 90%'})
@@ -243,9 +242,8 @@ class TestForumAdmin(TestController):
params = dict()
inputs = f.findAll('input')
for field in inputs:
- if field.has_key('name'):
- params[field['name']] = field.has_key(
- 'value') and field['value'] or ''
+ if field.has_key('name'): # nopep8 - beautifulsoup3 actually uses has_key
+ params[field['name']] = field.get('value') or ''
params[f.find('textarea')['name']] = 'post text'
params[f.find('select')['name']] = 'testforum'
params[f.find('input', {'style': 'width: 90%'})['name']] = 'post topic'
@@ -269,9 +267,8 @@ class TestForumAdmin(TestController):
params = dict()
inputs = f.findAll('input')
for field in inputs:
- if field.has_key('name'):
- params[field['name']] = field.has_key(
- 'value') and field['value'] or ''
+ if field.has_key('name'): # nopep8 - beautifulsoup3 actually uses has_key
+ params[field['name']] = field.get('value') or ''
params[f.find('textarea')['name']] = 'post text'
params[f.find('select')['name']] = 'testforum'
params[f.find('input', {'style': 'width: 90%'})['name']] = 'post topic'
@@ -299,9 +296,8 @@ class TestForumAdmin(TestController):
params = dict()
inputs = f.findAll('input')
for field in inputs:
- if field.has_key('name'):
- params[field['name']] = field.has_key(
- 'value') and field['value'] or ''
+ if field.has_key('name'): # nopep8 - beautifulsoup3 actually uses has_key
+ params[field['name']] = field.get('value') or ''
params[f.find('textarea')['name']] = 'post text'
params[f.find('select')['name']] = 'testforum'
params[f.find('input', {'style': 'width: 90%'})['name']] = 'post topic'
@@ -309,7 +305,8 @@ class TestForumAdmin(TestController):
M.MonQTask.run_ready()
email_tasks = M.MonQTask.query.find(
dict(task_name='allura.tasks.mail_tasks.sendsimplemail')).all()
- assert 'Sent from localhost because email@monitoring.com is subscribed to http://localhost/p/test/discussion/testforum/' in email_tasks[
+ assert 'Sent from localhost because email@monitoring.com is subscribed '\
+ 'to http://localhost/p/test/discussion/testforum/' in email_tasks[
0].kwargs['text'], email_tasks[0].kwargs['text']
assert 'a project admin can change settings at http://localhost/p/test/admin/discussion/forums' in email_tasks[
0].kwargs['text']
http://git-wip-us.apache.org/repos/asf/allura/blob/f2bd03c7/ForgeDiscussion/forgediscussion/tests/functional/test_rest.py
----------------------------------------------------------------------
diff --git a/ForgeDiscussion/forgediscussion/tests/functional/test_rest.py b/ForgeDiscussion/forgediscussion/tests/functional/test_rest.py
index c7624a4..bf677e9 100644
--- a/ForgeDiscussion/forgediscussion/tests/functional/test_rest.py
+++ b/ForgeDiscussion/forgediscussion/tests/functional/test_rest.py
@@ -55,9 +55,8 @@ class TestDiscussionApiBase(TestRestApiBase):
params = dict()
inputs = f.findAll('input')
for field in inputs:
- if field.has_key('name'):
- params[field['name']] = field.has_key(
- 'value') and field['value'] or ''
+ if field.has_key('name'): # nopep8 - beautifulsoup3 actually uses has_key
+ params[field['name']] = field.get('value') or ''
params[f.find('textarea')['name']] = text
params[f.find('select')['name']] = forum
params[f.find('input', {'style': 'width: 90%'})['name']] = subject
@@ -250,9 +249,9 @@ class TestRootRestController(TestDiscussionApiBase):
assert_equal(r.json['forums'][0]['shortname'], 'general')
def test_has_access_no_params(self):
- r = self.api_get('/rest/p/test/discussion/has_access', status=404)
- r = self.api_get('/rest/p/test/discussion/has_access?user=root', status=404)
- r = self.api_get('/rest/p/test/discussion/has_access?perm=read', status=404)
+ self.api_get('/rest/p/test/discussion/has_access', status=404)
+ self.api_get('/rest/p/test/discussion/has_access?user=root', status=404)
+ self.api_get('/rest/p/test/discussion/has_access?perm=read', status=404)
def test_has_access_unknown_params(self):
"""Unknown user and/or permission always False for has_access API"""
http://git-wip-us.apache.org/repos/asf/allura/blob/f2bd03c7/ForgeDiscussion/forgediscussion/widgets/__init__.py
----------------------------------------------------------------------
diff --git a/ForgeDiscussion/forgediscussion/widgets/__init__.py b/ForgeDiscussion/forgediscussion/widgets/__init__.py
index f733ddb..53322a7 100644
--- a/ForgeDiscussion/forgediscussion/widgets/__init__.py
+++ b/ForgeDiscussion/forgediscussion/widgets/__init__.py
@@ -18,3 +18,7 @@
from forum_widgets import ForumSubscriptionForm, ThreadSubscriptionForm, AnnouncementsTable
from forum_widgets import ModerateThread, ForumHeader, ThreadHeader
from forum_widgets import Post, Thread, Forum
+
+__all__ = [
+ 'ForumSubscriptionForm', 'ThreadSubscriptionForm', 'AnnouncementsTable', 'ModerateThread', 'ForumHeader',
+ 'ThreadHeader', 'Post', 'Thread', 'Forum']
http://git-wip-us.apache.org/repos/asf/allura/blob/f2bd03c7/ForgeGit/forgegit/tests/functional/test_controllers.py
----------------------------------------------------------------------
diff --git a/ForgeGit/forgegit/tests/functional/test_controllers.py b/ForgeGit/forgegit/tests/functional/test_controllers.py
index cdff7c8..0e0928d 100644
--- a/ForgeGit/forgegit/tests/functional/test_controllers.py
+++ b/ForgeGit/forgegit/tests/functional/test_controllers.py
@@ -42,7 +42,6 @@ from forgegit import model as GM
class _TestCase(TestController):
-
def setUp(self):
super(_TestCase, self).setUp()
self.setup_with_tools()
@@ -50,8 +49,7 @@ class _TestCase(TestController):
@with_git
def setup_with_tools(self):
h.set_context('test', 'src-git', neighborhood='Projects')
- repo_dir = pkg_resources.resource_filename(
- 'forgegit', 'tests/data')
+ repo_dir = pkg_resources.resource_filename('forgegit', 'tests/data')
c.app.repo.fs_path = repo_dir
c.app.repo.status = 'ready'
c.app.repo.name = 'testgit.git'
@@ -67,8 +65,7 @@ class _TestCase(TestController):
@with_tool('test', 'Git', 'testgit-index', 'Git', type='git')
def setup_testgit_index_repo(self):
h.set_context('test', 'testgit-index', neighborhood='Projects')
- repo_dir = pkg_resources.resource_filename(
- 'forgegit', 'tests/data')
+ repo_dir = pkg_resources.resource_filename('forgegit', 'tests/data')
c.app.repo.fs_path = repo_dir
c.app.repo.status = 'ready'
c.app.repo.name = 'testgit_index.git'
@@ -79,13 +76,10 @@ class _TestCase(TestController):
class TestRootController(_TestCase):
-
-
@with_tool('test', 'Git', 'weird-chars', 'WeirdChars', type='git')
def _setup_weird_chars_repo(self):
h.set_context('test', 'weird-chars', neighborhood='Projects')
- repo_dir = pkg_resources.resource_filename(
- 'forgegit', 'tests/data')
+ repo_dir = pkg_resources.resource_filename('forgegit', 'tests/data')
c.app.repo.fs_path = repo_dir
c.app.repo.status = 'ready'
c.app.repo.name = 'weird-chars.git'
@@ -135,41 +129,34 @@ class TestRootController(_TestCase):
u'message': u'Add README', u'row': 2})
def test_log(self):
- resp = self.app.get(
- '/src-git/ci/1e146e67985dcd71c74de79613719bef7bddca4a/log/')
+ resp = self.app.get('/src-git/ci/1e146e67985dcd71c74de79613719bef7bddca4a/log/')
assert 'Initial commit' in resp
assert '<div class="markdown_content"><p>Change README</div>' in resp
assert 'tree/README?format=raw">Download</a>' not in resp
- assert 'Tree' in resp.html.findAll(
- 'td')[2].text, resp.html.findAll('td')[2].text
+ assert 'Tree' in resp.html.findAll('td')[2].text, resp.html.findAll('td')[2].text
assert 'byRick Copeland' in resp.html.findAll('td')[0].text, resp.html.findAll('td')[0].text
- resp = self.app.get(
- '/src-git/ci/1e146e67985dcd71c74de79613719bef7bddca4a/log/?path=/README')
+ resp = self.app.get('/src-git/ci/1e146e67985dcd71c74de79613719bef7bddca4a/log/?path=/README')
assert 'View' in resp.html.findAll('td')[2].text
assert 'Change README' in resp
assert 'tree/README?format=raw">Download</a>' in resp
assert 'Add README' in resp
assert "Initial commit " not in resp
- resp = self.app.get(
- '/src-git/ci/1e146e67985dcd71c74de79613719bef7bddca4a/log/?path=/a/b/c/')
+ resp = self.app.get('/src-git/ci/1e146e67985dcd71c74de79613719bef7bddca4a/log/?path=/a/b/c/')
assert 'Remove file' in resp
assert 'Initial commit' in resp
assert 'Add README' not in resp
assert 'Change README' not in resp
- resp = self.app.get(
- '/src-git/ci/1e146e67985dcd71c74de79613719bef7bddca4a/log/?path=/not/exist')
+ resp = self.app.get('/src-git/ci/1e146e67985dcd71c74de79613719bef7bddca4a/log/?path=/not/exist')
assert 'No (more) commits' in resp
def test_diff_ui(self):
- r = self.app.get(
- '/src-git/ci/1e146e67985dcd71c74de79613719bef7bddca4a/log/?path=/README')
+ r = self.app.get('/src-git/ci/1e146e67985dcd71c74de79613719bef7bddca4a/log/?path=/README')
assert '<div class="grid-19"><input type="button" value="Compare" class="compare_revision"></div>' in r
assert '<input type="checkbox" class="revision"' in r
assert 'revision="1e146e67985dcd71c74de79613719bef7bddca4a"' in r
assert 'url_commit="/p/test/src-git/ci/1e146e67985dcd71c74de79613719bef7bddca4a/">' in r
- r = self.app.get(
- '/src-git/ci/1e146e67985dcd71c74de79613719bef7bddca4a/log/')
+ r = self.app.get('/src-git/ci/1e146e67985dcd71c74de79613719bef7bddca4a/log/')
assert '<div class="grid-19"><input type="button" value="Compare" class="compare_revision"></div>' not in r
assert '<input type="checkbox" class="revision"' not in r
assert 'revision="1e146e67985dcd71c74de79613719bef7bddca4a"' not in r
@@ -247,10 +234,8 @@ class TestRootController(_TestCase):
def test_file(self):
ci = self._get_ci()
resp = self.app.get(ci + '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
@@ -261,16 +246,14 @@ class TestRootController(_TestCase):
url = ci + 'tree/' + h.urlquote(u'привіт.txt') + '?format=raw'
resp = self.app.get(url)
assert_in(u'Привіт!\nWhich means Hello!', resp.body.decode('utf-8'))
- assert_equal(
- resp.headers.get('Content-Disposition').decode('utf-8'),
- u'attachment;filename="привіт.txt"')
+ assert_equal(resp.headers.get('Content-Disposition').decode('utf-8'),
+ u'attachment;filename="привіт.txt"')
url = ci + 'tree/' + h.urlquote(u'with space.txt') + '?format=raw'
resp = self.app.get(url)
assert_in(u'with space', resp.body.decode('utf-8'))
- assert_equal(
- resp.headers.get('Content-Disposition').decode('utf-8'),
- u'attachment;filename="with space.txt"')
+ assert_equal(resp.headers.get('Content-Disposition').decode('utf-8'),
+ u'attachment;filename="with space.txt"')
def test_invalid_file(self):
ci = self._get_ci()
@@ -278,8 +261,7 @@ class TestRootController(_TestCase):
def test_diff(self):
ci = self._get_ci()
- resp = self.app.get(
- ci + 'tree/README?diff=df30427c488aeab84b2352bdf88a3b19223f9d7a')
+ resp = self.app.get(ci + 'tree/README?diff=df30427c488aeab84b2352bdf88a3b19223f9d7a')
assert 'readme' in resp, resp.showbrowser()
assert '+++' in resp, resp.showbrowser()
@@ -287,8 +269,7 @@ class TestRootController(_TestCase):
ci = self._get_ci()
fn = 'tree/README?diff=df30427c488aeab84b2352bdf88a3b19223f9d7a'
r = self.app.get(ci + fn + '&diformat=regular')
- assert fn + \
- '&diformat=sidebyside">Switch to side-by-side view</a>' in r
+ assert fn + '&diformat=sidebyside">Switch to side-by-side view</a>' in r
r = self.app.get(ci + fn + '&diformat=sidebyside')
assert fn + '&diformat=regular">Switch to unified view</a>' in r
@@ -297,8 +278,7 @@ class TestRootController(_TestCase):
def test_refresh(self):
notification = M.Notification.query.find({'subject': '[test:src-git] 5 new commits to Git'}).first()
assert notification
- domain = '.'.join(
- reversed(c.app.url[1:-1].split('/'))).replace('_', '-')
+ domain = '.'.join(reversed(c.app.url[1:-1].split('/'))).replace('_', '-')
common_suffix = tg.config['forgemail.domain']
email = 'noreply@%s%s' % (domain, common_suffix)
assert_in(email, notification['reply_to_address'])
@@ -306,8 +286,7 @@ class TestRootController(_TestCase):
def test_file_force_display(self):
ci = self._get_ci()
resp = self.app.get(ci + 'tree/README?force=True')
- content = str(
- resp.html.find('div', {'class': 'clip grid-19 codebrowser'}))
+ content = str(resp.html.find('div', {'class': 'clip grid-19 codebrowser'}))
assert re.search(r'<pre>.*This is readme', content), content
assert '</pre>' in content, content
@@ -320,8 +299,7 @@ class TestRootController(_TestCase):
r = self.app.get(ci + 'tree/index.html')
header = r.html.find('h2', {'class': 'dark title'}).contents[2]
assert 'index.html' in header, header
- content = str(
- r.html.find('div', {'class': 'clip grid-19 codebrowser'}))
+ content = str(r.html.find('div', {'class': 'clip grid-19 codebrowser'}))
assert ('<span class="nt"><h1></span>'
'index.html'
'<span class="nt"></h1></span>') in content, content
@@ -335,8 +313,7 @@ class TestRootController(_TestCase):
header = r.html.find('h2', {'class': 'dark title'})
assert 'index' in header.contents[3], header.contents[3]
assert 'index.htm' in header.contents[4], header.contents[4]
- content = str(
- r.html.find('div', {'class': 'clip grid-19 codebrowser'}))
+ content = str(r.html.find('div', {'class': 'clip grid-19 codebrowser'}))
assert ('<span class="nt"><h1></span>'
'index/index.htm'
'<span class="nt"></h1></span>') in content, content
@@ -387,9 +364,7 @@ class TestRootController(_TestCase):
assert not '<div id="access_urls"' in r
r = self.app.get('/src-git/fork')
assert not '<div id="access_urls"' in r
- r = self.app.get(
- ci +
- 'tree/README?diff=df30427c488aeab84b2352bdf88a3b19223f9d7a')
+ r = self.app.get(ci + 'tree/README?diff=df30427c488aeab84b2352bdf88a3b19223f9d7a')
assert not '<div id="access_urls"' in r
r = self.app.get(ci + 'tree/README')
assert not '<div id="access_urls"' in r
@@ -419,8 +394,7 @@ class TestRootController(_TestCase):
self.setup_testgit_index_repo()
r = self.app.get('/p/test/testgit-index/ci/master/tree/index/')
form = r.html.find('form', 'tarball')
- assert_equal(
- form.get('action'), '/p/test/testgit-index/ci/master/tarball')
+ assert_equal(form.get('action'), '/p/test/testgit-index/ci/master/tarball')
assert_equal(form.input.get('value'), '/index')
def test_default_branch(self):
@@ -466,7 +440,6 @@ class TestRootController(_TestCase):
class TestRestController(_TestCase):
-
def test_index(self):
self.app.get('/rest/p/test/src-git/', status=200)
@@ -475,7 +448,6 @@ class TestRestController(_TestCase):
class TestHasAccessAPI(TestRestApiBase):
-
def setUp(self):
super(TestHasAccessAPI, self).setUp()
self.setup_with_tools()
@@ -485,9 +457,9 @@ class TestHasAccessAPI(TestRestApiBase):
pass
def test_has_access_no_params(self):
- r = self.api_get('/rest/p/test/src-git/has_access', status=404)
- r = self.api_get('/rest/p/test/src-git/has_access?user=root', status=404)
- r = self.api_get('/rest/p/test/src-git/has_access?perm=read', status=404)
+ self.api_get('/rest/p/test/src-git/has_access', status=404)
+ self.api_get('/rest/p/test/src-git/has_access?user=root', status=404)
+ self.api_get('/rest/p/test/src-git/has_access?perm=read', status=404)
def test_has_access_unknown_params(self):
"""Unknown user and/or permission always False for has_access API"""
@@ -526,7 +498,6 @@ class TestHasAccessAPI(TestRestApiBase):
class TestFork(_TestCase):
-
def setUp(self):
super(TestFork, self).setUp()
to_project = M.Project.query.get(
@@ -575,7 +546,8 @@ class TestFork(_TestCase):
return r
def _find_request_merge_form(self, resp):
- cond = lambda f: f.action == 'do_request_merge'
+ def cond(f):
+ return f.action == 'do_request_merge'
return self.find_form(resp, cond)
def _request_merge(self, **kw):
@@ -684,8 +656,7 @@ class TestFork(_TestCase):
assert 'Merge Request #%s: (rejected)' % mr_num in r, r
def test_merge_request_default_branches(self):
- _select_val = lambda r, n: r.html.find(
- 'select', {'name': n}).find(selected=True).string
+ _select_val = lambda r, n: r.html.find('select', {'name': n}).find(selected=True).string
r = self.app.get('/p/test2/code/request_merge')
assert_equal(_select_val(r, 'source_branch'), 'master')
assert_equal(_select_val(r, 'target_branch'), 'master')
@@ -719,11 +690,12 @@ class TestFork(_TestCase):
def test_merge_request_edit(self):
r = self.app.post('/p/test2/code/do_request_merge',
- params={
- 'source_branch': 'zz',
- 'target_branch': 'master',
- 'summary': 'summary',
- 'description': 'description'}).follow()
+ params={
+ 'source_branch': 'zz',
+ 'target_branch': 'master',
+ 'summary': 'summary',
+ 'description': 'description',
+ }).follow()
assert '<a href="edit" title="Edit"><b data-icon="p" class="ico ico-pencil" title="Edit"></b></a>' in r
r = self.app.get('/p/test/src-git/merge-requests/1/edit')
assert 'value="summary"' in r
@@ -732,20 +704,24 @@ class TestFork(_TestCase):
assert md_edit is not None, 'MarkdownEdit widget not found'
r = self.app.post('/p/test/src-git/merge-requests/1/do_request_merge_edit',
- params={
- 'source_branch': 'zz',
- 'target_branch': 'master',
- 'summary': 'changed summary',
- 'description': 'changed description'},
- extra_environ=dict(username='*anonymous'), status=302).follow()
+ params={
+ 'source_branch': 'zz',
+ 'target_branch': 'master',
+ 'summary': 'changed summary',
+ 'description': 'changed description'
+ },
+ extra_environ=dict(username='*anonymous'),
+ status=302,
+ ).follow()
assert 'Login' in r
r = self.app.post('/p/test/src-git/merge-requests/1/do_request_merge_edit',
- params={
- 'source_branch': 'master',
- 'target_branch': 'master',
- 'summary': 'changed summary',
- 'description': 'changed description'}).follow()
+ params={
+ 'source_branch': 'master',
+ 'target_branch': 'master',
+ 'summary': 'changed summary',
+ 'description': 'changed description',
+ }).follow()
assert '[5c4724]' not in r
assert '<p>changed description</p' in r
@@ -786,7 +762,6 @@ class TestFork(_TestCase):
class TestDiff(TestController):
-
def setUp(self):
super(TestDiff, self).setUp()
self.setup_with_tools()
@@ -794,8 +769,7 @@ class TestDiff(TestController):
@with_git
def setup_with_tools(self):
h.set_context('test', 'src-git', neighborhood='Projects')
- repo_dir = pkg_resources.resource_filename(
- 'forgegit', 'tests/data')
+ repo_dir = pkg_resources.resource_filename('forgegit', 'tests/data')
c.app.repo.fs_path = repo_dir
c.app.repo.status = 'ready'
c.app.repo.name = 'testmime.git'
@@ -805,19 +779,18 @@ class TestDiff(TestController):
ThreadLocalORMSession.flush_all()
def test_diff(self):
- r = self.app.get(
- '/src-git/ci/d961abbbf10341ee18a668c975842c35cfc0bef2/tree/1.png?barediff=2ce83a24e52c21e8d2146b1a04a20717c0bb08d7')
+ r = self.app.get('/src-git/ci/d961abbbf10341ee18a668c975842c35cfc0bef2/tree/1.png'
+ '?barediff=2ce83a24e52c21e8d2146b1a04a20717c0bb08d7')
assert 'alt="2ce83a2..."' in r
assert 'alt="d961abb..."' in r
- r = self.app.get(
- '/src-git/ci/d961abbbf10341ee18a668c975842c35cfc0bef2/tree/1.png?diff=2ce83a24e52c21e8d2146b1a04a20717c0bb08d7')
+ r = self.app.get('/src-git/ci/d961abbbf10341ee18a668c975842c35cfc0bef2/tree/1.png'
+ '?diff=2ce83a24e52c21e8d2146b1a04a20717c0bb08d7')
assert 'alt="2ce83a2..."' in r
assert 'alt="d961abb..."' in r
class TestGitRename(TestController):
-
def setUp(self):
super(TestGitRename, self).setUp()
self.setup_with_tools()
@@ -862,8 +835,9 @@ class TestGitRename(TestController):
# the diff portion of the output
resp_no_ws = re.sub(r'\s+', '', str(resp))
- assert '<a href="/p/test/src-git/ci/fbb0644603bb6ecee3ebb62efe8c86efc9b84ee6/tree/f.txt">f.txt</a>to<a href="/p/test/src-git/ci/b120505a61225e6c14bee3e5b5862db81628c35c/tree/f2.txt">f2.txt</a>'.replace(' ','') \
- in resp_no_ws
+ assert_in('<a href="/p/test/src-git/ci/fbb0644603bb6ecee3ebb62efe8c86efc9b84ee6/tree/f.txt">f.txt</a>'
+ 'to<a href="/p/test/src-git/ci/b120505a61225e6c14bee3e5b5862db81628c35c/tree/f2.txt">f2.txt</a>'
+ .replace(' ', ''), resp_no_ws)
assert '<span class="empty-diff">File was renamed.</span>' in resp
@@ -875,8 +849,7 @@ class TestGitBranch(TestController):
@with_git
def setup_with_tools(self):
h.set_context('test', 'src-git', neighborhood='Projects')
- repo_dir = pkg_resources.resource_filename(
- 'forgegit', 'tests/data')
+ repo_dir = pkg_resources.resource_filename('forgegit', 'tests/data')
c.app.repo.fs_path = repo_dir
c.app.repo.status = 'ready'
c.app.repo.name = 'test_branch.git'
@@ -892,7 +865,6 @@ class TestGitBranch(TestController):
class TestIncludeMacro(_TestCase):
-
def setUp(self):
super(TestIncludeMacro, self).setUp()
setup_global_objects()
http://git-wip-us.apache.org/repos/asf/allura/blob/f2bd03c7/ForgeImporters/forgeimporters/tests/google/test_extractor.py
----------------------------------------------------------------------
diff --git a/ForgeImporters/forgeimporters/tests/google/test_extractor.py b/ForgeImporters/forgeimporters/tests/google/test_extractor.py
index fe74f9c..72a7d6c 100644
--- a/ForgeImporters/forgeimporters/tests/google/test_extractor.py
+++ b/ForgeImporters/forgeimporters/tests/google/test_extractor.py
@@ -182,7 +182,8 @@ class TestGoogleCodeProjectExtractor(TestCase):
@without_module('html2text')
def test_get_issue_basic_fields(self):
- test_issue = open(pkg_resources.resource_filename('forgeimporters', 'tests/data/google/test-issue.html')).read()
+ test_issue = open(pkg_resources.resource_filename(
+ 'forgeimporters', 'tests/data/google/test-issue.html')).read()
gpe = self._make_extractor(test_issue)
self.assertEqual(gpe.get_issue_creator().name, 'john...@gmail.com')
@@ -222,7 +223,8 @@ class TestGoogleCodeProjectExtractor(TestCase):
@skipif(module_not_available('html2text'))
def test_get_issue_basic_fields_html2text(self):
- test_issue = open(pkg_resources.resource_filename('forgeimporters', 'tests/data/google/test-issue.html')).read()
+ test_issue = open(pkg_resources.resource_filename(
+ 'forgeimporters', 'tests/data/google/test-issue.html')).read()
gpe = self._make_extractor(test_issue)
self.assertEqual(gpe.get_issue_creator().name, 'john...@gmail.com')
self.assertEqual(gpe.get_issue_creator().url,
@@ -303,8 +305,9 @@ class TestGoogleCodeProjectExtractor(TestCase):
attachments = gpe.get_issue_attachments()
self.assertEqual(len(attachments), 1)
self.assertEqual(attachments[0].filename, 'at1.txt')
- self.assertEqual(
- attachments[0].url, 'http://allura-google-importer.googlecode.com/issues/attachment?aid=70000000&name=at1.txt&token=3REU1M3JUUMt0rJUg7ldcELt6LA%3A1376059941255')
+ self.assertEqual(attachments[0].url,
+ 'http://allura-google-importer.googlecode.com/issues/attachment?aid=70000000&name=at1.txt'
+ '&token=3REU1M3JUUMt0rJUg7ldcELt6LA%3A1376059941255')
self.assertEqual(attachments[0].type, 'text/plain')
def test_get_issue_ids(self):
@@ -367,8 +370,10 @@ class TestWithSetupForComments(TestCase):
# These tests use iter_comments and 2 HTML pages of comments.
def _create_extractor(self):
- test_issue = open(pkg_resources.resource_filename('forgeimporters', 'tests/data/google/test-issue-first-page.html')).read()
- test_issue_older = open(pkg_resources.resource_filename('forgeimporters', 'tests/data/google/test-issue-prev-page.html')).read()
+ test_issue = open(pkg_resources.resource_filename(
+ 'forgeimporters', 'tests/data/google/test-issue-first-page.html')).read()
+ test_issue_older = open(pkg_resources.resource_filename(
+ 'forgeimporters', 'tests/data/google/test-issue-prev-page.html')).read()
class LocalTestExtractor(google.GoogleCodeProjectExtractor):
def urlopen(self, url, **kw):
@@ -442,7 +447,8 @@ class TestWithSetupForComments(TestCase):
'author.name': 'john...@gmail.com',
'author.url': 'http://code.google.com/u/101557263855536553789/',
'created_date': 'Thu Aug 8 15:36:57 2013',
- 'body': 'Oh, I forgot one \\(with an inter\\-project reference to [issue other\\-project:1](https://code.google.com/p/other-project/issues/detail?id=1)\\)',
+ 'body': 'Oh, I forgot one \\(with an inter\\-project reference to '
+ '[issue other\\-project:1](https://code.google.com/p/other-project/issues/detail?id=1)\\)',
'updates': {'Labels:': 'OpSys-OSX'},
'attachments': [],
},
@@ -511,7 +517,8 @@ class TestWithSetupForComments(TestCase):
'author.name': 'john...@gmail.com',
'author.url': 'http://code.google.com/u/101557263855536553789/',
'created_date': 'Thu Aug 8 15:36:57 2013',
- 'body': 'Oh, I forgot one \\(with an inter-project reference to [issue other-project:1](https://code.google.com/p/other-project/issues/detail?id=1)\\)',
+ 'body': 'Oh, I forgot one \\(with an inter-project reference to '
+ '[issue other-project:1](https://code.google.com/p/other-project/issues/detail?id=1)\\)',
'updates': {'Labels:': 'OpSys-OSX'},
'attachments': [],
},
http://git-wip-us.apache.org/repos/asf/allura/blob/f2bd03c7/ForgeLink/forgelink/tests/functional/test_rest.py
----------------------------------------------------------------------
diff --git a/ForgeLink/forgelink/tests/functional/test_rest.py b/ForgeLink/forgelink/tests/functional/test_rest.py
index 7fd6485..b2ac3b3 100644
--- a/ForgeLink/forgelink/tests/functional/test_rest.py
+++ b/ForgeLink/forgelink/tests/functional/test_rest.py
@@ -91,9 +91,9 @@ class TestLinkHasAccess(TestRestApiBase):
h.set_context('test', 'link', neighborhood='Projects')
def test_has_access_no_params(self):
- r = self.api_get('/rest/p/test/link/has_access', status=404)
- r = self.api_get('/rest/p/test/link/has_access?user=root', status=404)
- r = self.api_get('/rest/p/test/link/has_access?perm=read', status=404)
+ self.api_get('/rest/p/test/link/has_access', status=404)
+ self.api_get('/rest/p/test/link/has_access?user=root', status=404)
+ self.api_get('/rest/p/test/link/has_access?perm=read', status=404)
def test_has_access_unknown_params(self):
"""Unknown user and/or permission always False for has_access API"""
http://git-wip-us.apache.org/repos/asf/allura/blob/f2bd03c7/ForgeTracker/forgetracker/tests/functional/test_rest.py
----------------------------------------------------------------------
diff --git a/ForgeTracker/forgetracker/tests/functional/test_rest.py b/ForgeTracker/forgetracker/tests/functional/test_rest.py
index 7d8d91a..4603b3d 100644
--- a/ForgeTracker/forgetracker/tests/functional/test_rest.py
+++ b/ForgeTracker/forgetracker/tests/functional/test_rest.py
@@ -259,9 +259,9 @@ class TestRestSearch(TestTrackerApiBase):
class TestRestHasAccess(TestTrackerApiBase):
def test_has_access_no_params(self):
- r = self.api_get('/rest/p/test/bugs/has_access', status=404)
- r = self.api_get('/rest/p/test/bugs/has_access?user=root', status=404)
- r = self.api_get('/rest/p/test/bugs/has_access?perm=read', status=404)
+ self.api_get('/rest/p/test/bugs/has_access', status=404)
+ self.api_get('/rest/p/test/bugs/has_access?user=root', status=404)
+ self.api_get('/rest/p/test/bugs/has_access?perm=read', status=404)
def test_has_access_unknown_params(self):
"""Unknown user and/or permission always False for has_access API"""
http://git-wip-us.apache.org/repos/asf/allura/blob/f2bd03c7/ForgeTracker/forgetracker/tests/functional/test_root.py
----------------------------------------------------------------------
diff --git a/ForgeTracker/forgetracker/tests/functional/test_root.py b/ForgeTracker/forgetracker/tests/functional/test_root.py
index efcc59d..73ef421 100644
--- a/ForgeTracker/forgetracker/tests/functional/test_root.py
+++ b/ForgeTracker/forgetracker/tests/functional/test_root.py
@@ -67,11 +67,13 @@ class TrackerTestController(TestController):
pass
def _find_new_ticket_form(self, resp):
- cond = lambda f: f.action.endswith('/save_ticket')
+ def cond(f):
+ return f.action.endswith('/save_ticket')
return self.find_form(resp, cond)
def _find_update_ticket_form(self, resp):
- cond = lambda f: f.action.endswith('/update_ticket_from_widget')
+ def cond(f):
+ return f.action.endswith('/update_ticket_from_widget')
return self.find_form(resp, cond)
def new_ticket(self, mount_point='/bugs/', extra_environ=None, **kw):
@@ -363,8 +365,8 @@ class TestFunctionalController(TrackerTestController):
assert 'test new ticket form description' in response
def test_mass_edit(self):
- ticket_view = self.new_ticket(summary='First Ticket').follow()
- ticket_view = self.new_ticket(summary='Second Ticket').follow()
+ self.new_ticket(summary='First Ticket').follow()
+ self.new_ticket(summary='Second Ticket').follow()
M.MonQTask.run_ready()
first_ticket = tm.Ticket.query.find({'summary': 'First Ticket'}).first()
second_ticket = tm.Ticket.query.find({'summary': 'Second Ticket'}).first()
@@ -627,7 +629,7 @@ class TestFunctionalController(TrackerTestController):
r = self.app.get('/p/test/bugs/feed.atom', extra_environ=env)
assert 'Private Ticket' not in r
# ... or in the API ...
- r = self.app.get('/rest/p/test/bugs/2/', extra_environ=env, status=401)
+ self.app.get('/rest/p/test/bugs/2/', extra_environ=env, status=401)
r = self.app.get('/rest/p/test/bugs/', extra_environ=env)
assert 'Private Ticket' not in r
@@ -870,8 +872,8 @@ class TestFunctionalController(TrackerTestController):
params = dict()
inputs = f.findAll('input')
for field in inputs:
- if field.has_key('name'):
- params[field['name']] = field.has_key('value') and field['value'] or ''
+ if field.has_key('name'): # nopep8 - beautifulsoup3 actually uses has_key
+ params[field['name']] = field.get('value') or ''
params[f.find('textarea')['name']] = 'test comment'
self.app.post(f['action'].encode('utf-8'), params=params,
headers={'Referer': '/bugs/1/'.encode("utf-8")})
@@ -881,7 +883,7 @@ class TestFunctionalController(TrackerTestController):
upload_files=[('file_info', 'test.txt', 'HiThere!')])
r = self.app.get('/bugs/1/', dict(page=1))
assert '<input class="submit delete_attachment file" type="submit" value="X"/>' in r
- form = r.forms[5].submit()
+ r.forms[5].submit()
r = self.app.get('/bugs/1/', dict(page=1))
assert '<input class="submit delete_attachment" type="submit" value="X"/>' not in r
@@ -917,7 +919,7 @@ class TestFunctionalController(TrackerTestController):
file_data = file(file_path).read()
upload = ('attachment', file_name, file_data)
self.new_ticket(summary='test new attachment')
- ticket_editor = self.app.post('/bugs/1/update_ticket', {
+ self.app.post('/bugs/1/update_ticket', {
'summary': 'zzz'
}, upload_files=[upload]).follow()
ticket = tm.Ticket.query.find({'ticket_num': 1}).first()
@@ -1116,8 +1118,8 @@ class TestFunctionalController(TrackerTestController):
open_status_names='aa bb',
closed_status_names='cc',
)
- r = self.app.post('/admin/bugs/set_custom_fields',
- params=variable_encode(params))
+ self.app.post('/admin/bugs/set_custom_fields',
+ params=variable_encode(params))
kw = {'custom_fields._number': ''}
ticket_view = self.new_ticket(summary='test custom fields', **kw).follow()
assert '<strong>Number</strong>: -->' not in ticket_view
@@ -1191,7 +1193,7 @@ class TestFunctionalController(TrackerTestController):
assert 'Milestone' in ticket_view
assert '1.0' in ticket_view
assert 'zzzé' not in ticket_view
- r = self.app.post('/bugs/update_milestones', {
+ self.app.post('/bugs/update_milestones', {
'field_name': '_milestone',
'milestones-0.old_name': '1.0',
'milestones-0.new_name': 'zzzé',
@@ -1357,7 +1359,7 @@ class TestFunctionalController(TrackerTestController):
self.new_ticket(summary='test first ticket')
self.new_ticket(summary='test second ticket')
p = M.Project.query.get(shortname='test')
- tracker = p.app_instance('bugs')
+ p.app_instance('bugs')
t = tm.Ticket.query.get(summary='test first ticket')
t.reported_by_id = M.User.by_username('test-user-0')._id
t = tm.Ticket.query.get(summary='test second ticket')
@@ -1422,8 +1424,8 @@ class TestFunctionalController(TrackerTestController):
'sort': ''}).follow()
r = self.app.get('/bugs/')
assert sidebar_contains(r, 'This is not too long.')
- r = self.app.post('/admin/bugs/bins/save_bin', {
- 'summary': 'This will be truncated because it is too long to show in the sidebar without being ridiculous.',
+ self.app.post('/admin/bugs/bins/save_bin', {
+ 'summary': 'This will be truncated because it is too long to show in the sidebar without being ridiculous',
'terms': 'aaa',
'old_summary': '',
'sort': ''}).follow()
@@ -1457,8 +1459,8 @@ class TestFunctionalController(TrackerTestController):
params = dict()
inputs = f.findAll('input')
for field in inputs:
- if field.has_key('name'):
- params[field['name']] = field.has_key('value') and field['value'] or ''
+ if field.has_key('name'): # nopep8 - beautifulsoup3 actually uses has_key
+ params[field['name']] = field.get('value') or ''
params[f.find('textarea')['name']] = post_content
r = self.app.post(f['action'].encode('utf-8'), params=params,
headers={'Referer': '/bugs/1/'.encode("utf-8")})
@@ -1473,8 +1475,8 @@ class TestFunctionalController(TrackerTestController):
params = dict()
inputs = f.findAll('input')
for field in inputs:
- if field.has_key('name'):
- params[field['name']] = field.has_key('value') and field['value'] or ''
+ if field.has_key('name'): # nopep8 - beautifulsoup3 actually uses has_key
+ params[field['name']] = field.get('value') or ''
params['ticket_form.summary'] = new_summary
r = self.app.post(f['action'].encode('utf-8'), params=params,
headers={'Referer': '/bugs/1/'.encode("utf-8")})
@@ -1492,8 +1494,8 @@ class TestFunctionalController(TrackerTestController):
params = dict()
inputs = f.findAll('input')
for field in inputs:
- if field.has_key('name'):
- params[field['name']] = field.has_key('value') and field['value'] or ''
+ if field.has_key('name'): # nopep8 - beautifulsoup3 actually uses has_key
+ params[field['name']] = field.get('value') or ''
params[f.find('textarea')['name']] = post_content
r = self.app.post(f['action'].encode('utf-8'), params=params,
headers={'Referer': '/bugs/1/'.encode("utf-8")})
@@ -1520,8 +1522,8 @@ class TestFunctionalController(TrackerTestController):
params = dict()
inputs = f.findAll('input')
for field in inputs:
- if field.has_key('name'):
- params[field['name']] = field.has_key('value') and field['value'] or ''
+ if field.has_key('name'): # nopep8 - beautifulsoup3 actually uses has_key
+ params[field['name']] = field.get('value') or ''
params[f.find('textarea')['name']] = post_content
self.app.post(f['action'].encode('utf-8'), params=params,
headers={'Referer': '/bugs/1/'.encode("utf-8")})
@@ -1534,8 +1536,8 @@ class TestFunctionalController(TrackerTestController):
params = dict()
inputs = post_form.findAll('input')
for field in inputs:
- if field.has_key('name'):
- params[field['name']] = field.has_key('value') and field['value'] or ''
+ if field.has_key('name'): # nopep8 - beautifulsoup3 actually uses has_key
+ params[field['name']] = field.get('value') or ''
params[post_form.find('textarea')['name']] = 'Tis a reply'
r = self.app.post(post_link + 'reply',
params=params,
@@ -1559,7 +1561,8 @@ class TestFunctionalController(TrackerTestController):
assert_in('test first ticket', str(ticket_rows))
assert_in('test second ticket', str(ticket_rows))
edit_link = response.html.find('a', {'title': 'Bulk Edit'})
- expected_link = "/p/test/bugs/edit/?q=%21status%3Awont-fix+%26%26+%21status%3Aclosed&sort=snippet_s+asc&limit=25&filter=&page=0"
+ expected_link = "/p/test/bugs/edit/?q=%21status%3Awont-fix+%26%26+%21status%3Aclosed"\
+ "&sort=snippet_s+asc&limit=25&filter=&page=0"
assert_equal(expected_link, edit_link['href'])
response = self.app.get(edit_link['href'])
ticket_rows = response.html.find('tbody', {'class': 'ticket-list'})
@@ -2139,8 +2142,8 @@ class TestFunctionalController(TrackerTestController):
params = dict()
inputs = f.findAll('input')
for field in inputs:
- if field.has_key('name'):
- params[field['name']] = field.has_key('value') and field['value'] or ''
+ if field.has_key('name'): # nopep8 - beautifulsoup3 actually uses has_key
+ params[field['name']] = field.get('value') or ''
params[f.find('textarea')['name']] = post_content
r = self.app.post(f['action'].encode('utf-8'), params=params,
headers={'Referer': '/p/test2/bugs2/1/'.encode("utf-8")})
@@ -2317,7 +2320,7 @@ class TestFunctionalController(TrackerTestController):
def test_tags(self):
p = M.Project.query.get(shortname='test')
- tracker = p.app_instance('bugs')
+ p.app_instance('bugs')
self.new_ticket(summary='a', labels='tag1,tag2')
self.new_ticket(summary='b', labels='tag2')
self.new_ticket(summary='c', labels='42cc,test')
@@ -2336,8 +2339,8 @@ class TestFunctionalController(TrackerTestController):
params = dict()
inputs = f.findAll('input')
for field in inputs:
- if field.has_key('name'):
- params[field['name']] = field.has_key('value') and field['value'] or ''
+ if field.has_key('name'): # nopep8 - beautifulsoup3 actually uses has_key
+ params[field['name']] = field.get('value') or ''
params[f.find('textarea')['name']] = 'test comment'
self.app.post(f['action'].encode('utf-8'), params=params,
headers={'Referer': '/bugs/1/'.encode("utf-8")})
@@ -2392,7 +2395,9 @@ class TestFunctionalController(TrackerTestController):
return_path, rcpts, body = _client.sendmail.call_args[0]
body = body.split('\n')
assert 'Subject: [test:bugs] #1 test <h2> ticket' in body
- assert_in('<p><strong> <a class="alink" href="http://localhost:8080/p/test/bugs/1/">[bugs:#1]</a> test <h2> ticket</strong></p>', body)
+ assert_in('<p><strong> <a class="alink" href="http://localhost:8080/p/test/bugs/1/">[bugs:#1]</a>'
+ ' test <h2> ticket</strong></p>',
+ body)
@patch('forgetracker.search.query_filter_choices')
def test_multiselect(self, query_filter_choices):
@@ -2623,7 +2628,7 @@ class TestEmailMonitoring(TrackerTestController):
if (('thread' in f['action']) and ('post' in f['action'])):
params = {i['name']: i.get('value', '')
for i in f.findAll('input')
- if i.has_key('name')}
+ if i.has_key('name')} # nopep8 - beautifulsoup3 actually uses has_key
params[f.find('textarea')['name']] = 'foobar'
self.app.post(str(f['action']), params)
break # Do it only once if many forms met
@@ -2869,7 +2874,7 @@ class TestBulkMove(TrackerTestController):
original_p = M.Project.query.get(shortname='test')
tracker = p.app_instance('bugs')
original_tracker = original_p.app_instance('bugs')
- r = self.app.post('/p/test/bugs/move_tickets', {
+ self.app.post('/p/test/bugs/move_tickets', {
'tracker': str(tracker.config._id),
'__ticket_ids': [t._id for t in tickets],
'__search': '',
@@ -2907,7 +2912,7 @@ class TestBulkMove(TrackerTestController):
tickets[0].subscribe(user=first_user)
tickets[1].subscribe(user=second_user)
M.MonQTask.query.remove()
- r = self.app.post('/p/test/bugs/move_tickets', {
+ self.app.post('/p/test/bugs/move_tickets', {
'tracker': str(tracker.config._id),
'__ticket_ids': [t._id for t in tickets],
'__search': '',
@@ -2970,7 +2975,7 @@ class TestBulkMove(TrackerTestController):
p = M.Project.query.get(shortname='test2')
tracker = p.app_instance('bugs2')
M.MonQTask.query.remove()
- r = self.app.post('/p/test/bugs/move_tickets', {
+ self.app.post('/p/test/bugs/move_tickets', {
'tracker': str(tracker.config._id),
'__ticket_ids': [t._id for t in tickets],
'__search': '',
http://git-wip-us.apache.org/repos/asf/allura/blob/f2bd03c7/ForgeWiki/forgewiki/tests/functional/test_rest.py
----------------------------------------------------------------------
diff --git a/ForgeWiki/forgewiki/tests/functional/test_rest.py b/ForgeWiki/forgewiki/tests/functional/test_rest.py
index 3bc61bb..4aba7f1 100644
--- a/ForgeWiki/forgewiki/tests/functional/test_rest.py
+++ b/ForgeWiki/forgewiki/tests/functional/test_rest.py
@@ -131,9 +131,9 @@ class TestWikiHasAccess(TestRestApiBase):
h.set_context('test', 'wiki', neighborhood='Projects')
def test_has_access_no_params(self):
- r = self.api_get('/rest/p/test/wiki/has_access', status=404)
- r = self.api_get('/rest/p/test/wiki/has_access?user=root', status=404)
- r = self.api_get('/rest/p/test/wiki/has_access?perm=read', status=404)
+ self.api_get('/rest/p/test/wiki/has_access', status=404)
+ self.api_get('/rest/p/test/wiki/has_access?user=root', status=404)
+ self.api_get('/rest/p/test/wiki/has_access?perm=read', status=404)
def test_has_access_unknown_params(self):
"""Unknown user and/or permission always False for has_access API"""
http://git-wip-us.apache.org/repos/asf/allura/blob/f2bd03c7/ForgeWiki/forgewiki/tests/functional/test_root.py
----------------------------------------------------------------------
diff --git a/ForgeWiki/forgewiki/tests/functional/test_root.py b/ForgeWiki/forgewiki/tests/functional/test_root.py
index b716877..635e2b6 100644
--- a/ForgeWiki/forgewiki/tests/functional/test_root.py
+++ b/ForgeWiki/forgewiki/tests/functional/test_root.py
@@ -35,14 +35,6 @@ from alluratest.controller import TestController
from forgewiki import model
-#---------x---------x---------x---------x---------x---------x---------x
-# RootController methods exposed:
-# index, new_page, search
-# PageController methods exposed:
-# index, edit, history, diff, raw, revert, update
-# CommentController methods exposed:
-# reply, delete
-
class TestRootController(TestController):
@@ -184,7 +176,8 @@ class TestRootController(TestController):
'text': 'sometext',
'labels': 'test label',
'viewable_by-0.id': 'all'}).follow()
- assert '''<a href="/p/test/wiki/search/?q=labels_t:%22test label%22&parser=standard">test label (1)</a>''' in response
+ assert_in('<a href="/p/test/wiki/search/?q=labels_t:%22test label%22&parser=standard">test label (1)</a>',
+ response)
def test_title_slashes(self):
# forward slash not allowed in wiki page title - converted to dash
@@ -335,9 +328,13 @@ class TestRootController(TestController):
**Note:** The logo shown in the sidebar is no longer stored as an object in the wiki (as it was in the Hosted App installation). Rather save it as a regular file, then edit LocalSettings.php, adding""")
self.app.post('/wiki/testdiff/update', params=d)
response = self.app.get('/wiki/testdiff/diff?v1=1&v2=2')
- assert '# Now fix <del> permissons. </del> <ins> permissions. </ins> Wrong permissions may cause <ins> a </ins> massive slowdown!' in response
+ assert_in('# Now fix <del> permissons. </del> <ins> permissions. </ins> '
+ 'Wrong permissions may cause <ins> a </ins> massive slowdown!',
+ response)
response = self.app.get('/wiki/testdiff/diff?v1=2&v2=1')
- assert '# Now fix <del> permissions. </del> <ins> permissons. </ins> Wrong permissions may cause <del> a </del> massive slowdown!' in response
+ assert_in('# Now fix <del> permissions. </del> <ins> permissons. </ins> '
+ 'Wrong permissions may cause <del> a </del> massive slowdown!',
+ response)
def test_page_raw(self):
self.app.post(
@@ -763,7 +760,7 @@ class TestRootController(TestController):
assert inp is not None
# subscribe
self.app.post('/p/test/wiki/subscribe', {'subscribe': True},
- extra_environ={'username': str(user.username)}).follow()
+ extra_environ={'username': str(user.username)}).follow()
# user is subscribed
assert M.Mailbox.subscribed(user_id=user._id)
r = self.app.get('/p/test/wiki/Home/', extra_environ={'username': str(user.username)})
@@ -771,7 +768,7 @@ class TestRootController(TestController):
assert inp is not None
# unsubscribe
self.app.post('/p/test/wiki/subscribe', {'unsubscribe': True},
- extra_environ={'username': str(user.username)}).follow()
+ extra_environ={'username': str(user.username)}).follow()
# user is not subscribed
assert not M.Mailbox.subscribed(user_id=user._id)
r = self.app.get('/p/test/wiki/Home/', extra_environ={'username': str(user.username)})
http://git-wip-us.apache.org/repos/asf/allura/blob/f2bd03c7/scripts/teamforge-import.py
----------------------------------------------------------------------
diff --git a/scripts/teamforge-import.py b/scripts/teamforge-import.py
index 9f601a0..b668128 100644
--- a/scripts/teamforge-import.py
+++ b/scripts/teamforge-import.py
@@ -305,18 +305,7 @@ def convert_project_shortname(teamforge_path):
# FIXME hardcoded
skip_perms_usernames = set([
- 'faisal_saeed', 'dsarkisian', 'debonairamit', 'nishanthiremath', 'Bhuvnesh', 'bluetooth', 'cnkurzke', 'makow2', 'jannes1', 'Joel_Hegberg', 'Farroc', 'brian_chen', 'eirikur',
- 'dmitry_flyorov', 'bipingm', 'MornayJo', 'ibv', 'b_weisshaar', 'k9srb', 'johnmmills', 'a_gomolitsky', 'filim', 'kapoor', 'ljzegers', 'jrukes', 'dwilson9', 'jlin', 'quickie',
- 'johnbell', 'nnikolenko', 'Gaetan', 'Giannetta', 'Katia', 'jackhan', 'jacobwangus', 'adwankar', 'dinobrusco', 'qbarnes', 'ilmojung', 'clifford_chan', 'nbaig', 'fhutchi1',
- 'rinofarina', 'baiyanbin', 'muralidhar', 'duanyiruo', 'bredding', 'mkolkey', 'manvith', 'nanduk', 'engyihan', 'deepsie', 'dabon', 'dino_jiang', 'mattrose', 'peter_j_wilhelm',
- 'emx2500', 'jmcguire', 'lfilimowski', 'guruppandit', 'abhilashisme', 'edwinhm', 'rabbi', 'ferrans', 'guna', 'kevin_robinson', 'adathiruthi', 'kochen', 'onehap', 'kalanithi',
- 'jamesn', 'obu001', 'chetanv', 'Avinash', 'HugoBoss', 'Han_Wei', 'mhooper', 'g16872', 'mfcarignano', 'jim_burke', 'kevin', 'arunkarra', 'adam_feng', 'pavan_scm', 'kostya_katz',
- 'ppazderka', 'eileenzhuang', 'pyammine', 'judyho', 'ashoykh', 'rdemento', 'ibrahim', 'min_wang', 'arvind_setlur', 'moorthy_karthik', 'daniel_nelson', 'dms', 'esnmurthy',
- 'rasa_bonyadlou', 'prashantjoshi', 'edkeating', 'billsaez', 'cambalindo', 'jims', 'bozkoyun', 'andry_deltsov', 'bpowers', 'manuel_milli', 'maryparsons', 'spriporov', 'yutianli',
- 'xiebin', 'tnemeth1', 'udayaps', 'zzzzuser', 'timberger', 'sbarve1', 'zarman', 'rwallace67', 'thangavelu_arum', 'yuhuaixie', 'tingup', 'sekchai', 'sasanplus', 'rupal', 'sebastien_hertz',
- 'sab8123', 'rony_lim', 'slava_kirillin', 'smwest', 'wendydu_yq', 'sco002', 'RonFred', 'spatnala', 'vd', 'Sunny', 'tthompson', 'sunijams', 'slaw', 'rodovich', 'zhangqingqi82', 'venki',
- 'yuntaom', 'xiaojin', 'walterciocosta', 'straus', 'Thomas', 'stupka', 'wangyu', 'yaowang', 'wisekb', 'tyler_louie', 'smartgarfield', 'shekar_mahalingam',
- 'venkata_akella', 'v_yellapragada', 'vavasthi', 'rpatel', 'zhengfang', 'sweetybala', 'vap', 'sergey', 'ymhuang', 'spatel78745'
+ 'username1', 'username2', 'username3'
])
@@ -583,9 +572,9 @@ def import_discussion(project, pid, frs_mapping, sf_project_shortname, nbhd):
parent=p.parent, timestamp=create_date)
p.slug = slug
p.full_slug = full_slug
- if oldest_post == None or oldest_post.timestamp > create_date:
+ if oldest_post is None or oldest_post.timestamp > create_date:
oldest_post = p
- if newest_post == None or newest_post.timestamp < create_date:
+ if newest_post is None or newest_post.timestamp < create_date:
newest_post = p
ThreadLocalORMSession.flush_all()
to.num_replies = to_num_replies
@@ -901,7 +890,8 @@ def _dir_sql(created_on, project, dir_name, rel_path):
AND pfs_type = 'd'
AND pfs_name = '%s'
AND parent_directory = %s;
- """ % (created_on, convert_project_shortname(project.path), options.neighborhood_shortname, dir_name, parent_directory)
+ """ % (created_on, convert_project_shortname(project.path), options.neighborhood_shortname,
+ dir_name, parent_directory)
return sql