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 2024/10/30 17:14:12 UTC
(allura) branch master updated (7b3ac92ad -> bce9a59c2)
This is an automated email from the ASF dual-hosted git repository.
brondsem pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/allura.git
from 7b3ac92ad py312 prep - Conversion of remaining unitest-style assertions
new c5b05e28c __all__ for model/__init__.py files
new 8475df609 clean up unused imports, mark helpers.py lines that we need to keep
new bce9a59c2 pep8 reformatting
The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
Allura/allura/command/base.py | 1 -
Allura/allura/command/create_trove_categories.py | 1 -
Allura/allura/command/reclone_repo.py | 1 -
Allura/allura/command/script.py | 1 -
Allura/allura/command/show_models.py | 2 -
Allura/allura/command/taskd.py | 1 -
Allura/allura/config/app_cfg.py | 2 +-
Allura/allura/config/middleware.py | 3 -
Allura/allura/controllers/auth.py | 2 +-
Allura/allura/controllers/basetest_project_root.py | 2 -
Allura/allura/controllers/discuss.py | 6 +-
Allura/allura/controllers/newforge.py | 2 +-
Allura/allura/controllers/project.py | 2 -
Allura/allura/controllers/repository.py | 4 +-
Allura/allura/controllers/rest.py | 4 +-
Allura/allura/controllers/root.py | 2 +-
Allura/allura/controllers/site_admin.py | 2 +-
Allura/allura/controllers/trovecategories.py | 1 -
Allura/allura/ext/admin/admin_main.py | 6 +-
Allura/allura/ext/admin/widgets.py | 2 -
Allura/allura/ext/user_profile/user_main.py | 3 +-
Allura/allura/lib/app_globals.py | 3 -
Allura/allura/lib/custom_middleware.py | 6 +-
Allura/allura/lib/decorators.py | 3 -
Allura/allura/lib/diff.py | 2 +-
Allura/allura/lib/helpers.py | 17 ++-
Allura/allura/lib/macro.py | 1 -
Allura/allura/lib/markdown_extensions.py | 2 -
Allura/allura/lib/multifactor.py | 1 -
Allura/allura/lib/patches.py | 6 +-
Allura/allura/lib/phone/nexmo.py | 1 -
Allura/allura/lib/plugin.py | 5 +-
Allura/allura/lib/project_create_helpers.py | 2 -
Allura/allura/lib/repository.py | 1 -
Allura/allura/lib/search.py | 3 -
Allura/allura/lib/security.py | 2 +-
Allura/allura/lib/solr.py | 5 +-
Allura/allura/lib/spam/stopforumspamfilter.py | 1 -
Allura/allura/lib/utils.py | 4 +-
Allura/allura/lib/validators.py | 1 -
Allura/allura/lib/widgets/auth_widgets.py | 2 -
Allura/allura/lib/widgets/form_fields.py | 2 -
Allura/allura/lib/widgets/forms.py | 1 -
Allura/allura/lib/widgets/oauth_widgets.py | 2 -
Allura/allura/lib/widgets/project_list.py | 7 +-
Allura/allura/model/artifact.py | 1 -
Allura/allura/model/auth.py | 6 +-
Allura/allura/model/discuss.py | 4 +-
Allura/allura/model/index.py | 3 +-
Allura/allura/model/monq_model.py | 2 +-
Allura/allura/model/neighborhood.py | 2 +-
Allura/allura/model/notification.py | 6 +-
Allura/allura/model/repo_refresh.py | 6 +-
Allura/allura/model/repository.py | 2 +-
Allura/allura/model/session.py | 4 +-
Allura/allura/model/timeline.py | 1 +
Allura/allura/model/webhook.py | 1 -
Allura/allura/scripts/refreshrepo.py | 2 +-
Allura/allura/scripts/reindex_projects.py | 2 +-
Allura/allura/tasks/admin_tasks.py | 1 +
Allura/allura/tasks/event_tasks.py | 1 -
Allura/allura/tasks/export_tasks.py | 1 -
Allura/allura/tasks/index_tasks.py | 1 -
Allura/allura/tasks/repo_tasks.py | 1 -
Allura/allura/templates/__init__.py | 1 -
Allura/allura/templates_responsive/__init__.py | 2 +-
Allura/allura/tests/exclude_from_rewrite_hook.py | 2 +-
Allura/allura/tests/functional/__init__.py | 1 -
Allura/allura/tests/functional/test_admin.py | 2 +-
Allura/allura/tests/functional/test_auth.py | 58 +++++---
Allura/allura/tests/functional/test_discuss.py | 2 -
Allura/allura/tests/functional/test_feeds.py | 2 +-
.../tests/functional/test_personal_dashboard.py | 2 +-
Allura/allura/tests/functional/test_rest.py | 3 +-
Allura/allura/tests/functional/test_root.py | 3 +-
Allura/allura/tests/functional/test_site_admin.py | 1 -
Allura/allura/tests/model/__init__.py | 1 -
Allura/allura/tests/model/test_artifact.py | 2 +
Allura/allura/tests/model/test_auth.py | 16 +--
Allura/allura/tests/model/test_discussion.py | 2 +-
Allura/allura/tests/model/test_filesystem.py | 2 +
Allura/allura/tests/model/test_notification.py | 1 -
Allura/allura/tests/model/test_repo.py | 14 +-
Allura/allura/tests/scripts/__init__.py | 1 -
.../tests/scripts/test_create_sitemap_files.py | 2 +-
Allura/allura/tests/templates/__init__.py | 1 -
.../tests/templates/jinja_master/__init__.py | 1 -
Allura/allura/tests/test_decorators.py | 2 +-
Allura/allura/tests/test_diff.py | 1 -
Allura/allura/tests/test_globals.py | 5 +-
Allura/allura/tests/test_helpers.py | 6 +-
Allura/allura/tests/test_mail_util.py | 1 -
Allura/allura/tests/test_markdown.py | 3 +-
Allura/allura/tests/test_plugin.py | 6 +-
Allura/allura/tests/test_scripttask.py | 1 -
Allura/allura/tests/test_security.py | 2 +-
Allura/allura/tests/test_tasks.py | 1 -
Allura/allura/tests/test_utils.py | 2 -
Allura/allura/tests/test_validators.py | 6 +-
Allura/allura/tests/test_webhooks.py | 1 -
.../test_discussion_moderation_controller.py | 2 +-
Allura/allura/tests/unit/spam/test_spam_filter.py | 1 -
Allura/allura/tests/unit/test_app.py | 2 +-
Allura/allura/tests/unit/test_artifact.py | 3 +-
Allura/allura/tests/unit/test_project.py | 1 -
Allura/allura/tests/unit/test_repo.py | 2 -
Allura/allura/tests/unit/test_session.py | 4 +-
Allura/allura/tests/unit/test_sitemapentry.py | 1 -
Allura/allura/tests/unit/test_solr.py | 3 +-
Allura/allura/webhooks.py | 1 -
Allura/allura/websetup/bootstrap.py | 9 +-
Allura/allura/websetup/schema.py | 1 -
Allura/ldap-setup.py | 1 +
Allura/ldap-userconfig.py | 1 +
Allura/setup.py | 2 +-
AlluraTest/alluratest/controller.py | 5 +-
AlluraTest/alluratest/smtp_debug.py | 2 +-
AlluraTest/alluratest/test_syntax.py | 1 -
AlluraTest/alluratest/tools.py | 2 -
AlluraTest/alluratest/validation.py | 5 -
ForgeActivity/forgeactivity/main.py | 2 +-
.../forgeactivity/tests/functional/test_root.py | 2 +-
ForgeBlog/forgeblog/model/__init__.py | 7 +
ForgeBlog/forgeblog/model/blog.py | 1 -
ForgeBlog/forgeblog/tests/test_commands.py | 5 +-
ForgeBlog/forgeblog/widgets.py | 2 +-
ForgeChat/forgechat/model/__init__.py | 5 +
ForgeChat/forgechat/model/chat.py | 1 +
.../forgediscussion/controllers/forum.py | 1 -
.../forgediscussion/controllers/root.py | 2 +-
ForgeDiscussion/forgediscussion/forum_main.py | 1 -
ForgeDiscussion/forgediscussion/import_support.py | 1 -
ForgeDiscussion/forgediscussion/model/__init__.py | 7 +
ForgeDiscussion/forgediscussion/model/forum.py | 2 -
.../forgediscussion/tests/functional/test_forum.py | 1 -
.../forgediscussion/widgets/forum_widgets.py | 4 +-
ForgeFeedback/forgefeedback/feedback_main.py | 14 +-
ForgeFeedback/forgefeedback/model/__init__.py | 2 +
ForgeFeedback/forgefeedback/model/feedback.py | 5 -
.../forgefeedback/tests/functional/test_root.py | 5 -
ForgeFeedback/setup.py | 4 -
ForgeFiles/forgefiles/files_main.py | 19 +--
ForgeFiles/forgefiles/model/__init__.py | 5 +
ForgeFiles/forgefiles/model/files.py | 3 -
ForgeFiles/forgefiles/tests/__init__.py | 1 -
ForgeFiles/forgefiles/tests/functional/__init__.py | 1 -
.../forgefiles/tests/functional/test_root.py | 2 +-
ForgeFiles/forgefiles/tests/model/__init__.py | 1 -
ForgeGit/forgegit/controllers.py | 2 +-
ForgeGit/forgegit/model/__init__.py | 2 +
ForgeGit/forgegit/tests/model/test_repository.py | 1 -
ForgeGit/forgegit/tests/test_git_app.py | 1 -
ForgeGit/forgegit/tests/test_tasks.py | 2 -
ForgeImporters/forgeimporters/forge/discussion.py | 40 +++---
.../forgeimporters/github/tests/test_utils.py | 2 +-
.../forgeimporters/github/tests/test_wiki.py | 2 +-
ForgeImporters/forgeimporters/github/tracker.py | 1 -
ForgeImporters/forgeimporters/github/wiki.py | 1 -
.../forgeimporters/tests/forge/test_discussion.py | 154 ++++++++++-----------
.../forgeimporters/tests/forge/test_tracker.py | 4 +-
.../tests/github/functional/test_github.py | 1 -
.../forgeimporters/tests/github/test_tracker.py | 2 +-
ForgeImporters/forgeimporters/tests/test_base.py | 4 +-
.../forgeimporters/trac/tests/test_tickets.py | 13 +-
ForgeSVN/forgesvn/controllers.py | 2 +-
ForgeSVN/forgesvn/model/__init__.py | 2 +
ForgeSVN/forgesvn/model/svn.py | 3 +-
ForgeSVN/forgesvn/svn_main.py | 1 -
ForgeSVN/forgesvn/tests/functional/test_auth.py | 2 +-
ForgeSVN/forgesvn/tests/model/test_repository.py | 3 +-
ForgeSVN/forgesvn/tests/test_svn_app.py | 1 -
ForgeSVN/forgesvn/tests/test_tasks.py | 1 -
ForgeShortUrl/forgeshorturl/model/__init__.py | 2 +
ForgeShortUrl/forgeshorturl/model/shorturl.py | 2 +-
ForgeTracker/forgetracker/import_support.py | 3 +-
ForgeTracker/forgetracker/model/__init__.py | 8 ++
ForgeTracker/forgetracker/model/ticket.py | 1 -
ForgeTracker/forgetracker/plugins.py | 2 -
ForgeTracker/forgetracker/search.py | 3 +-
.../forgetracker/tests/functional/test_root.py | 4 -
.../tests/unit/test_root_controller.py | 1 -
.../forgetracker/tests/unit/test_ticket_model.py | 3 +-
ForgeTracker/forgetracker/widgets/ticket_form.py | 1 -
ForgeTracker/forgetracker/widgets/ticket_search.py | 2 -
.../forgeuserstats/controllers/userstats.py | 1 -
ForgeUserStats/forgeuserstats/tests/test_model.py | 5 +-
ForgeUserStats/forgeuserstats/tests/test_stats.py | 1 -
ForgeWiki/forgewiki/converters.py | 1 -
ForgeWiki/forgewiki/model/__init__.py | 7 +
ForgeWiki/forgewiki/model/wiki.py | 2 +-
ForgeWiki/forgewiki/tests/test_models.py | 1 +
conftest.py | 3 +-
run_tests | 1 -
scripts/changelog.py | 1 +
scripts/migrations/013-update-ordinals.py | 1 +
.../015-add-neighborhood_id-to-blog-posts.py | 1 +
.../migrations/020-remove-wiki-title-slashes.py | 1 +
scripts/migrations/022-change-anon-display-name.py | 1 +
.../migrations/024-migrate-custom-profile-text.py | 1 +
scripts/migrations/025-add-is-nbhd-project.py | 1 +
scripts/migrations/026-install-activity-tool.py | 1 +
.../027-change-ticket-write-permissions.py | 1 +
scripts/migrations/028-remove-svn-trees.py | 1 +
scripts/migrations/029-set-mailbox-queue_empty.py | 1 +
.../migrations/031-set-user-pending-to-false.py | 1 +
.../032-subscribe-merge-request-submitters.py | 2 +-
.../033-change-comment-anon-permissions.py | 5 +-
...34-update_subscriptions_ticket_and_mr_titles.py | 3 +-
scripts/perf/generate-projects.py | 1 -
scripts/perf/load-up-forum.py | 9 +-
scripts/perf/sstress.py | 1 +
scripts/perf/test_git_lcd.py | 1 +
scripts/trac_import.py | 1 -
213 files changed, 352 insertions(+), 475 deletions(-)
(allura) 01/03: __all__ for model/__init__.py files
Posted by br...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
brondsem pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/allura.git
commit c5b05e28c62a634227297b84bd892a5cd0eb7acd
Author: Dave Brondsema <db...@slashdotmedia.com>
AuthorDate: Wed Oct 30 12:39:47 2024 -0400
__all__ for model/__init__.py files
---
ForgeBlog/forgeblog/model/__init__.py | 7 +++++++
ForgeChat/forgechat/model/__init__.py | 5 +++++
ForgeDiscussion/forgediscussion/model/__init__.py | 7 +++++++
ForgeFeedback/forgefeedback/model/__init__.py | 2 ++
ForgeFiles/forgefiles/model/__init__.py | 5 +++++
ForgeGit/forgegit/model/__init__.py | 2 ++
ForgeSVN/forgesvn/model/__init__.py | 2 ++
ForgeShortUrl/forgeshorturl/model/__init__.py | 2 ++
ForgeTracker/forgetracker/model/__init__.py | 8 ++++++++
ForgeWiki/forgewiki/model/__init__.py | 7 +++++++
10 files changed, 47 insertions(+)
diff --git a/ForgeBlog/forgeblog/model/__init__.py b/ForgeBlog/forgeblog/model/__init__.py
index ab9c86430..b19bbce9f 100644
--- a/ForgeBlog/forgeblog/model/__init__.py
+++ b/ForgeBlog/forgeblog/model/__init__.py
@@ -16,3 +16,10 @@
# under the License.
from .blog import Globals, BlogPost, BlogAttachment, BlogPostSnapshot
+
+__all__ = [
+ 'Globals',
+ 'BlogPost',
+ 'BlogAttachment',
+ 'BlogPostSnapshot',
+]
diff --git a/ForgeChat/forgechat/model/__init__.py b/ForgeChat/forgechat/model/__init__.py
index af6d392e4..bf073aa38 100644
--- a/ForgeChat/forgechat/model/__init__.py
+++ b/ForgeChat/forgechat/model/__init__.py
@@ -16,3 +16,8 @@
# under the License.
from .chat import ChatChannel, ChatMessage
+
+__all__ = [
+ 'ChatChannel',
+ 'ChatMessage',
+]
diff --git a/ForgeDiscussion/forgediscussion/model/__init__.py b/ForgeDiscussion/forgediscussion/model/__init__.py
index b1a4d1467..c17446d9b 100644
--- a/ForgeDiscussion/forgediscussion/model/__init__.py
+++ b/ForgeDiscussion/forgediscussion/model/__init__.py
@@ -16,3 +16,10 @@
# under the License.
from .forum import Forum, ForumThread, ForumPost, ForumAttachment
+
+__all__ = [
+ 'Forum',
+ 'ForumThread',
+ 'ForumPost',
+ 'ForumAttachment',
+]
diff --git a/ForgeFeedback/forgefeedback/model/__init__.py b/ForgeFeedback/forgefeedback/model/__init__.py
index 3fb8ad007..e9579136a 100644
--- a/ForgeFeedback/forgefeedback/model/__init__.py
+++ b/ForgeFeedback/forgefeedback/model/__init__.py
@@ -16,3 +16,5 @@
# under the License.
from .feedback import Feedback
+
+__all__ = ['Feedback']
diff --git a/ForgeFiles/forgefiles/model/__init__.py b/ForgeFiles/forgefiles/model/__init__.py
index a0f0fee65..2e6c80409 100755
--- a/ForgeFiles/forgefiles/model/__init__.py
+++ b/ForgeFiles/forgefiles/model/__init__.py
@@ -16,3 +16,8 @@
# under the License.
from .files import UploadFolder, UploadFiles
+
+__all__ = [
+ 'UploadFolder',
+ 'UploadFiles',
+]
diff --git a/ForgeGit/forgegit/model/__init__.py b/ForgeGit/forgegit/model/__init__.py
index 65eeb2151..98ad5c392 100644
--- a/ForgeGit/forgegit/model/__init__.py
+++ b/ForgeGit/forgegit/model/__init__.py
@@ -16,3 +16,5 @@
# under the License.
from .git_repo import Repository
+
+__all__ = ['Repository']
diff --git a/ForgeSVN/forgesvn/model/__init__.py b/ForgeSVN/forgesvn/model/__init__.py
index bdfca0d74..adbe580fb 100644
--- a/ForgeSVN/forgesvn/model/__init__.py
+++ b/ForgeSVN/forgesvn/model/__init__.py
@@ -16,3 +16,5 @@
# under the License.
from .svn import Repository
+
+__all__ = ['Repository']
diff --git a/ForgeShortUrl/forgeshorturl/model/__init__.py b/ForgeShortUrl/forgeshorturl/model/__init__.py
index 34e1ff7b2..6f718263d 100644
--- a/ForgeShortUrl/forgeshorturl/model/__init__.py
+++ b/ForgeShortUrl/forgeshorturl/model/__init__.py
@@ -16,3 +16,5 @@
# under the License.
from .shorturl import ShortUrl
+
+__all__ = ['ShortUrl']
diff --git a/ForgeTracker/forgetracker/model/__init__.py b/ForgeTracker/forgetracker/model/__init__.py
index 4e0d859d6..31aa22c32 100644
--- a/ForgeTracker/forgetracker/model/__init__.py
+++ b/ForgeTracker/forgetracker/model/__init__.py
@@ -16,3 +16,11 @@
# under the License.
from .ticket import Globals, Bin, Ticket, TicketAttachment, MovedTicket
+
+__all__ = [
+ 'Globals',
+ 'Bin',
+ 'Ticket',
+ 'TicketAttachment',
+ 'MovedTicket',
+]
diff --git a/ForgeWiki/forgewiki/model/__init__.py b/ForgeWiki/forgewiki/model/__init__.py
index 9a9a6923d..2cc99d855 100644
--- a/ForgeWiki/forgewiki/model/__init__.py
+++ b/ForgeWiki/forgewiki/model/__init__.py
@@ -16,3 +16,10 @@
# under the License.
from .wiki import Page, WikiAttachment, Globals, PageHistory
+
+__all__ = [
+ 'Page',
+ 'WikiAttachment',
+ 'Globals',
+ 'PageHistory',
+]
(allura) 02/03: clean up unused imports, mark helpers.py lines that we need to keep
Posted by br...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
brondsem pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/allura.git
commit 8475df60918ea5cf560584000a692bf87906ad34
Author: Dave Brondsema <db...@slashdotmedia.com>
AuthorDate: Wed Oct 30 12:59:17 2024 -0400
clean up unused imports, mark helpers.py lines that we need to keep
---
Allura/allura/command/base.py | 1 -
Allura/allura/command/create_trove_categories.py | 1 -
Allura/allura/command/reclone_repo.py | 1 -
Allura/allura/command/script.py | 1 -
Allura/allura/command/show_models.py | 2 --
Allura/allura/command/taskd.py | 1 -
Allura/allura/config/app_cfg.py | 2 +-
Allura/allura/config/middleware.py | 3 ---
Allura/allura/controllers/auth.py | 1 -
Allura/allura/controllers/basetest_project_root.py | 2 --
Allura/allura/controllers/discuss.py | 6 ++----
Allura/allura/controllers/newforge.py | 2 +-
Allura/allura/controllers/project.py | 2 --
Allura/allura/controllers/repository.py | 4 +---
Allura/allura/controllers/rest.py | 3 +--
Allura/allura/controllers/root.py | 2 +-
Allura/allura/controllers/site_admin.py | 2 +-
Allura/allura/controllers/trovecategories.py | 1 -
Allura/allura/ext/admin/admin_main.py | 6 ++----
Allura/allura/ext/admin/widgets.py | 2 --
Allura/allura/ext/user_profile/user_main.py | 3 +--
Allura/allura/lib/app_globals.py | 3 ---
Allura/allura/lib/custom_middleware.py | 2 +-
Allura/allura/lib/decorators.py | 3 ---
Allura/allura/lib/diff.py | 2 +-
Allura/allura/lib/helpers.py | 15 ++++++---------
Allura/allura/lib/macro.py | 1 -
Allura/allura/lib/markdown_extensions.py | 2 --
Allura/allura/lib/multifactor.py | 1 -
Allura/allura/lib/patches.py | 4 ----
Allura/allura/lib/phone/nexmo.py | 1 -
Allura/allura/lib/plugin.py | 4 +---
Allura/allura/lib/project_create_helpers.py | 2 --
Allura/allura/lib/repository.py | 1 -
Allura/allura/lib/search.py | 3 ---
Allura/allura/lib/solr.py | 1 -
Allura/allura/lib/spam/stopforumspamfilter.py | 1 -
Allura/allura/lib/utils.py | 4 +---
Allura/allura/lib/validators.py | 1 -
Allura/allura/lib/widgets/auth_widgets.py | 2 --
Allura/allura/lib/widgets/form_fields.py | 2 --
Allura/allura/lib/widgets/forms.py | 1 -
Allura/allura/lib/widgets/oauth_widgets.py | 1 -
Allura/allura/lib/widgets/project_list.py | 1 -
Allura/allura/model/artifact.py | 1 -
Allura/allura/model/auth.py | 4 ----
Allura/allura/model/discuss.py | 2 --
Allura/allura/model/index.py | 1 -
Allura/allura/model/monq_model.py | 2 +-
Allura/allura/model/neighborhood.py | 2 +-
Allura/allura/model/notification.py | 2 --
Allura/allura/model/repo_refresh.py | 4 ++--
Allura/allura/model/repository.py | 2 +-
Allura/allura/model/session.py | 2 --
Allura/allura/model/webhook.py | 1 -
Allura/allura/scripts/reindex_projects.py | 2 +-
Allura/allura/tasks/event_tasks.py | 1 -
Allura/allura/tasks/export_tasks.py | 1 -
Allura/allura/tasks/index_tasks.py | 1 -
Allura/allura/tasks/repo_tasks.py | 1 -
Allura/allura/tests/functional/test_auth.py | 4 ++--
Allura/allura/tests/functional/test_discuss.py | 2 --
Allura/allura/tests/functional/test_rest.py | 1 -
Allura/allura/tests/functional/test_root.py | 1 -
Allura/allura/tests/functional/test_site_admin.py | 1 -
Allura/allura/tests/model/test_auth.py | 2 +-
Allura/allura/tests/model/test_notification.py | 1 -
Allura/allura/tests/model/test_repo.py | 1 -
Allura/allura/tests/test_decorators.py | 2 +-
Allura/allura/tests/test_diff.py | 1 -
Allura/allura/tests/test_globals.py | 3 ---
Allura/allura/tests/test_helpers.py | 1 -
Allura/allura/tests/test_mail_util.py | 1 -
Allura/allura/tests/test_markdown.py | 1 -
Allura/allura/tests/test_scripttask.py | 1 -
Allura/allura/tests/test_security.py | 2 +-
Allura/allura/tests/test_tasks.py | 1 -
Allura/allura/tests/test_utils.py | 2 --
Allura/allura/tests/test_webhooks.py | 1 -
Allura/allura/tests/unit/spam/test_spam_filter.py | 1 -
Allura/allura/tests/unit/test_artifact.py | 1 -
Allura/allura/tests/unit/test_project.py | 1 -
Allura/allura/tests/unit/test_repo.py | 2 --
Allura/allura/tests/unit/test_sitemapentry.py | 1 -
Allura/allura/tests/unit/test_solr.py | 1 -
Allura/allura/webhooks.py | 1 -
Allura/allura/websetup/bootstrap.py | 4 ----
Allura/allura/websetup/schema.py | 1 -
AlluraTest/alluratest/controller.py | 5 +----
AlluraTest/alluratest/tools.py | 2 --
AlluraTest/alluratest/validation.py | 5 -----
ForgeActivity/forgeactivity/main.py | 2 +-
ForgeBlog/forgeblog/model/blog.py | 1 -
ForgeBlog/forgeblog/tests/test_commands.py | 3 ---
ForgeDiscussion/forgediscussion/controllers/forum.py | 1 -
ForgeDiscussion/forgediscussion/controllers/root.py | 2 +-
ForgeDiscussion/forgediscussion/forum_main.py | 1 -
ForgeDiscussion/forgediscussion/import_support.py | 1 -
ForgeDiscussion/forgediscussion/model/forum.py | 2 --
.../forgediscussion/tests/functional/test_forum.py | 1 -
ForgeDiscussion/forgediscussion/widgets/forum_widgets.py | 2 --
ForgeFeedback/forgefeedback/feedback_main.py | 5 ++---
ForgeFeedback/forgefeedback/model/feedback.py | 5 -----
ForgeFeedback/forgefeedback/tests/functional/test_root.py | 4 ----
ForgeFiles/forgefiles/files_main.py | 2 +-
ForgeGit/forgegit/controllers.py | 2 +-
ForgeGit/forgegit/tests/model/test_repository.py | 1 -
ForgeGit/forgegit/tests/test_git_app.py | 1 -
ForgeGit/forgegit/tests/test_tasks.py | 1 -
ForgeImporters/forgeimporters/github/tracker.py | 1 -
ForgeImporters/forgeimporters/github/wiki.py | 1 -
ForgeImporters/forgeimporters/trac/tests/test_tickets.py | 2 +-
ForgeSVN/forgesvn/controllers.py | 2 +-
ForgeSVN/forgesvn/model/svn.py | 3 +--
ForgeSVN/forgesvn/svn_main.py | 1 -
ForgeSVN/forgesvn/tests/model/test_repository.py | 1 -
ForgeSVN/forgesvn/tests/test_svn_app.py | 1 -
ForgeSVN/forgesvn/tests/test_tasks.py | 1 -
ForgeShortUrl/forgeshorturl/model/shorturl.py | 2 +-
ForgeTracker/forgetracker/import_support.py | 1 -
ForgeTracker/forgetracker/model/ticket.py | 1 -
ForgeTracker/forgetracker/plugins.py | 2 --
ForgeTracker/forgetracker/search.py | 1 -
ForgeTracker/forgetracker/tests/functional/test_root.py | 4 ----
.../forgetracker/tests/unit/test_root_controller.py | 1 -
ForgeTracker/forgetracker/tests/unit/test_ticket_model.py | 1 -
ForgeTracker/forgetracker/widgets/ticket_form.py | 1 -
ForgeTracker/forgetracker/widgets/ticket_search.py | 1 -
ForgeUserStats/forgeuserstats/controllers/userstats.py | 1 -
ForgeUserStats/forgeuserstats/tests/test_model.py | 1 -
ForgeUserStats/forgeuserstats/tests/test_stats.py | 1 -
ForgeWiki/forgewiki/converters.py | 1 -
ForgeWiki/forgewiki/model/wiki.py | 1 -
run_tests | 1 -
.../migrations/032-subscribe-merge-request-submitters.py | 2 +-
scripts/migrations/033-change-comment-anon-permissions.py | 5 ++---
.../034-update_subscriptions_ticket_and_mr_titles.py | 1 -
scripts/perf/generate-projects.py | 1 -
scripts/perf/load-up-forum.py | 7 +++----
scripts/trac_import.py | 1 -
140 files changed, 49 insertions(+), 228 deletions(-)
diff --git a/Allura/allura/command/base.py b/Allura/allura/command/base.py
index de09018c9..cf495fbf4 100644
--- a/Allura/allura/command/base.py
+++ b/Allura/allura/command/base.py
@@ -18,7 +18,6 @@
import os
import logging
-import six
import tg
from paste.script import command
from paste.deploy import appconfig
diff --git a/Allura/allura/command/create_trove_categories.py b/Allura/allura/command/create_trove_categories.py
index bdb9815b9..d17304047 100644
--- a/Allura/allura/command/create_trove_categories.py
+++ b/Allura/allura/command/create_trove_categories.py
@@ -25,7 +25,6 @@ from mock import patch, Mock
from . import base
from allura import model as M
-import six
log = logging.getLogger(__name__)
diff --git a/Allura/allura/command/reclone_repo.py b/Allura/allura/command/reclone_repo.py
index a25e8ca68..ff99336bc 100644
--- a/Allura/allura/command/reclone_repo.py
+++ b/Allura/allura/command/reclone_repo.py
@@ -15,7 +15,6 @@
# specific language governing permissions and limitations
# under the License.
-import warnings
from tg import tmpl_context as c
diff --git a/Allura/allura/command/script.py b/Allura/allura/command/script.py
index a004d41fa..27b841de0 100644
--- a/Allura/allura/command/script.py
+++ b/Allura/allura/command/script.py
@@ -18,7 +18,6 @@
import sys
import os.path
import cProfile
-import warnings
from tg import tmpl_context as c
import tg
diff --git a/Allura/allura/command/show_models.py b/Allura/allura/command/show_models.py
index b5d9d4300..6702ba990 100644
--- a/Allura/allura/command/show_models.py
+++ b/Allura/allura/command/show_models.py
@@ -15,7 +15,6 @@
# specific language governing permissions and limitations
# under the License.
-import sys
from collections import defaultdict
from contextlib import contextmanager
from itertools import groupby
@@ -32,7 +31,6 @@ from allura.lib.exceptions import CompoundError
from allura.lib import helpers as h
from allura.lib import utils
from . import base
-import six
class ShowModelsCommand(base.Command):
diff --git a/Allura/allura/command/taskd.py b/Allura/allura/command/taskd.py
index 2268d0426..01d4b710d 100644
--- a/Allura/allura/command/taskd.py
+++ b/Allura/allura/command/taskd.py
@@ -20,7 +20,6 @@ import re
import logging
import os
import time
-import six.moves.queue
from contextlib import contextmanager
from datetime import datetime, timedelta
import signal
diff --git a/Allura/allura/config/app_cfg.py b/Allura/allura/config/app_cfg.py
index dd4b975ef..bf33f6ab0 100644
--- a/Allura/allura/config/app_cfg.py
+++ b/Allura/allura/config/app_cfg.py
@@ -50,7 +50,7 @@ from tg.support.converters import asint
import allura
# needed for tg.configuration to work
-from allura.lib import app_globals, helpers
+from allura.lib import helpers
from allura.lib.package_path_loader import PackagePathLoader
log = logging.getLogger(__name__)
diff --git a/Allura/allura/config/middleware.py b/Allura/allura/config/middleware.py
index ec3547274..19c8e3e3b 100644
--- a/Allura/allura/config/middleware.py
+++ b/Allura/allura/config/middleware.py
@@ -24,8 +24,6 @@ import pickle
import re
import warnings
-import six
-import tg
import pkg_resources
from tg import config
from paste.deploy.converters import asbool, aslist, asint
@@ -38,7 +36,6 @@ from werkzeug.debug import DebuggedApplication
import activitystream
import ew
import formencode
-import ming
from ming.odm.middleware import MingMiddleware
from beaker_session_jwt import JWTCookieSession
diff --git a/Allura/allura/controllers/auth.py b/Allura/allura/controllers/auth.py
index bcfa181e3..770281005 100644
--- a/Allura/allura/controllers/auth.py
+++ b/Allura/allura/controllers/auth.py
@@ -22,7 +22,6 @@ import os
from base64 import b32encode
from datetime import datetime
import re
-import warnings
from urllib.parse import urlparse, urljoin
import bson
diff --git a/Allura/allura/controllers/basetest_project_root.py b/Allura/allura/controllers/basetest_project_root.py
index a110a962f..805c80a8e 100644
--- a/Allura/allura/controllers/basetest_project_root.py
+++ b/Allura/allura/controllers/basetest_project_root.py
@@ -27,12 +27,10 @@ from tg import TGController
from paste.deploy.converters import asbool
from allura.lib.security import require, require_authenticated, require_access, has_access
-from allura.lib import helpers as h
from allura.lib import plugin
from allura import model as M
from .root import RootController
from .project import ProjectController
-from .rest import RestController
__all__ = ['RootController']
diff --git a/Allura/allura/controllers/discuss.py b/Allura/allura/controllers/discuss.py
index 0d732f43c..e5ed81f87 100644
--- a/Allura/allura/controllers/discuss.py
+++ b/Allura/allura/controllers/discuss.py
@@ -15,14 +15,13 @@
# specific language governing permissions and limitations
# under the License.
-from urllib.parse import unquote, urlsplit, parse_qs
+from urllib.parse import unquote
from datetime import datetime
import logging
import pymongo
from tg import expose, redirect, validate, request, flash, response
-from tg.decorators import with_trailing_slash, without_trailing_slash, before_render, before_validate
-from decorator import decorator
+from tg.decorators import with_trailing_slash, without_trailing_slash
from tg import tmpl_context as c, app_globals as g
from webob import exc
@@ -44,7 +43,6 @@ from allura.lib.widgets import discuss as DW
from allura.lib.widgets import form_fields as ffw
from allura.model.auth import User
-from allura.model.artifact import ArtifactReference
from .attachments import AttachmentsController, AttachmentController
from .feed import FeedArgs, FeedController
import six
diff --git a/Allura/allura/controllers/newforge.py b/Allura/allura/controllers/newforge.py
index bd0f389ce..68351fd3f 100644
--- a/Allura/allura/controllers/newforge.py
+++ b/Allura/allura/controllers/newforge.py
@@ -19,7 +19,7 @@ from io import BytesIO
import six
from tg import expose
-from tg.decorators import without_trailing_slash, with_trailing_slash
+from tg.decorators import without_trailing_slash
from webob import exc
from tg import app_globals as g
diff --git a/Allura/allura/controllers/project.py b/Allura/allura/controllers/project.py
index 9f5868dc7..86ba0a7b4 100644
--- a/Allura/allura/controllers/project.py
+++ b/Allura/allura/controllers/project.py
@@ -28,7 +28,6 @@ from tg.decorators import with_trailing_slash, without_trailing_slash
from tg import tmpl_context as c, app_globals as g
from paste.deploy.converters import asbool
from webob import exc
-import jinja2
import markupsafe
import pymongo
@@ -49,7 +48,6 @@ from allura.lib.widgets import form_fields as ffw
from allura.lib.widgets import project_list as plw
from allura.lib import plugin, exceptions
from .search import ProjectBrowseController
-from allura.ext.user_profile.user_main import UserProfileApp
log = logging.getLogger(__name__)
diff --git a/Allura/allura/controllers/repository.py b/Allura/allura/controllers/repository.py
index 8138fd57b..111ba510a 100644
--- a/Allura/allura/controllers/repository.py
+++ b/Allura/allura/controllers/repository.py
@@ -15,13 +15,11 @@
# specific language governing permissions and limitations
# under the License.
-import os
import logging
import difflib
from allura.lib.utils import permanent_redirect
-from datetime import datetime
-from urllib.parse import quote, unquote
+from urllib.parse import unquote
from collections import defaultdict, OrderedDict
diff --git a/Allura/allura/controllers/rest.py b/Allura/allura/controllers/rest.py
index e0b54fd16..82a39e1f4 100644
--- a/Allura/allura/controllers/rest.py
+++ b/Allura/allura/controllers/rest.py
@@ -20,7 +20,7 @@ from __future__ import annotations
import json
import logging
from datetime import datetime, timedelta
-from urllib.parse import unquote, urlparse, parse_qs, parse_qsl
+from urllib.parse import unquote, parse_qs
import oauthlib.oauth1
import oauthlib.oauth2
@@ -31,7 +31,6 @@ import tg
from tg import expose, flash, redirect, config
from tg import tmpl_context as c, app_globals as g
from tg import request, response
-from tg.decorators import without_trailing_slash
import colander
from ming.odm import session
diff --git a/Allura/allura/controllers/root.py b/Allura/allura/controllers/root.py
index c626ddf4e..fd0337538 100644
--- a/Allura/allura/controllers/root.py
+++ b/Allura/allura/controllers/root.py
@@ -19,7 +19,7 @@
import logging
from string import Template
-from tg import expose, request, config, session, redirect, flash
+from tg import expose, request, redirect, flash
from tg.decorators import with_trailing_slash
from tg import tmpl_context as c
from tg import response
diff --git a/Allura/allura/controllers/site_admin.py b/Allura/allura/controllers/site_admin.py
index 19ed71e4a..ca1e845b2 100644
--- a/Allura/allura/controllers/site_admin.py
+++ b/Allura/allura/controllers/site_admin.py
@@ -20,7 +20,7 @@ import logging
from datetime import datetime, timedelta
import shlex
-from tg import expose, validate, flash, config, redirect
+from tg import expose, validate, flash, redirect
from tg.decorators import with_trailing_slash, without_trailing_slash
import bson
import tg
diff --git a/Allura/allura/controllers/trovecategories.py b/Allura/allura/controllers/trovecategories.py
index d94d60e42..971da330c 100644
--- a/Allura/allura/controllers/trovecategories.py
+++ b/Allura/allura/controllers/trovecategories.py
@@ -31,7 +31,6 @@ from allura.lib.security import require_authenticated, require_site_admin
from allura.lib.widgets import forms
from allura.lib.plugin import SiteAdminExtension
from allura.app import SitemapEntry
-import six
class F:
diff --git a/Allura/allura/ext/admin/admin_main.py b/Allura/allura/ext/admin/admin_main.py
index 6feecd038..e5620aafb 100644
--- a/Allura/allura/ext/admin/admin_main.py
+++ b/Allura/allura/ext/admin/admin_main.py
@@ -18,7 +18,6 @@
import logging
import re
import os
-from random import randint
from collections import OrderedDict
from datetime import datetime
from urllib.parse import urlparse
@@ -26,7 +25,7 @@ import json
from operator import itemgetter, attrgetter
import pkg_resources
-from tg import tmpl_context as c, app_globals as g, response
+from tg import tmpl_context as c, app_globals as g
from tg import request
from paste.deploy.converters import asbool, aslist
from tg import expose, redirect, flash, validate, config, jsonify
@@ -35,13 +34,12 @@ from webob import exc
from bson import ObjectId
from ming.odm.odmsession import ThreadLocalODMSession
from ming.odm import session
-import PIL
from allura.app import Application, DefaultAdminController, SitemapEntry
from allura.lib import helpers as h
from allura import version
from allura import model as M
-from allura.lib.security import has_access, require_access, is_site_admin
+from allura.lib.security import has_access, require_access
from allura.lib.widgets import form_fields as ffw
from allura.lib import exceptions as forge_exc
from allura.lib import plugin
diff --git a/Allura/allura/ext/admin/widgets.py b/Allura/allura/ext/admin/widgets.py
index e5537f467..2e1dfba23 100644
--- a/Allura/allura/ext/admin/widgets.py
+++ b/Allura/allura/ext/admin/widgets.py
@@ -14,7 +14,6 @@
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
-import tg
from tg import tmpl_context as c
import ew as ew_core
@@ -28,7 +27,6 @@ from allura.lib.widgets import forms as ff
from allura.lib.widgets import form_fields as ffw
from bson import ObjectId
-from paste.deploy.converters import aslist
class CardField(ew._Jinja2Widget):
diff --git a/Allura/allura/ext/user_profile/user_main.py b/Allura/allura/ext/user_profile/user_main.py
index cf7840523..635693e8d 100644
--- a/Allura/allura/ext/user_profile/user_main.py
+++ b/Allura/allura/ext/user_profile/user_main.py
@@ -27,7 +27,6 @@ from tg import tmpl_context as c, app_globals as g
from pytz import timezone
from tg import expose, redirect, validate, flash
from tg.decorators import without_trailing_slash
-from decorator import decorator
from webob import exc
from allura import version
@@ -40,7 +39,7 @@ from allura.lib.decorators import require_post
from allura.lib.plugin import AuthenticationProvider
from allura.lib.security import require_access
from allura.lib.widgets.user_profile import SendMessageForm, SectionsUtil, SectionBase, ProjectsSectionBase
-from allura.model import User, ACE, ProjectRole
+from allura.model import ACE, ProjectRole
log = logging.getLogger(__name__)
diff --git a/Allura/allura/lib/app_globals.py b/Allura/allura/lib/app_globals.py
index fc6bfbba9..0870579f8 100644
--- a/Allura/allura/lib/app_globals.py
+++ b/Allura/allura/lib/app_globals.py
@@ -18,11 +18,9 @@ from __future__ import annotations
import re
import logging
-import html
import hashlib
import json
import datetime
-from urllib.parse import urlencode
from subprocess import Popen, PIPE
import os
import time
@@ -63,7 +61,6 @@ from allura.lib.macro import uncacheable_macros_names
from allura.lib.widgets import analytics
from allura.lib.security import Credentials
from allura.lib.solr import MockSOLR, make_solr_from_config
-from allura.model.session import artifact_orm_session
import six
"""The application's Globals object"""
diff --git a/Allura/allura/lib/custom_middleware.py b/Allura/allura/lib/custom_middleware.py
index f73036d16..0e8c0392a 100644
--- a/Allura/allura/lib/custom_middleware.py
+++ b/Allura/allura/lib/custom_middleware.py
@@ -34,7 +34,7 @@ from allura.lib import helpers as h
from allura.lib.utils import is_ajax
from allura import model as M
import allura.model.repository
-from tg import tmpl_context as c, app_globals as g
+from tg import tmpl_context as c
log = logging.getLogger(__name__)
diff --git a/Allura/allura/lib/decorators.py b/Allura/allura/lib/decorators.py
index a0fecc1f4..cd27647b4 100644
--- a/Allura/allura/lib/decorators.py
+++ b/Allura/allura/lib/decorators.py
@@ -16,10 +16,8 @@
# under the License.
import inspect
-import sys
import json
import logging
-import six
from http.cookies import SimpleCookie as Cookie
from collections import defaultdict
from urllib.parse import unquote
@@ -38,7 +36,6 @@ from tg import response
from webob.exc import HTTPFound, WSGIHTTPException
from allura.lib import helpers as h
-from allura.lib import utils
log = logging.getLogger(__name__)
diff --git a/Allura/allura/lib/diff.py b/Allura/allura/lib/diff.py
index ee9087253..e9f7b60e8 100644
--- a/Allura/allura/lib/diff.py
+++ b/Allura/allura/lib/diff.py
@@ -19,7 +19,7 @@ from __future__ import annotations
import html
import contextlib
import logging
-from collections.abc import Iterable, Generator
+from collections.abc import Iterable
import sxsdiff
from diff_match_patch import diff_match_patch
diff --git a/Allura/allura/lib/helpers.py b/Allura/allura/lib/helpers.py
index 4ac03e2ae..8631f09ca 100644
--- a/Allura/allura/lib/helpers.py
+++ b/Allura/allura/lib/helpers.py
@@ -21,7 +21,6 @@ import sys
import os
import os.path
import difflib
-import jinja2
import urllib.request
import urllib.parse
@@ -32,13 +31,11 @@ import json
import logging
import string
import random
-import pickle
from hashlib import sha1
from datetime import datetime, timedelta
-from collections import defaultdict, OrderedDict
+from collections import defaultdict
import shlex
import socket
-from functools import partial
from io import BytesIO
import html
import http.client
@@ -60,10 +57,12 @@ from tg.decorators import before_validate
from formencode.variabledecode import variable_decode
import formencode
from markupsafe import Markup
-from jinja2.filters import escape, do_filesizeformat
+from jinja2.filters import escape
+from jinja2.filters import do_filesizeformat # noqa: F401 RUF100
from jinja2.utils import pass_context, htmlsafe_json_dumps
from paste.deploy.converters import asbool, aslist, asint
-from webhelpers2 import date, text
+from webhelpers2 import date
+from webhelpers2 import text # noqa: F401 RUF100
from webob.exc import HTTPUnauthorized
from allura.lib import exceptions as exc
@@ -72,10 +71,9 @@ from allura.lib import validators
import urllib.parse as urlparse
from urllib.parse import urlencode
import math
-from webob.multidict import MultiDict
# import to make available to templates, don't delete:
-from .security import has_access, is_allowed_by_role, is_site_admin
+from .security import has_access, is_allowed_by_role, is_site_admin # noqa: F401 RUF100
log = logging.getLogger(__name__)
@@ -955,7 +953,6 @@ def ming_config(**conf):
:param \*\*conf: keyword arguments defining the new ming configuration
"""
- import ming
from ming.session import Session
datastores = Session._datastores
try:
diff --git a/Allura/allura/lib/macro.py b/Allura/allura/lib/macro.py
index f0e32e150..711bd3de4 100644
--- a/Allura/allura/lib/macro.py
+++ b/Allura/allura/lib/macro.py
@@ -29,7 +29,6 @@ import six.moves.urllib.request
import six.moves.urllib.error
import oembed
-import jinja2
import markupsafe
from operator import attrgetter
from urllib.parse import urlparse, urlunparse
diff --git a/Allura/allura/lib/markdown_extensions.py b/Allura/allura/lib/markdown_extensions.py
index a942e8ba4..28ffd13aa 100644
--- a/Allura/allura/lib/markdown_extensions.py
+++ b/Allura/allura/lib/markdown_extensions.py
@@ -19,7 +19,6 @@ from __future__ import annotations
import re
import logging
import warnings
-from typing import List
import xml.etree.ElementTree as etree
from urllib.parse import urljoin
@@ -37,7 +36,6 @@ from . import macro
from . import helpers as h
from allura import model as M
from allura.lib.utils import ForgeHTMLSanitizerFilter, is_nofollow_url
-import six
log = logging.getLogger(__name__)
diff --git a/Allura/allura/lib/multifactor.py b/Allura/allura/lib/multifactor.py
index c80465501..8368497b6 100644
--- a/Allura/allura/lib/multifactor.py
+++ b/Allura/allura/lib/multifactor.py
@@ -24,7 +24,6 @@ from collections import OrderedDict
from base64 import b32decode, b32encode
from time import time
import errno
-import warnings
import bson
from allura.lib.exceptions import InvalidRecoveryCode, MultifactorRateLimitError
diff --git a/Allura/allura/lib/patches.py b/Allura/allura/lib/patches.py
index 964624d0b..d8d642394 100644
--- a/Allura/allura/lib/patches.py
+++ b/Allura/allura/lib/patches.py
@@ -15,17 +15,13 @@
# specific language governing permissions and limitations
# under the License.
-import re
import webob
import tg.decorators
from decorator import decorator
from tg import request
-import mock
-import json
from allura.lib import helpers as h
-import six
_patched = False
def apply():
diff --git a/Allura/allura/lib/phone/nexmo.py b/Allura/allura/lib/phone/nexmo.py
index fa1443eb7..9ac4829f7 100644
--- a/Allura/allura/lib/phone/nexmo.py
+++ b/Allura/allura/lib/phone/nexmo.py
@@ -21,7 +21,6 @@ import html
import json
import requests
-import jinja2
import markupsafe
from allura.lib.phone import PhoneService
diff --git a/Allura/allura/lib/plugin.py b/Allura/allura/lib/plugin.py
index c836378a6..fa059bd38 100644
--- a/Allura/allura/lib/plugin.py
+++ b/Allura/allura/lib/plugin.py
@@ -24,8 +24,6 @@ import os
import logging
import subprocess
import string
-import random
-import sys
import warnings
from contextlib import contextmanager
from urllib.parse import urlparse
@@ -49,7 +47,7 @@ except ImportError:
ldap = modlist = None
import pkg_resources
import tg
-from tg import config, request, redirect, response, flash
+from tg import config, request, redirect, response
from tg import tmpl_context as c, app_globals as g
from webob import exc, Request
from paste.deploy.converters import asbool, asint, aslist
diff --git a/Allura/allura/lib/project_create_helpers.py b/Allura/allura/lib/project_create_helpers.py
index 387eb0f68..2ec2cb3f7 100644
--- a/Allura/allura/lib/project_create_helpers.py
+++ b/Allura/allura/lib/project_create_helpers.py
@@ -29,11 +29,9 @@ import colander as col
import bson
import requests
import formencode
-import six
from urllib.parse import urlparse
from allura.lib.helpers import slugify
-from allura.model import Neighborhood
from ming.base import Object
from ming.odm import ThreadLocalODMSession
from tg import tmpl_context as c, app_globals as g
diff --git a/Allura/allura/lib/repository.py b/Allura/allura/lib/repository.py
index d4d21ff9f..f76374bc9 100644
--- a/Allura/allura/lib/repository.py
+++ b/Allura/allura/lib/repository.py
@@ -18,7 +18,6 @@
import logging
import six
-from urllib.parse import quote
from tg import tmpl_context as c, app_globals as g
from tg import request
diff --git a/Allura/allura/lib/search.py b/Allura/allura/lib/search.py
index 0489f1ac2..69531f5e9 100644
--- a/Allura/allura/lib/search.py
+++ b/Allura/allura/lib/search.py
@@ -18,13 +18,11 @@
import ast
import re
-import socket
from logging import getLogger
import bson
import markdown
-import jinja2
import markupsafe
from tg import redirect, url
from tg import tmpl_context as c, app_globals as g
@@ -34,7 +32,6 @@ from pysolr import SolrError
from allura.lib import helpers as h
from allura.lib.solr import escape_solr_arg
from allura.lib.utils import urlencode
-import six
log = getLogger(__name__)
diff --git a/Allura/allura/lib/solr.py b/Allura/allura/lib/solr.py
index 012fb728a..49511d8aa 100644
--- a/Allura/allura/lib/solr.py
+++ b/Allura/allura/lib/solr.py
@@ -26,7 +26,6 @@ from webob.exc import HTTPRequestEntityTooLarge
from paste.deploy.converters import asbool
import pysolr
from pysolr import SolrError
-import six
from allura.lib.helpers import shlex_split
diff --git a/Allura/allura/lib/spam/stopforumspamfilter.py b/Allura/allura/lib/spam/stopforumspamfilter.py
index 80d234c9e..dc240ce34 100644
--- a/Allura/allura/lib/spam/stopforumspamfilter.py
+++ b/Allura/allura/lib/spam/stopforumspamfilter.py
@@ -24,7 +24,6 @@ from tg import request
from allura.lib import utils
from allura.lib.spam import SpamFilter
-import six
log = logging.getLogger(__name__)
diff --git a/Allura/allura/lib/utils.py b/Allura/allura/lib/utils.py
index d025f4f67..d3b27fd6b 100644
--- a/Allura/allura/lib/utils.py
+++ b/Allura/allura/lib/utils.py
@@ -20,7 +20,6 @@ import base64
from collections.abc import Iterable, Mapping, MutableMapping
from contextlib import contextmanager
import time
-import string
import hashlib
import binascii
import logging.handlers
@@ -29,11 +28,10 @@ import datetime
import random
import mimetypes
import re
-from typing import Type, TypeVar
+from typing import TypeVar
import magic
from itertools import groupby
import operator as op
-import collections
import ming
from urllib.parse import urlparse
import six.moves.urllib.request
diff --git a/Allura/allura/lib/validators.py b/Allura/allura/lib/validators.py
index 9bce7b396..1a949d7e0 100644
--- a/Allura/allura/lib/validators.py
+++ b/Allura/allura/lib/validators.py
@@ -23,7 +23,6 @@ from formencode import validators as fev
from tg import tmpl_context as c
from . import helpers as h
from datetime import datetime
-import six
from urllib.parse import urlsplit
from ipaddress import ip_address
import socket
diff --git a/Allura/allura/lib/widgets/auth_widgets.py b/Allura/allura/lib/widgets/auth_widgets.py
index 52a849fc9..1382545cb 100644
--- a/Allura/allura/lib/widgets/auth_widgets.py
+++ b/Allura/allura/lib/widgets/auth_widgets.py
@@ -21,14 +21,12 @@ from ew.core import validator
from tg import request, tmpl_context as c
from formencode import Invalid
-from formencode import validators as fev
from webob import exc
from .forms import ForgeForm
from tg import tmpl_context as c, app_globals as g
from allura.lib import plugin
-from allura import model as M
class LoginForm(ForgeForm):
diff --git a/Allura/allura/lib/widgets/form_fields.py b/Allura/allura/lib/widgets/form_fields.py
index d2347daca..646c98180 100644
--- a/Allura/allura/lib/widgets/form_fields.py
+++ b/Allura/allura/lib/widgets/form_fields.py
@@ -23,12 +23,10 @@ from tg import request, url
import json
import logging
-from formencode import validators as fev
import paginate
import ew as ew_core
import ew.jinja2_ew as ew
-import six
from allura.lib import validators as v
diff --git a/Allura/allura/lib/widgets/forms.py b/Allura/allura/lib/widgets/forms.py
index d3c8ddff8..cc3744feb 100644
--- a/Allura/allura/lib/widgets/forms.py
+++ b/Allura/allura/lib/widgets/forms.py
@@ -16,7 +16,6 @@
# under the License.
import logging
-from html import escape as html_escape
import html
from tg import app_globals as g, tmpl_context as c
diff --git a/Allura/allura/lib/widgets/oauth_widgets.py b/Allura/allura/lib/widgets/oauth_widgets.py
index ba314c3d0..7fe33b75e 100644
--- a/Allura/allura/lib/widgets/oauth_widgets.py
+++ b/Allura/allura/lib/widgets/oauth_widgets.py
@@ -17,7 +17,6 @@
import ew as ew_core
import ew.jinja2_ew as ew
-from formencode import validators as fev
from allura.lib import validators as V
diff --git a/Allura/allura/lib/widgets/project_list.py b/Allura/allura/lib/widgets/project_list.py
index 01bc4e2f3..b91d2dd84 100644
--- a/Allura/allura/lib/widgets/project_list.py
+++ b/Allura/allura/lib/widgets/project_list.py
@@ -23,7 +23,6 @@ from paste.deploy.converters import asbool
from allura import model as M
from allura.lib.security import Credentials
-import six
class ProjectSummary(ew_core.Widget):
diff --git a/Allura/allura/model/artifact.py b/Allura/allura/model/artifact.py
index 0758a9569..32c126daa 100644
--- a/Allura/allura/model/artifact.py
+++ b/Allura/allura/model/artifact.py
@@ -47,7 +47,6 @@ from .project import AppConfig
from .notification import MailFooter
from .filesystem import File
-import six
if typing.TYPE_CHECKING:
from ming.odm.mapper import Query
diff --git a/Allura/allura/model/auth.py b/Allura/allura/model/auth.py
index 607a4b5cb..51dc98617 100644
--- a/Allura/allura/model/auth.py
+++ b/Allura/allura/model/auth.py
@@ -18,10 +18,8 @@
from __future__ import annotations
import logging
-import calendar
import typing
-import six
from markupsafe import Markup
from urllib.parse import urlparse
from email import header
@@ -38,7 +36,6 @@ from tg import config
from tg import tmpl_context as c, app_globals as g
from tg import request
from ming import schema as S
-from ming import Field
from ming.odm import session, state
from ming.odm import FieldProperty, RelationProperty, ForeignIdProperty
from ming.odm.declarative import MappedClass
@@ -52,7 +49,6 @@ from allura.lib import utils
from allura.lib.decorators import memoize
from allura.lib.search import SearchIndexable
from .session import main_orm_session, main_explicitflush_orm_session
-from .session import project_orm_session
from .timeline import ActivityNode, ActivityObject
diff --git a/Allura/allura/model/discuss.py b/Allura/allura/model/discuss.py
index 2199ecdd4..6cb0b6ef3 100644
--- a/Allura/allura/model/discuss.py
+++ b/Allura/allura/model/discuss.py
@@ -20,12 +20,10 @@ import logging
from datetime import datetime
import typing
-import jinja2
import markupsafe
import pymongo
from pymongo.errors import DuplicateKeyError
from tg import tmpl_context as c, app_globals as g
-import tg
from ming import schema
from ming.odm.base import session
diff --git a/Allura/allura/model/index.py b/Allura/allura/model/index.py
index c778db3b3..50b33999f 100644
--- a/Allura/allura/model/index.py
+++ b/Allura/allura/model/index.py
@@ -39,7 +39,6 @@ from allura.lib import helpers as h
from .session import main_orm_session
from .project import Project
-import six
if typing.TYPE_CHECKING:
from ming.odm.mapper import Query
diff --git a/Allura/allura/model/monq_model.py b/Allura/allura/model/monq_model.py
index 4dbc532dc..2e2bc9466 100644
--- a/Allura/allura/model/monq_model.py
+++ b/Allura/allura/model/monq_model.py
@@ -23,7 +23,7 @@ from datetime import datetime, timedelta
import typing
import pymongo
-from tg import tmpl_context as c, app_globals as g
+from tg import tmpl_context as c
from tg import config
from paste.deploy.converters import asbool
diff --git a/Allura/allura/model/neighborhood.py b/Allura/allura/model/neighborhood.py
index 9487518a3..60b38ea31 100644
--- a/Allura/allura/model/neighborhood.py
+++ b/Allura/allura/model/neighborhood.py
@@ -27,7 +27,7 @@ from ming.odm.declarative import MappedClass
from ming.utils import LazyProperty
from tg import request
-from tg import tmpl_context as c, app_globals as g
+from tg import tmpl_context as c
from allura.lib import plugin
diff --git a/Allura/allura/model/notification.py b/Allura/allura/model/notification.py
index 5b08cf1e8..a8b5a7625 100644
--- a/Allura/allura/model/notification.py
+++ b/Allura/allura/model/notification.py
@@ -35,7 +35,6 @@ Periodically:
'''
import logging
-from allura.lib.decorators import memoize
from bson import ObjectId
from datetime import datetime, timedelta
from collections import defaultdict
@@ -58,7 +57,6 @@ import allura.tasks.mail_tasks
from .session import main_orm_session
from .auth import User, AlluraUserProperty
-import six
if typing.TYPE_CHECKING:
from ming.odm.mapper import Query
diff --git a/Allura/allura/model/repo_refresh.py b/Allura/allura/model/repo_refresh.py
index 91b724568..e5dbbbea2 100644
--- a/Allura/allura/model/repo_refresh.py
+++ b/Allura/allura/model/repo_refresh.py
@@ -22,9 +22,9 @@ import bson
import tg
import jinja2
from paste.deploy.converters import asint
-from tg import tmpl_context as c, app_globals as g
+from tg import app_globals as g
-from ming.odm import mapper, session, ThreadLocalODMSession
+from ming.odm import session
from ming.odm.base import ObjectState, state
from allura.lib import utils
diff --git a/Allura/allura/model/repository.py b/Allura/allura/model/repository.py
index 06128afab..b39ca28f1 100644
--- a/Allura/allura/model/repository.py
+++ b/Allura/allura/model/repository.py
@@ -48,7 +48,7 @@ from ming import schema as S
from ming.odm import session
from ming import Field, collection, Index
from ming.utils import LazyProperty
-from ming.odm import FieldProperty, session, Mapper, mapper, MappedClass, RelationProperty
+from ming.odm import FieldProperty, session, Mapper, MappedClass, RelationProperty
from ming.base import Object
from allura.lib import helpers as h
diff --git a/Allura/allura/model/session.py b/Allura/allura/model/session.py
index 15558dabe..2752afa46 100644
--- a/Allura/allura/model/session.py
+++ b/Allura/allura/model/session.py
@@ -24,7 +24,6 @@ from ming.odm.base import ObjectState
from ming.odm.base import state
from ming.odm.odmsession import ThreadLocalODMSession, SessionExtension
from contextlib import contextmanager
-from tg import tmpl_context as c
from allura.lib.utils import chunked_list
from allura.tasks import index_tasks
@@ -117,7 +116,6 @@ class ArtifactSessionExtension(ManagedSessionExtension):
def after_flush(self, obj=None):
"Update artifact references, and add/update this artifact to solr"
if not getattr(self.session, 'disable_index', False):
- from tg import app_globals as g
from .index import ArtifactReference, Shortlink
from .session import main_orm_session
# Ensure artifact references & shortlinks exist for new objects
diff --git a/Allura/allura/model/webhook.py b/Allura/allura/model/webhook.py
index 34d39ac9c..1be2797e3 100644
--- a/Allura/allura/model/webhook.py
+++ b/Allura/allura/model/webhook.py
@@ -25,7 +25,6 @@ from tg import config
from allura.model import Artifact
from allura.lib import helpers as h
-import six
if typing.TYPE_CHECKING:
from ming.odm.mapper import Query
diff --git a/Allura/allura/scripts/reindex_projects.py b/Allura/allura/scripts/reindex_projects.py
index 41b9d47c5..305b0571f 100644
--- a/Allura/allura/scripts/reindex_projects.py
+++ b/Allura/allura/scripts/reindex_projects.py
@@ -19,7 +19,7 @@ import argparse
import logging
from pymongo.errors import InvalidDocument
-from tg import tmpl_context as c, app_globals as g
+from tg import tmpl_context as c
from allura.scripts import ScriptTask
from allura import model as M
diff --git a/Allura/allura/tasks/event_tasks.py b/Allura/allura/tasks/event_tasks.py
index 3bed9a0b2..213ef09cf 100644
--- a/Allura/allura/tasks/event_tasks.py
+++ b/Allura/allura/tasks/event_tasks.py
@@ -19,7 +19,6 @@ import sys
from allura.lib.decorators import task, event_handler
from allura.lib.exceptions import CompoundError
-import six
@task
diff --git a/Allura/allura/tasks/export_tasks.py b/Allura/allura/tasks/export_tasks.py
index 13bb6f44a..0c83b734a 100644
--- a/Allura/allura/tasks/export_tasks.py
+++ b/Allura/allura/tasks/export_tasks.py
@@ -25,7 +25,6 @@ from tg import app_globals as g, tmpl_context as c
from allura.tasks import mail_tasks
from allura.lib.decorators import task
-from allura.lib import helpers as h
from allura.model.repository import zipdir
diff --git a/Allura/allura/tasks/index_tasks.py b/Allura/allura/tasks/index_tasks.py
index d907b3319..b1cab900a 100644
--- a/Allura/allura/tasks/index_tasks.py
+++ b/Allura/allura/tasks/index_tasks.py
@@ -30,7 +30,6 @@ from allura.lib import helpers as h
from allura.lib.decorators import task
from allura.lib.exceptions import CompoundError
from allura.lib.solr import make_solr_from_config
-import six
if typing.TYPE_CHECKING:
import pysolr
diff --git a/Allura/allura/tasks/repo_tasks.py b/Allura/allura/tasks/repo_tasks.py
index b0f24bf5f..e7855d655 100644
--- a/Allura/allura/tasks/repo_tasks.py
+++ b/Allura/allura/tasks/repo_tasks.py
@@ -24,7 +24,6 @@ from ming.odm import session
from allura.lib.decorators import task
from allura.lib.repository import RepositoryApp
-from allura.lib.utils import skip_mod_date
import git
from git import SymbolicReference
diff --git a/Allura/allura/tests/functional/test_auth.py b/Allura/allura/tests/functional/test_auth.py
index d862c7a8e..a30f938b2 100644
--- a/Allura/allura/tests/functional/test_auth.py
+++ b/Allura/allura/tests/functional/test_auth.py
@@ -34,11 +34,11 @@ from mock import patch, Mock
import mock
import pytest
import webtest
-from tg import tmpl_context as c, app_globals as g
+from tg import tmpl_context as c
from allura.tests import TestController
from allura.tests import decorators as td
-from allura.tests.decorators import audits, out_audits, assert_logmsg
+from allura.tests.decorators import audits, out_audits
from alluratest.controller import setup_trove_categories, TestRestApiBase, oauth1_webtest
from allura import model as M
from allura.model.oauth import dummy_oauths
diff --git a/Allura/allura/tests/functional/test_discuss.py b/Allura/allura/tests/functional/test_discuss.py
index 0b88c576d..13935414b 100644
--- a/Allura/allura/tests/functional/test_discuss.py
+++ b/Allura/allura/tests/functional/test_discuss.py
@@ -17,8 +17,6 @@
import os
from mock import patch
-import pytest
-from webtest.app import AppError
from ming.odm import session
from allura.tests import TestController
diff --git a/Allura/allura/tests/functional/test_rest.py b/Allura/allura/tests/functional/test_rest.py
index 21d260254..a5ceaeaae 100644
--- a/Allura/allura/tests/functional/test_rest.py
+++ b/Allura/allura/tests/functional/test_rest.py
@@ -19,7 +19,6 @@
import json
from datetime import datetime, timedelta
-import tg
from bson import ObjectId
from tg import app_globals as g
import mock
diff --git a/Allura/allura/tests/functional/test_root.py b/Allura/allura/tests/functional/test_root.py
index 8dfbe0dd7..d11568388 100644
--- a/Allura/allura/tests/functional/test_root.py
+++ b/Allura/allura/tests/functional/test_root.py
@@ -27,7 +27,6 @@ Please read http://pythonpaste.org/webtest/ for more information.
"""
import os
-import re
from unittest import skipIf
import pytest
diff --git a/Allura/allura/tests/functional/test_site_admin.py b/Allura/allura/tests/functional/test_site_admin.py
index 7a017f7af..78e775904 100644
--- a/Allura/allura/tests/functional/test_site_admin.py
+++ b/Allura/allura/tests/functional/test_site_admin.py
@@ -18,7 +18,6 @@
import json
import datetime as dt
import bson
-import pytest
from mock import patch, MagicMock
from ming.odm import ThreadLocalODMSession
diff --git a/Allura/allura/tests/model/test_auth.py b/Allura/allura/tests/model/test_auth.py
index 4f6e708e4..3a6ece759 100644
--- a/Allura/allura/tests/model/test_auth.py
+++ b/Allura/allura/tests/model/test_auth.py
@@ -33,7 +33,7 @@ from allura import model as M
from allura.lib import helpers as h
from allura.lib import plugin
from allura.tests import decorators as td
-from alluratest.controller import setup_basic_test, setup_global_objects, setup_functional_test, setup_unit_test
+from alluratest.controller import setup_basic_test, setup_global_objects, setup_functional_test
class TestAuth:
diff --git a/Allura/allura/tests/model/test_notification.py b/Allura/allura/tests/model/test_notification.py
index ba502823e..42b14728c 100644
--- a/Allura/allura/tests/model/test_notification.py
+++ b/Allura/allura/tests/model/test_notification.py
@@ -15,7 +15,6 @@
# specific language governing permissions and limitations
# under the License.
-import unittest
from datetime import timedelta
import collections
diff --git a/Allura/allura/tests/model/test_repo.py b/Allura/allura/tests/model/test_repo.py
index f1f57af8f..7434f4b1b 100644
--- a/Allura/allura/tests/model/test_repo.py
+++ b/Allura/allura/tests/model/test_repo.py
@@ -18,7 +18,6 @@
from datetime import datetime
from collections import defaultdict, OrderedDict
-import unittest
import mock
import pytest
from tg import tmpl_context as c
diff --git a/Allura/allura/tests/test_decorators.py b/Allura/allura/tests/test_decorators.py
index 607833303..638f365d7 100644
--- a/Allura/allura/tests/test_decorators.py
+++ b/Allura/allura/tests/test_decorators.py
@@ -20,7 +20,7 @@ import random
import gc
from allura.lib.decorators import task, memoize
-from alluratest.controller import setup_basic_test, setup_global_objects
+from alluratest.controller import setup_basic_test
class TestTask:
diff --git a/Allura/allura/tests/test_diff.py b/Allura/allura/tests/test_diff.py
index 153f37798..0d528af68 100644
--- a/Allura/allura/tests/test_diff.py
+++ b/Allura/allura/tests/test_diff.py
@@ -15,7 +15,6 @@
# specific language governing permissions and limitations
# under the License.
-import unittest
from allura.lib.diff import HtmlSideBySideDiff
diff --git a/Allura/allura/tests/test_globals.py b/Allura/allura/tests/test_globals.py
index e8f349a73..c88623c5d 100644
--- a/Allura/allura/tests/test_globals.py
+++ b/Allura/allura/tests/test_globals.py
@@ -22,9 +22,7 @@ from textwrap import dedent
import pytest
import allura
-import unittest
import hashlib
-import six
from mock import patch, Mock
from bson import ObjectId
@@ -37,7 +35,6 @@ from alluratest.controller import (
setup_basic_test,
setup_global_objects,
setup_unit_test,
- setup_functional_test,
setup_trove_categories,
)
diff --git a/Allura/allura/tests/test_helpers.py b/Allura/allura/tests/test_helpers.py
index 050de3239..817abde69 100644
--- a/Allura/allura/tests/test_helpers.py
+++ b/Allura/allura/tests/test_helpers.py
@@ -42,7 +42,6 @@ from allura.lib.security import has_access
from allura.lib.security import Credentials
from allura.tests import decorators as td
from alluratest.controller import setup_basic_test
-import six
# httpbin.org should work, but lately has been unreliable
# httpbin.io does not allow /redirect-to to localhost
diff --git a/Allura/allura/tests/test_mail_util.py b/Allura/allura/tests/test_mail_util.py
index f32b07387..c549e5a01 100644
--- a/Allura/allura/tests/test_mail_util.py
+++ b/Allura/allura/tests/test_mail_util.py
@@ -15,7 +15,6 @@
# specific language governing permissions and limitations
# under the License.
-import unittest
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
diff --git a/Allura/allura/tests/test_markdown.py b/Allura/allura/tests/test_markdown.py
index f86506e6c..3e56fe81e 100644
--- a/Allura/allura/tests/test_markdown.py
+++ b/Allura/allura/tests/test_markdown.py
@@ -102,7 +102,6 @@ class TestCommitMessageExtension:
@mock.patch('allura.lib.markdown_extensions.TracRef2.get_comment_slug')
@mock.patch('allura.lib.markdown_extensions.M.Shortlink.lookup')
def test_convert(self, lookup, get_comment_slug):
- from allura.lib.app_globals import ForgeMarkdown
shortlink = mock.Mock(url='/p/project/tool/artifact/')
shortlink.ref.artifact.deleted = False
diff --git a/Allura/allura/tests/test_scripttask.py b/Allura/allura/tests/test_scripttask.py
index edbfda5cf..48a4205f3 100644
--- a/Allura/allura/tests/test_scripttask.py
+++ b/Allura/allura/tests/test_scripttask.py
@@ -15,7 +15,6 @@
# specific language governing permissions and limitations
# under the License.
-import unittest
import mock
from allura.scripts.scripttask import ScriptTask
diff --git a/Allura/allura/tests/test_security.py b/Allura/allura/tests/test_security.py
index a1413583f..efa07b0f4 100644
--- a/Allura/allura/tests/test_security.py
+++ b/Allura/allura/tests/test_security.py
@@ -26,7 +26,7 @@ from allura.lib.security import Credentials, all_allowed, has_access
from allura import model as M
from forgewiki import model as WM
from allura.lib.security import HIBPClientError, HIBPClient
-from mock import Mock, patch
+from mock import patch
from requests.exceptions import Timeout
diff --git a/Allura/allura/tests/test_tasks.py b/Allura/allura/tests/test_tasks.py
index 81fb4123d..0d953f0c6 100644
--- a/Allura/allura/tests/test_tasks.py
+++ b/Allura/allura/tests/test_tasks.py
@@ -19,7 +19,6 @@ import email.iterators
import operator
import shutil
from textwrap import dedent
-import unittest
import six
from base64 import b64encode
diff --git a/Allura/allura/tests/test_utils.py b/Allura/allura/tests/test_utils.py
index 8878ea21a..64d02c59b 100644
--- a/Allura/allura/tests/test_utils.py
+++ b/Allura/allura/tests/test_utils.py
@@ -17,11 +17,9 @@
import json
import time
-import unittest
import datetime as dt
from os import path
-import six
import ming
from ming.odm import session
from bson import ObjectId
diff --git a/Allura/allura/tests/test_webhooks.py b/Allura/allura/tests/test_webhooks.py
index 76b78a076..d0bbd83e2 100644
--- a/Allura/allura/tests/test_webhooks.py
+++ b/Allura/allura/tests/test_webhooks.py
@@ -42,7 +42,6 @@ from alluratest.controller import (
TestController,
TestRestApiBase,
)
-import six
# important to be distinct from 'test' and 'test2' which ForgeGit and
diff --git a/Allura/allura/tests/unit/spam/test_spam_filter.py b/Allura/allura/tests/unit/spam/test_spam_filter.py
index f2977fe8f..f9f758164 100644
--- a/Allura/allura/tests/unit/spam/test_spam_filter.py
+++ b/Allura/allura/tests/unit/spam/test_spam_filter.py
@@ -16,7 +16,6 @@
# under the License.
import mock
-import unittest
from ming.odm import ThreadLocalODMSession
diff --git a/Allura/allura/tests/unit/test_artifact.py b/Allura/allura/tests/unit/test_artifact.py
index 470d21034..bac61bfd7 100644
--- a/Allura/allura/tests/unit/test_artifact.py
+++ b/Allura/allura/tests/unit/test_artifact.py
@@ -15,7 +15,6 @@
# specific language governing permissions and limitations
# under the License.
-import unittest
from allura import model as M
diff --git a/Allura/allura/tests/unit/test_project.py b/Allura/allura/tests/unit/test_project.py
index 125022e06..ef1c1d9c2 100644
--- a/Allura/allura/tests/unit/test_project.py
+++ b/Allura/allura/tests/unit/test_project.py
@@ -15,7 +15,6 @@
# specific language governing permissions and limitations
# under the License.
-import unittest
from mock import Mock
from tg import config
diff --git a/Allura/allura/tests/unit/test_repo.py b/Allura/allura/tests/unit/test_repo.py
index e9983a580..6d177a2f0 100644
--- a/Allura/allura/tests/unit/test_repo.py
+++ b/Allura/allura/tests/unit/test_repo.py
@@ -16,10 +16,8 @@
# under the License.
import datetime
-import unittest
import pytest
-import six
from mock import patch, Mock, MagicMock, call
from tg import tmpl_context as c
diff --git a/Allura/allura/tests/unit/test_sitemapentry.py b/Allura/allura/tests/unit/test_sitemapentry.py
index 73d4bbd8c..f4ec40822 100644
--- a/Allura/allura/tests/unit/test_sitemapentry.py
+++ b/Allura/allura/tests/unit/test_sitemapentry.py
@@ -15,7 +15,6 @@
# specific language governing permissions and limitations
# under the License.
-import unittest
from mock import Mock
from allura.app import SitemapEntry
diff --git a/Allura/allura/tests/unit/test_solr.py b/Allura/allura/tests/unit/test_solr.py
index 54c2144e7..42c4643ce 100644
--- a/Allura/allura/tests/unit/test_solr.py
+++ b/Allura/allura/tests/unit/test_solr.py
@@ -15,7 +15,6 @@
# specific language governing permissions and limitations
# under the License.
-import unittest
import mock
from markupsafe import Markup
diff --git a/Allura/allura/webhooks.py b/Allura/allura/webhooks.py
index 54f0354e7..68098f84d 100644
--- a/Allura/allura/webhooks.py
+++ b/Allura/allura/webhooks.py
@@ -42,7 +42,6 @@ from allura.lib import validators as v
from allura.lib.decorators import require_post, task
from allura.lib.utils import DateJSONEncoder
from allura import model as M
-import six
log = logging.getLogger(__name__)
diff --git a/Allura/allura/websetup/bootstrap.py b/Allura/allura/websetup/bootstrap.py
index 6ac4b430c..c0e47e6db 100644
--- a/Allura/allura/websetup/bootstrap.py
+++ b/Allura/allura/websetup/bootstrap.py
@@ -17,9 +17,7 @@
"""Setup the allura application"""
import os
-import sys
import logging
-import shutil
from datetime import datetime
from textwrap import dedent
@@ -28,7 +26,6 @@ from tg import tmpl_context as c, app_globals as g
from paste.deploy.converters import asbool
import ew
-from allura.lib.decorators import memoize
from allura.model.oauth import dummy_oauths
from ming import Session, mim
from ming.odm import state, session
@@ -43,7 +40,6 @@ from allura.command import CreateTroveCategoriesCommand
from allura.websetup.schema import REGISTRY
from forgewiki import model as WM
-import six
log = logging.getLogger(__name__)
diff --git a/Allura/allura/websetup/schema.py b/Allura/allura/websetup/schema.py
index 52bfd9763..424e2d0a7 100644
--- a/Allura/allura/websetup/schema.py
+++ b/Allura/allura/websetup/schema.py
@@ -35,7 +35,6 @@ REGISTRY = Registry()
def setup_schema(command, conf, vars):
"""Place any commands to setup allura here"""
- import ming
import allura
# turbogears has its own special magic wired up for its globals, can't use a regular Registry
diff --git a/AlluraTest/alluratest/controller.py b/AlluraTest/alluratest/controller.py
index 1c4cf32b6..b41d69dfe 100644
--- a/AlluraTest/alluratest/controller.py
+++ b/AlluraTest/alluratest/controller.py
@@ -25,14 +25,11 @@ import six.moves.urllib.error
import json
import mock
-import beaker.session
-from bs4 import BeautifulSoup
from formencode import variabledecode
from paste.deploy import loadapp
from paste.deploy.converters import asbool
from paste.script.appinstall import SetupCommand
-from tg import tmpl_context as c, app_globals as g
-from tg import url, request, response, session
+from tg import tmpl_context as c
import tg
from tg.wsgiapp import RequestLocals
from webob import Response, Request
diff --git a/AlluraTest/alluratest/tools.py b/AlluraTest/alluratest/tools.py
index 3f2c0eab8..3dcd5c4a2 100644
--- a/AlluraTest/alluratest/tools.py
+++ b/AlluraTest/alluratest/tools.py
@@ -15,9 +15,7 @@
# specific language governing permissions and limitations
# under the License.
import functools
-import re
-from decorator import decorator
import unittest
testcase = unittest.TestCase(methodName='__init__') # py2 needs a methodName that is a valid attr :/
diff --git a/AlluraTest/alluratest/validation.py b/AlluraTest/alluratest/validation.py
index c8c246aff..434b1a140 100644
--- a/AlluraTest/alluratest/validation.py
+++ b/AlluraTest/alluratest/validation.py
@@ -18,19 +18,14 @@
"""
Functions to syntax-validate output content
"""
-from os import path
import os
import sys
import logging
import tempfile
import subprocess
import json
-import six.moves.urllib.parse
-import six.moves.urllib.request
-import six.moves.urllib.error
import re
import pkg_resources
-import six
import webtest
from webtest import TestApp, TestResponse
diff --git a/ForgeActivity/forgeactivity/main.py b/ForgeActivity/forgeactivity/main.py
index de05a1944..2a911a3c8 100644
--- a/ForgeActivity/forgeactivity/main.py
+++ b/ForgeActivity/forgeactivity/main.py
@@ -26,7 +26,7 @@ from tg import tmpl_context as c, app_globals as g
from tg import request, response
from tg import expose, validate, config
from tg.decorators import with_trailing_slash, without_trailing_slash
-from paste.deploy.converters import asbool, asint
+from paste.deploy.converters import asbool
from webob import exc
import feedgenerator as FG
from activitystream.storage.mingstorage import Activity
diff --git a/ForgeBlog/forgeblog/model/blog.py b/ForgeBlog/forgeblog/model/blog.py
index c152b7862..5010d1482 100644
--- a/ForgeBlog/forgeblog/model/blog.py
+++ b/ForgeBlog/forgeblog/model/blog.py
@@ -35,7 +35,6 @@ from allura.model.timeline import ActivityObject
from allura.model.types import MarkdownCache
from allura.lib import helpers as h
from allura.lib import utils
-import six
if typing.TYPE_CHECKING:
from ming.odm.mapper import Query
diff --git a/ForgeBlog/forgeblog/tests/test_commands.py b/ForgeBlog/forgeblog/tests/test_commands.py
index b6d2f7c01..4a1d797ec 100644
--- a/ForgeBlog/forgeblog/tests/test_commands.py
+++ b/ForgeBlog/forgeblog/tests/test_commands.py
@@ -15,12 +15,9 @@
# specific language governing permissions and limitations
# under the License.
import html
-from datetime import datetime, timedelta
from io import BytesIO
from unittest import skipIf
import pkg_resources
-import mock
-import feedparser
from mock import patch
from ming.odm.odmsession import ThreadLocalODMSession
diff --git a/ForgeDiscussion/forgediscussion/controllers/forum.py b/ForgeDiscussion/forgediscussion/controllers/forum.py
index 8a2a15918..b7f3e0761 100644
--- a/ForgeDiscussion/forgediscussion/controllers/forum.py
+++ b/ForgeDiscussion/forgediscussion/controllers/forum.py
@@ -22,7 +22,6 @@ import pymongo
from allura.lib.search import mapped_artifacts_from_index_ids
from tg import expose, validate, redirect
-from tg import request
from tg import tmpl_context as c, app_globals as g
from webob import exc
from formencode import validators
diff --git a/ForgeDiscussion/forgediscussion/controllers/root.py b/ForgeDiscussion/forgediscussion/controllers/root.py
index da5b157ef..2c985d8f6 100644
--- a/ForgeDiscussion/forgediscussion/controllers/root.py
+++ b/ForgeDiscussion/forgediscussion/controllers/root.py
@@ -33,7 +33,7 @@ from formencode import validators
from webob import exc
import pymongo
-from allura.lib.security import require_access, has_access, require_authenticated
+from allura.lib.security import require_access, has_access
from allura.lib.search import search_app
from allura.lib import helpers as h
from allura.lib import validators as v
diff --git a/ForgeDiscussion/forgediscussion/forum_main.py b/ForgeDiscussion/forgediscussion/forum_main.py
index a3bf469d1..f1d9448f8 100644
--- a/ForgeDiscussion/forgediscussion/forum_main.py
+++ b/ForgeDiscussion/forgediscussion/forum_main.py
@@ -20,7 +20,6 @@ import six.moves.urllib.request
import six.moves.urllib.parse
import six.moves.urllib.error
import json
-import os
# Non-stdlib imports
from tg import tmpl_context as c, app_globals as g
diff --git a/ForgeDiscussion/forgediscussion/import_support.py b/ForgeDiscussion/forgediscussion/import_support.py
index cd0d6a89e..80b484793 100644
--- a/ForgeDiscussion/forgediscussion/import_support.py
+++ b/ForgeDiscussion/forgediscussion/import_support.py
@@ -26,7 +26,6 @@ from tg import tmpl_context as c
from allura import model as M
from forgediscussion import model as DM
-import six
log = logging.getLogger(__name__)
diff --git a/ForgeDiscussion/forgediscussion/model/forum.py b/ForgeDiscussion/forgediscussion/model/forum.py
index 3e0be4ae7..45dfcd00c 100644
--- a/ForgeDiscussion/forgediscussion/model/forum.py
+++ b/ForgeDiscussion/forgediscussion/model/forum.py
@@ -15,9 +15,7 @@
# specific language governing permissions and limitations
# under the License.
-import re
import logging
-from itertools import chain
import typing
import pymongo
diff --git a/ForgeDiscussion/forgediscussion/tests/functional/test_forum.py b/ForgeDiscussion/forgediscussion/tests/functional/test_forum.py
index 6665fa784..4bbe6965b 100644
--- a/ForgeDiscussion/forgediscussion/tests/functional/test_forum.py
+++ b/ForgeDiscussion/forgediscussion/tests/functional/test_forum.py
@@ -25,7 +25,6 @@ from email.mime.multipart import MIMEMultipart
import pkg_resources
import pymongo
-import webtest
from ming.odm import ThreadLocalODMSession
from tg import tmpl_context as c
diff --git a/ForgeDiscussion/forgediscussion/widgets/forum_widgets.py b/ForgeDiscussion/forgediscussion/widgets/forum_widgets.py
index 4c90af637..1909b6d89 100644
--- a/ForgeDiscussion/forgediscussion/widgets/forum_widgets.py
+++ b/ForgeDiscussion/forgediscussion/widgets/forum_widgets.py
@@ -25,10 +25,8 @@ from allura.lib import validators as V
from allura.lib.widgets import discuss as DW
from allura.lib.widgets import form_fields as ffw
from allura.lib.widgets.forms import CsrfForm
-from allura.lib.widgets.subscriptions import SubscribeForm
from forgediscussion import model as M
-import six
class _ThreadsTable(DW._ThreadsTable):
diff --git a/ForgeFeedback/forgefeedback/feedback_main.py b/ForgeFeedback/forgefeedback/feedback_main.py
index 581fa61f7..07b937e27 100644
--- a/ForgeFeedback/forgefeedback/feedback_main.py
+++ b/ForgeFeedback/forgefeedback/feedback_main.py
@@ -20,7 +20,7 @@ import pymongo
# Non-stdlib imports
-from tg import expose, flash, url, config, request, redirect
+from tg import expose, flash, redirect
from tg.decorators import with_trailing_slash, without_trailing_slash
from tg import tmpl_context as c, app_globals as g
from ming.odm import session
@@ -39,8 +39,7 @@ from allura.app import (
from allura.controllers import BaseController
from allura.controllers.feed import FeedController
from allura.lib.decorators import require_post
-from allura.lib.security import (require_access, has_access)
-from allura.model import project
+from allura.lib.security import (require_access)
# Local imports
diff --git a/ForgeFeedback/forgefeedback/model/feedback.py b/ForgeFeedback/forgefeedback/model/feedback.py
index bb01cdee4..fcffd65a7 100644
--- a/ForgeFeedback/forgefeedback/model/feedback.py
+++ b/ForgeFeedback/forgefeedback/model/feedback.py
@@ -16,9 +16,6 @@
# under the License.
import logging
-import six.moves.urllib.request
-import six.moves.urllib.parse
-import six.moves.urllib.error
import typing
from datetime import datetime
@@ -32,9 +29,7 @@ from ming.odm import FieldProperty, ForeignIdProperty, RelationProperty
from allura.model.artifact import VersionedArtifact
from allura.model.auth import AlluraUserProperty, User
-from allura.model.project import ProjectRole
from allura.model.timeline import ActivityObject
-from allura.lib import helpers as h
if typing.TYPE_CHECKING:
from ming.odm.mapper import Query
diff --git a/ForgeFeedback/forgefeedback/tests/functional/test_root.py b/ForgeFeedback/forgefeedback/tests/functional/test_root.py
index 69243f0d5..b751eb7a3 100644
--- a/ForgeFeedback/forgefeedback/tests/functional/test_root.py
+++ b/ForgeFeedback/forgefeedback/tests/functional/test_root.py
@@ -15,14 +15,10 @@
# specific language governing permissions and limitations
# under the License.
from tg import tmpl_context as c
-from tg import config
from allura import model as M
from alluratest.controller import TestController
-from allura.lib import helpers as h
-from allura.tests import decorators as td
-from forgefeedback import model as FM
class TestFeedback(TestController):
diff --git a/ForgeFiles/forgefiles/files_main.py b/ForgeFiles/forgefiles/files_main.py
index 98517a6ed..7c91a6896 100755
--- a/ForgeFiles/forgefiles/files_main.py
+++ b/ForgeFiles/forgefiles/files_main.py
@@ -23,7 +23,7 @@ from urllib.parse import unquote
from tg import config, redirect, expose, flash
from tg.decorators import with_trailing_slash, without_trailing_slash
from tg import tmpl_context as c, app_globals as g
-from tg import request, response
+from tg import request
from jinja2.exceptions import TemplateNotFound
from allura.app import Application
diff --git a/ForgeGit/forgegit/controllers.py b/ForgeGit/forgegit/controllers.py
index 2062d0c24..ee64b0b60 100644
--- a/ForgeGit/forgegit/controllers.py
+++ b/ForgeGit/forgegit/controllers.py
@@ -17,7 +17,7 @@
from allura.lib.utils import permanent_redirect
-from tg import expose, redirect
+from tg import expose
from tg.decorators import with_trailing_slash
from tg import tmpl_context as c
diff --git a/ForgeGit/forgegit/tests/model/test_repository.py b/ForgeGit/forgegit/tests/model/test_repository.py
index 7d0e97130..adcbf756f 100644
--- a/ForgeGit/forgegit/tests/model/test_repository.py
+++ b/ForgeGit/forgegit/tests/model/test_repository.py
@@ -19,7 +19,6 @@
import os
import shutil
import stat
-import unittest
import pkg_resources
import datetime
import email.iterators
diff --git a/ForgeGit/forgegit/tests/test_git_app.py b/ForgeGit/forgegit/tests/test_git_app.py
index ee4df227f..d158b30f5 100644
--- a/ForgeGit/forgegit/tests/test_git_app.py
+++ b/ForgeGit/forgegit/tests/test_git_app.py
@@ -15,7 +15,6 @@
# specific language governing permissions and limitations
# under the License.
-import unittest
from tg import tmpl_context as c
from ming.odm import ThreadLocalODMSession
diff --git a/ForgeGit/forgegit/tests/test_tasks.py b/ForgeGit/forgegit/tests/test_tasks.py
index 48ea4828e..48ab369bd 100644
--- a/ForgeGit/forgegit/tests/test_tasks.py
+++ b/ForgeGit/forgegit/tests/test_tasks.py
@@ -14,7 +14,6 @@
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
-import unittest
import mock
from testfixtures import LogCapture
diff --git a/ForgeImporters/forgeimporters/github/tracker.py b/ForgeImporters/forgeimporters/github/tracker.py
index 26f66551d..a9f27d205 100644
--- a/ForgeImporters/forgeimporters/github/tracker.py
+++ b/ForgeImporters/forgeimporters/github/tracker.py
@@ -19,7 +19,6 @@ import re
import logging
from datetime import datetime
from urllib.error import HTTPError
-import six
from io import BytesIO
from tg import (
diff --git a/ForgeImporters/forgeimporters/github/wiki.py b/ForgeImporters/forgeimporters/github/wiki.py
index a0fc47770..a36e0e858 100644
--- a/ForgeImporters/forgeimporters/github/wiki.py
+++ b/ForgeImporters/forgeimporters/github/wiki.py
@@ -21,7 +21,6 @@ from datetime import datetime
from tempfile import mkdtemp
from shutil import rmtree
-import six
from bs4 import BeautifulSoup
import git
diff --git a/ForgeImporters/forgeimporters/trac/tests/test_tickets.py b/ForgeImporters/forgeimporters/trac/tests/test_tickets.py
index daff4e392..9cdadba1c 100644
--- a/ForgeImporters/forgeimporters/trac/tests/test_tickets.py
+++ b/ForgeImporters/forgeimporters/trac/tests/test_tickets.py
@@ -26,7 +26,7 @@ from ming.odm import ThreadLocalODMSession
from tg import tmpl_context as c, config
from allura.tests import TestController
-from allura.tests.decorators import with_tracker, with_wiki
+from allura.tests.decorators import with_tracker
from alluratest.controller import TestRestApiBase, setup_unit_test
from alluratest.tools import module_not_available
diff --git a/ForgeSVN/forgesvn/controllers.py b/ForgeSVN/forgesvn/controllers.py
index ac07d05a5..030e2f0e2 100644
--- a/ForgeSVN/forgesvn/controllers.py
+++ b/ForgeSVN/forgesvn/controllers.py
@@ -17,7 +17,7 @@
from allura.lib.utils import permanent_redirect
-from tg import expose, redirect
+from tg import expose
from tg.decorators import with_trailing_slash
from tg import tmpl_context as c
diff --git a/ForgeSVN/forgesvn/model/svn.py b/ForgeSVN/forgesvn/model/svn.py
index 6d210f128..278f4bf4b 100644
--- a/ForgeSVN/forgesvn/model/svn.py
+++ b/ForgeSVN/forgesvn/model/svn.py
@@ -36,7 +36,7 @@ import tg
import pysvn
from paste.deploy.converters import asbool, asint
from pymongo.errors import DuplicateKeyError
-from tg import tmpl_context as c, app_globals as g
+from tg import app_globals as g
from ming.base import Object
from ming.odm import Mapper, FieldProperty
@@ -44,7 +44,6 @@ from ming.utils import LazyProperty
from allura import model as M
from allura.lib import helpers as h
-from allura.model.auth import User
from allura.model.repository import zipdir
from allura.model import repository as RM
diff --git a/ForgeSVN/forgesvn/svn_main.py b/ForgeSVN/forgesvn/svn_main.py
index f2bf240b0..cf712eedd 100644
--- a/ForgeSVN/forgesvn/svn_main.py
+++ b/ForgeSVN/forgesvn/svn_main.py
@@ -26,7 +26,6 @@ from ming.odm.odmsession import ThreadLocalODMSession
from tg import expose, redirect, validate, flash
from tg.decorators import with_trailing_slash, without_trailing_slash
from timermiddleware import Timer
-from paste.deploy.converters import asint
# Pyforge-specific imports
import allura.tasks.repo_tasks
diff --git a/ForgeSVN/forgesvn/tests/model/test_repository.py b/ForgeSVN/forgesvn/tests/model/test_repository.py
index 6d3338f3c..f1e95c18e 100644
--- a/ForgeSVN/forgesvn/tests/model/test_repository.py
+++ b/ForgeSVN/forgesvn/tests/model/test_repository.py
@@ -17,7 +17,6 @@
import os
import shutil
-import unittest
from unittest import skipUnless
import pkg_resources
diff --git a/ForgeSVN/forgesvn/tests/test_svn_app.py b/ForgeSVN/forgesvn/tests/test_svn_app.py
index 1811445d7..ad910ceab 100644
--- a/ForgeSVN/forgesvn/tests/test_svn_app.py
+++ b/ForgeSVN/forgesvn/tests/test_svn_app.py
@@ -15,7 +15,6 @@
# specific language governing permissions and limitations
# under the License.
-import unittest
from tg import tmpl_context as c
from ming.odm import ThreadLocalODMSession
diff --git a/ForgeSVN/forgesvn/tests/test_tasks.py b/ForgeSVN/forgesvn/tests/test_tasks.py
index a948a4f82..8df3e80d1 100644
--- a/ForgeSVN/forgesvn/tests/test_tasks.py
+++ b/ForgeSVN/forgesvn/tests/test_tasks.py
@@ -16,7 +16,6 @@
# under the License.
import shutil
-import unittest
import os
import tg
diff --git a/ForgeShortUrl/forgeshorturl/model/shorturl.py b/ForgeShortUrl/forgeshorturl/model/shorturl.py
index 605eb690b..8da0aef9b 100644
--- a/ForgeShortUrl/forgeshorturl/model/shorturl.py
+++ b/ForgeShortUrl/forgeshorturl/model/shorturl.py
@@ -19,7 +19,7 @@ import typing
import pymongo
from tg import config
from tg import tmpl_context as c
-from ming.odm import FieldProperty, ForeignIdProperty, session
+from ming.odm import FieldProperty, session
from datetime import datetime
from allura.model.auth import User
from allura import model as M
diff --git a/ForgeTracker/forgetracker/import_support.py b/ForgeTracker/forgetracker/import_support.py
index 13acf1c0b..abfe426bd 100644
--- a/ForgeTracker/forgetracker/import_support.py
+++ b/ForgeTracker/forgetracker/import_support.py
@@ -31,7 +31,6 @@ from allura.lib.plugin import ImportIdConverter
# Local imports
from forgetracker import model as TM
-import six
try:
from forgeimporters.base import ProjectExtractor
diff --git a/ForgeTracker/forgetracker/model/ticket.py b/ForgeTracker/forgetracker/model/ticket.py
index 9ca5a77bf..05a0fbd74 100644
--- a/ForgeTracker/forgetracker/model/ticket.py
+++ b/ForgeTracker/forgetracker/model/ticket.py
@@ -32,7 +32,6 @@ import pymongo
from pymongo.errors import OperationFailure
from tg import tmpl_context as c, app_globals as g
from paste.deploy.converters import aslist, asbool
-import jinja2
import markupsafe
from ming import schema
diff --git a/ForgeTracker/forgetracker/plugins.py b/ForgeTracker/forgetracker/plugins.py
index 676deb255..71f6832de 100644
--- a/ForgeTracker/forgetracker/plugins.py
+++ b/ForgeTracker/forgetracker/plugins.py
@@ -17,7 +17,5 @@
import logging
-from tg import config
-from tg import app_globals as g
log = logging.getLogger(__name__)
diff --git a/ForgeTracker/forgetracker/search.py b/ForgeTracker/forgetracker/search.py
index 10cd3c083..d215cc631 100644
--- a/ForgeTracker/forgetracker/search.py
+++ b/ForgeTracker/forgetracker/search.py
@@ -17,7 +17,6 @@
from tg import tmpl_context as c
from allura.lib.search import search
-import six
FACET_PARAMS = {
diff --git a/ForgeTracker/forgetracker/tests/functional/test_root.py b/ForgeTracker/forgetracker/tests/functional/test_root.py
index 2e1ffb229..a392db564 100644
--- a/ForgeTracker/forgetracker/tests/functional/test_root.py
+++ b/ForgeTracker/forgetracker/tests/functional/test_root.py
@@ -15,9 +15,6 @@
# specific language governing permissions and limitations
# under the License.
from datetime import datetime
-import six.moves.urllib.request
-import six.moves.urllib.parse
-import six.moves.urllib.error
import os
import time
import json
@@ -48,7 +45,6 @@ from allura.lib.utils import urlencode
from allura.tests import decorators as td
from allura.tasks import mail_tasks
from ming.odm.odmsession import ThreadLocalODMSession
-import six
def find(d, pred):
diff --git a/ForgeTracker/forgetracker/tests/unit/test_root_controller.py b/ForgeTracker/forgetracker/tests/unit/test_root_controller.py
index 9f1a6950a..aa8312c39 100644
--- a/ForgeTracker/forgetracker/tests/unit/test_root_controller.py
+++ b/ForgeTracker/forgetracker/tests/unit/test_root_controller.py
@@ -15,7 +15,6 @@
# specific language governing permissions and limitations
# under the License.
-import unittest
from mock import Mock, patch
from ming.odm.odmsession import session
diff --git a/ForgeTracker/forgetracker/tests/unit/test_ticket_model.py b/ForgeTracker/forgetracker/tests/unit/test_ticket_model.py
index d62b6bf19..f580797fb 100644
--- a/ForgeTracker/forgetracker/tests/unit/test_ticket_model.py
+++ b/ForgeTracker/forgetracker/tests/unit/test_ticket_model.py
@@ -17,7 +17,6 @@
from tg import tmpl_context as c
from datetime import datetime
-from io import BytesIO
import os
import six.moves.urllib.parse
import six.moves.urllib.request
diff --git a/ForgeTracker/forgetracker/widgets/ticket_form.py b/ForgeTracker/forgetracker/widgets/ticket_form.py
index aa45ee83d..fc19fb94e 100644
--- a/ForgeTracker/forgetracker/widgets/ticket_form.py
+++ b/ForgeTracker/forgetracker/widgets/ticket_form.py
@@ -26,7 +26,6 @@ from allura import model as M
from allura.lib.widgets import form_fields as ffw
from allura.lib import helpers as h
from allura.lib import validators as v
-import six
class TicketCustomFields(ew.CompoundField):
diff --git a/ForgeTracker/forgetracker/widgets/ticket_search.py b/ForgeTracker/forgetracker/widgets/ticket_search.py
index 8139becf6..effa98f3b 100644
--- a/ForgeTracker/forgetracker/widgets/ticket_search.py
+++ b/ForgeTracker/forgetracker/widgets/ticket_search.py
@@ -20,7 +20,6 @@ import ew.jinja2_ew as ew
from allura.lib.widgets import form_fields as ffw
from allura.lib.widgets import forms
-import six
diff --git a/ForgeUserStats/forgeuserstats/controllers/userstats.py b/ForgeUserStats/forgeuserstats/controllers/userstats.py
index 7df06f51f..02e10c663 100644
--- a/ForgeUserStats/forgeuserstats/controllers/userstats.py
+++ b/ForgeUserStats/forgeuserstats/controllers/userstats.py
@@ -15,7 +15,6 @@
# specific language governing permissions and limitations
# under the License.
from datetime import datetime
-import re
from tg import expose, validate, redirect
from tg.decorators import with_trailing_slash
diff --git a/ForgeUserStats/forgeuserstats/tests/test_model.py b/ForgeUserStats/forgeuserstats/tests/test_model.py
index 74703fa86..9842cc642 100644
--- a/ForgeUserStats/forgeuserstats/tests/test_model.py
+++ b/ForgeUserStats/forgeuserstats/tests/test_model.py
@@ -16,7 +16,6 @@
# under the License.
import pkg_resources
-import unittest
from datetime import datetime, timedelta
from tg import tmpl_context as c
diff --git a/ForgeUserStats/forgeuserstats/tests/test_stats.py b/ForgeUserStats/forgeuserstats/tests/test_stats.py
index 9e4bb43ed..b44e900d7 100644
--- a/ForgeUserStats/forgeuserstats/tests/test_stats.py
+++ b/ForgeUserStats/forgeuserstats/tests/test_stats.py
@@ -16,7 +16,6 @@
# under the License.
import pkg_resources
-import unittest
from tg import tmpl_context as c
diff --git a/ForgeWiki/forgewiki/converters.py b/ForgeWiki/forgewiki/converters.py
index 0a3575649..5a194e4f8 100644
--- a/ForgeWiki/forgewiki/converters.py
+++ b/ForgeWiki/forgewiki/converters.py
@@ -17,7 +17,6 @@
import re
from bs4 import BeautifulSoup
-import six
_inline_img = re.compile(r'\[\[(File|Image):([^\]|]+)[^]]*\]\]', re.UNICODE)
_inline_img_markdown = r'[[img src=\2]]'
diff --git a/ForgeWiki/forgewiki/model/wiki.py b/ForgeWiki/forgewiki/model/wiki.py
index 4b10c2a76..5b6d0e682 100644
--- a/ForgeWiki/forgewiki/model/wiki.py
+++ b/ForgeWiki/forgewiki/model/wiki.py
@@ -35,7 +35,6 @@ from allura.model import (
Snapshot,
Feed,
Thread,
- Post,
User,
BaseAttachment,
Notification,
diff --git a/run_tests b/run_tests
index e83aec083..3310ca91e 100755
--- a/run_tests
+++ b/run_tests
@@ -18,7 +18,6 @@
# under the License.
import argparse
-from collections import defaultdict
from glob import glob
import json
import multiprocessing
diff --git a/scripts/migrations/032-subscribe-merge-request-submitters.py b/scripts/migrations/032-subscribe-merge-request-submitters.py
index f04c20574..cc630f921 100644
--- a/scripts/migrations/032-subscribe-merge-request-submitters.py
+++ b/scripts/migrations/032-subscribe-merge-request-submitters.py
@@ -17,7 +17,7 @@
import logging
-from ming.odm import ThreadLocalODMSession, state
+from ming.odm import ThreadLocalODMSession
from allura.lib import utils
from allura import model as M
diff --git a/scripts/migrations/033-change-comment-anon-permissions.py b/scripts/migrations/033-change-comment-anon-permissions.py
index 2cfb824d9..26f5790dc 100644
--- a/scripts/migrations/033-change-comment-anon-permissions.py
+++ b/scripts/migrations/033-change-comment-anon-permissions.py
@@ -15,14 +15,13 @@
# specific language governing permissions and limitations
# under the License.
-import sys
import logging
-from ming.odm import ThreadLocalODMSession, session
+from ming.odm import session
from tg import tmpl_context as c
from allura import model as M
from forgediscussion.model import ForumPost
from allura.lib import utils, security
-from argparse import ArgumentParser, ArgumentDefaultsHelpFormatter, ArgumentTypeError
+from argparse import ArgumentParser, ArgumentDefaultsHelpFormatter
log = logging.getLogger(__name__)
diff --git a/scripts/migrations/034-update_subscriptions_ticket_and_mr_titles.py b/scripts/migrations/034-update_subscriptions_ticket_and_mr_titles.py
index 3eb4c488a..7e3dc1c3e 100644
--- a/scripts/migrations/034-update_subscriptions_ticket_and_mr_titles.py
+++ b/scripts/migrations/034-update_subscriptions_ticket_and_mr_titles.py
@@ -22,7 +22,6 @@ from tg import tmpl_context as c
from bson import ObjectId
from ming.odm import session
-from ming.odm import ThreadLocalODMSession
from allura import model as M
from forgetracker import model as TM
diff --git a/scripts/perf/generate-projects.py b/scripts/perf/generate-projects.py
index 503ed255c..1122fa762 100644
--- a/scripts/perf/generate-projects.py
+++ b/scripts/perf/generate-projects.py
@@ -15,7 +15,6 @@
# specific language governing permissions and limitations
# under the License.
-import re
from ming.odm import ThreadLocalODMSession
from allura import model as M
diff --git a/scripts/perf/load-up-forum.py b/scripts/perf/load-up-forum.py
index 3e6773f15..91338dec1 100644
--- a/scripts/perf/load-up-forum.py
+++ b/scripts/perf/load-up-forum.py
@@ -17,12 +17,11 @@
import logging
-import uuid
-from ming.odm import ThreadLocalODMSession, session
+from ming.odm import session
from tg import tmpl_context as c
from allura import model as M
-from forgediscussion.model import ForumPost, Forum
-from argparse import ArgumentParser, ArgumentDefaultsHelpFormatter, ArgumentTypeError
+from forgediscussion.model import Forum
+from argparse import ArgumentParser, ArgumentDefaultsHelpFormatter
from allura.lib import helpers as h
from random import randint
diff --git a/scripts/trac_import.py b/scripts/trac_import.py
index dc61bf04b..a066d0004 100644
--- a/scripts/trac_import.py
+++ b/scripts/trac_import.py
@@ -20,7 +20,6 @@ from optparse import OptionParser
from allura.lib.import_api import AlluraImportApiClient
from tracwikiimporter.scripts.wiki_from_trac.loaders import import_wiki
-import six
def main():
(allura) 03/03: pep8 reformatting
Posted by br...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
brondsem pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/allura.git
commit bce9a59c250d3c16ea22e939674a9463ed1acaf2
Author: Dave Brondsema <db...@slashdotmedia.com>
AuthorDate: Wed Oct 30 13:06:03 2024 -0400
pep8 reformatting
---
Allura/allura/controllers/auth.py | 1 +
Allura/allura/controllers/rest.py | 1 +
Allura/allura/lib/custom_middleware.py | 4 +-
Allura/allura/lib/helpers.py | 2 +
Allura/allura/lib/patches.py | 2 +
Allura/allura/lib/plugin.py | 1 -
Allura/allura/lib/security.py | 2 +-
Allura/allura/lib/solr.py | 4 +-
Allura/allura/lib/widgets/oauth_widgets.py | 1 -
Allura/allura/lib/widgets/project_list.py | 6 +-
Allura/allura/model/auth.py | 2 +-
Allura/allura/model/discuss.py | 2 +-
Allura/allura/model/index.py | 2 +-
Allura/allura/model/notification.py | 4 +-
Allura/allura/model/repo_refresh.py | 2 +-
Allura/allura/model/session.py | 2 +-
Allura/allura/model/timeline.py | 1 +
Allura/allura/scripts/refreshrepo.py | 2 +-
Allura/allura/tasks/admin_tasks.py | 1 +
Allura/allura/templates/__init__.py | 1 -
Allura/allura/templates_responsive/__init__.py | 2 +-
Allura/allura/tests/exclude_from_rewrite_hook.py | 2 +-
Allura/allura/tests/functional/__init__.py | 1 -
Allura/allura/tests/functional/test_admin.py | 2 +-
Allura/allura/tests/functional/test_auth.py | 54 +++++---
Allura/allura/tests/functional/test_feeds.py | 2 +-
.../tests/functional/test_personal_dashboard.py | 2 +-
Allura/allura/tests/functional/test_rest.py | 2 +-
Allura/allura/tests/functional/test_root.py | 2 +-
Allura/allura/tests/model/__init__.py | 1 -
Allura/allura/tests/model/test_artifact.py | 2 +
Allura/allura/tests/model/test_auth.py | 14 +-
Allura/allura/tests/model/test_discussion.py | 2 +-
Allura/allura/tests/model/test_filesystem.py | 2 +
Allura/allura/tests/model/test_repo.py | 13 +-
Allura/allura/tests/scripts/__init__.py | 1 -
.../tests/scripts/test_create_sitemap_files.py | 2 +-
Allura/allura/tests/templates/__init__.py | 1 -
.../tests/templates/jinja_master/__init__.py | 1 -
Allura/allura/tests/test_globals.py | 2 +-
Allura/allura/tests/test_helpers.py | 5 +-
Allura/allura/tests/test_markdown.py | 2 +-
Allura/allura/tests/test_plugin.py | 6 +-
Allura/allura/tests/test_validators.py | 6 +-
.../test_discussion_moderation_controller.py | 2 +-
Allura/allura/tests/unit/test_app.py | 2 +-
Allura/allura/tests/unit/test_artifact.py | 2 +-
Allura/allura/tests/unit/test_session.py | 4 +-
Allura/allura/tests/unit/test_solr.py | 2 +-
Allura/allura/websetup/bootstrap.py | 5 +-
Allura/ldap-setup.py | 1 +
Allura/ldap-userconfig.py | 1 +
Allura/setup.py | 2 +-
AlluraTest/alluratest/smtp_debug.py | 2 +-
AlluraTest/alluratest/test_syntax.py | 1 -
.../forgeactivity/tests/functional/test_root.py | 2 +-
ForgeBlog/forgeblog/tests/test_commands.py | 2 +-
ForgeBlog/forgeblog/widgets.py | 2 +-
ForgeChat/forgechat/model/chat.py | 1 +
.../forgediscussion/widgets/forum_widgets.py | 2 +-
ForgeFeedback/forgefeedback/feedback_main.py | 9 +-
.../forgefeedback/tests/functional/test_root.py | 1 -
ForgeFeedback/setup.py | 4 -
ForgeFiles/forgefiles/files_main.py | 17 ---
ForgeFiles/forgefiles/model/files.py | 3 -
ForgeFiles/forgefiles/tests/__init__.py | 1 -
ForgeFiles/forgefiles/tests/functional/__init__.py | 1 -
.../forgefiles/tests/functional/test_root.py | 2 +-
ForgeFiles/forgefiles/tests/model/__init__.py | 1 -
ForgeGit/forgegit/tests/test_tasks.py | 1 -
ForgeImporters/forgeimporters/forge/discussion.py | 40 +++---
.../forgeimporters/github/tests/test_utils.py | 2 +-
.../forgeimporters/github/tests/test_wiki.py | 2 +-
.../forgeimporters/tests/forge/test_discussion.py | 154 ++++++++++-----------
.../forgeimporters/tests/forge/test_tracker.py | 4 +-
.../tests/github/functional/test_github.py | 1 -
.../forgeimporters/tests/github/test_tracker.py | 2 +-
ForgeImporters/forgeimporters/tests/test_base.py | 4 +-
.../forgeimporters/trac/tests/test_tickets.py | 11 +-
ForgeSVN/forgesvn/tests/functional/test_auth.py | 2 +-
ForgeSVN/forgesvn/tests/model/test_repository.py | 2 +-
ForgeTracker/forgetracker/import_support.py | 2 +-
ForgeTracker/forgetracker/search.py | 2 +-
.../forgetracker/tests/unit/test_ticket_model.py | 2 +-
ForgeTracker/forgetracker/widgets/ticket_search.py | 1 -
ForgeUserStats/forgeuserstats/tests/test_model.py | 4 +-
ForgeWiki/forgewiki/model/wiki.py | 1 +
ForgeWiki/forgewiki/tests/test_models.py | 1 +
conftest.py | 3 +-
scripts/changelog.py | 1 +
scripts/migrations/013-update-ordinals.py | 1 +
.../015-add-neighborhood_id-to-blog-posts.py | 1 +
.../migrations/020-remove-wiki-title-slashes.py | 1 +
scripts/migrations/022-change-anon-display-name.py | 1 +
.../migrations/024-migrate-custom-profile-text.py | 1 +
scripts/migrations/025-add-is-nbhd-project.py | 1 +
scripts/migrations/026-install-activity-tool.py | 1 +
.../027-change-ticket-write-permissions.py | 1 +
scripts/migrations/028-remove-svn-trees.py | 1 +
scripts/migrations/029-set-mailbox-queue_empty.py | 1 +
.../migrations/031-set-user-pending-to-false.py | 1 +
...34-update_subscriptions_ticket_and_mr_titles.py | 2 +-
scripts/perf/load-up-forum.py | 2 +-
scripts/perf/sstress.py | 1 +
scripts/perf/test_git_lcd.py | 1 +
105 files changed, 256 insertions(+), 247 deletions(-)
diff --git a/Allura/allura/controllers/auth.py b/Allura/allura/controllers/auth.py
index 770281005..0b6a7e1d2 100644
--- a/Allura/allura/controllers/auth.py
+++ b/Allura/allura/controllers/auth.py
@@ -1545,6 +1545,7 @@ class OAuthController(BaseController):
flash('Authorization revoked')
redirect('.')
+
class OAuth2AuthorizationController(BaseController):
def _check_security(self):
require_authenticated()
diff --git a/Allura/allura/controllers/rest.py b/Allura/allura/controllers/rest.py
index 82a39e1f4..0c45bb16e 100644
--- a/Allura/allura/controllers/rest.py
+++ b/Allura/allura/controllers/rest.py
@@ -546,6 +546,7 @@ class Oauth2Negotiator:
response.status_int = status
return body
+
def rest_has_access(obj, user, perm):
"""
Helper function that encapsulates common functionality for has_access API
diff --git a/Allura/allura/lib/custom_middleware.py b/Allura/allura/lib/custom_middleware.py
index 0e8c0392a..9e937a66d 100644
--- a/Allura/allura/lib/custom_middleware.py
+++ b/Allura/allura/lib/custom_middleware.py
@@ -326,7 +326,7 @@ class AlluraTimerMiddleware(TimerMiddleware):
debug_each_call=False),
Timer('ming', ming.odm.odmsession.ODMSession,
'insert_now', 'update_now', 'delete_now',
- 'find', 'find_one_and_update', 'find_one_and_replace', 'find_one_and_delete',
+ 'find', 'find_one_and_update', 'find_one_and_replace', 'find_one_and_delete',
'remove', 'update', 'update_if_not_modified',
'aggregate', 'distinct',
),
@@ -502,7 +502,7 @@ class ContentSecurityPolicyMiddleware:
srcs += ' ' + ' '.join(environ['csp_form_actions'])
oauth_endpoints = (
- '/auth/oauth2/authorize', '/auth/oauth2/do_authorize', '/rest/oauth/authorize', '/rest/oauth/do_authorize')
+ '/auth/oauth2/authorize', '/auth/oauth2/do_authorize', '/rest/oauth/authorize', '/rest/oauth/do_authorize')
if not req.path.startswith(oauth_endpoints): # Do not enforce CSP for OAuth1 and OAuth2 authorization
if asbool(self.config.get('csp.form_actions_enforce', False)):
rules.add(f"form-action {srcs}")
diff --git a/Allura/allura/lib/helpers.py b/Allura/allura/lib/helpers.py
index 8631f09ca..a8a903da7 100644
--- a/Allura/allura/lib/helpers.py
+++ b/Allura/allura/lib/helpers.py
@@ -1051,6 +1051,7 @@ class NoInternalHTTPSHandler(urllib.request.HTTPSHandler):
validators.NonPrivateUrl().to_python(req.full_url, None)
return super().https_open(req)
+
class UseKnownIPHTTPConnection(http.client.HTTPConnection):
# only for http, since https requires a valid cert it should be ok
def __init__(self, *a, known_ip_to_use=None, **kw):
@@ -1073,6 +1074,7 @@ class NotInternalHTTPHandler(urllib.request.HTTPHandler):
else:
return super().http_open(req)
+
urllib.request.install_opener(urllib.request.build_opener(NotInternalHTTPHandler, NoInternalHTTPSHandler))
diff --git a/Allura/allura/lib/patches.py b/Allura/allura/lib/patches.py
index d8d642394..ec810fab1 100644
--- a/Allura/allura/lib/patches.py
+++ b/Allura/allura/lib/patches.py
@@ -24,6 +24,8 @@ from tg import request
from allura.lib import helpers as h
_patched = False
+
+
def apply():
global _patched # noqa: PLW0603
if _patched:
diff --git a/Allura/allura/lib/plugin.py b/Allura/allura/lib/plugin.py
index fa059bd38..6275c20bc 100644
--- a/Allura/allura/lib/plugin.py
+++ b/Allura/allura/lib/plugin.py
@@ -820,7 +820,6 @@ class LdapAuthenticationProvider(AuthenticationProvider):
raise ValueError(f'LDAP algorithms should always start with ldap_ (got {algorithm})')
return crypt
-
def set_password(self, user, old_password, new_password, set_timestamp=True):
dn = ldap_user_dn(user.username)
if old_password is not None:
diff --git a/Allura/allura/lib/security.py b/Allura/allura/lib/security.py
index 1db9f19c2..10805f093 100644
--- a/Allura/allura/lib/security.py
+++ b/Allura/allura/lib/security.py
@@ -304,7 +304,7 @@ def debug_obj(obj) -> str:
return str(obj)
-def has_access(obj, permission: str, user: M.User | None = None, project: M.Project | None = None, roles = None) -> bool:
+def has_access(obj, permission: str, user: M.User | None = None, project: M.Project | None = None, roles=None) -> bool:
'''Return whether the given user has the permission name on the given object.
- First, all the roles for a user in the given project context are computed.
diff --git a/Allura/allura/lib/solr.py b/Allura/allura/lib/solr.py
index 49511d8aa..68fddb3c6 100644
--- a/Allura/allura/lib/solr.py
+++ b/Allura/allura/lib/solr.py
@@ -62,7 +62,7 @@ def escape_solr_arg(term):
return term
-def make_solr_from_config(push_servers: Iterable[str], query_server: str|None=None,
+def make_solr_from_config(push_servers: Iterable[str], query_server: str | None = None,
push_servers_auths: Iterable[tuple[str, str] | None] = (),
query_server_auth: tuple[str, str] | None = None,
**kwargs):
@@ -91,7 +91,7 @@ class Solr:
unless explicitly overridden.
"""
- def __init__(self, push_servers: Iterable[str], query_server: str|None = None,
+ def __init__(self, push_servers: Iterable[str], query_server: str | None = None,
push_servers_auths: Iterable[tuple[str, str] | None] = (),
query_server_auth: tuple[str, str] | None = None,
commit=True, commitWithin=None, **kw):
diff --git a/Allura/allura/lib/widgets/oauth_widgets.py b/Allura/allura/lib/widgets/oauth_widgets.py
index 7fe33b75e..5823907d4 100644
--- a/Allura/allura/lib/widgets/oauth_widgets.py
+++ b/Allura/allura/lib/widgets/oauth_widgets.py
@@ -81,4 +81,3 @@ class OAuth2ApplicationForm(ForgeForm):
attrs=dict(type='url', style='min-width:25em; margin-left: 162px;', # match grid-4 label width
pattern='https://.*', title='must start with https://'),
)
-
diff --git a/Allura/allura/lib/widgets/project_list.py b/Allura/allura/lib/widgets/project_list.py
index b91d2dd84..d0d643e0c 100644
--- a/Allura/allura/lib/widgets/project_list.py
+++ b/Allura/allura/lib/widgets/project_list.py
@@ -37,7 +37,7 @@ class ProjectSummary(ew_core.Widget):
show_proj_icon=True,
show_download_button=True,
show_awards_banner=True,
- )
+ )
def prepare_context(self, context):
response = super().prepare_context(context)
@@ -84,7 +84,7 @@ class ProjectList(ew_core.Widget):
show_proj_icon=True,
show_download_button=True,
show_awards_banner=True,
- )
+ )
def prepare_context(self, context):
response = super().prepare_context(context)
@@ -121,4 +121,4 @@ class ProjectScreenshots(ew_core.Widget):
def resources(self):
yield ew.JSLink('allura/js/Sortable.min.js')
yield ew.JSLink('js/screenshots.js')
- yield ew.CSSLink('css/screenshots.css')
\ No newline at end of file
+ yield ew.CSSLink('css/screenshots.css')
diff --git a/Allura/allura/model/auth.py b/Allura/allura/model/auth.py
index 51dc98617..a14cbf2ad 100644
--- a/Allura/allura/model/auth.py
+++ b/Allura/allura/model/auth.py
@@ -175,7 +175,7 @@ please visit the following URL:
'''.format(self.email,
self.claimed_by_user(include_pending=True).username,
h.absurl(f'/auth/verify_addr?a={h.urlquote(self.nonce)}'),
- )
+ )
log.info('Verification email:\n%s', text)
allura.tasks.mail_tasks.sendsimplemail.post(
fromaddr=g.noreply,
diff --git a/Allura/allura/model/discuss.py b/Allura/allura/model/discuss.py
index 6cb0b6ef3..35d07cc77 100644
--- a/Allura/allura/model/discuss.py
+++ b/Allura/allura/model/discuss.py
@@ -405,7 +405,7 @@ class Thread(Artifact, ActivityObject):
if (has_access(self, 'moderate', u)
and Mailbox.subscribed(user_id=u._id,
app_config_id=post.app_config_id)):
- n.send_direct(str(u._id))
+ n.send_direct(str(u._id))
def update_stats(self):
self.num_replies = self.post_class().query.find(
diff --git a/Allura/allura/model/index.py b/Allura/allura/model/index.py
index 50b33999f..64f5526b4 100644
--- a/Allura/allura/model/index.py
+++ b/Allura/allura/model/index.py
@@ -170,7 +170,7 @@ class Shortlink(MappedClass):
result = {}
# Parse all the links
parsed_links = {link: cls._parse_link(link)
- for link in links}
+ for link in links}
links_by_artifact = defaultdict(list)
project_ids = set()
for link, d in list(parsed_links.items()):
diff --git a/Allura/allura/model/notification.py b/Allura/allura/model/notification.py
index a8b5a7625..337411c3d 100644
--- a/Allura/allura/model/notification.py
+++ b/Allura/allura/model/notification.py
@@ -237,7 +237,7 @@ class Notification(MappedClass):
but the notification still gets sent if there is an error
'''
log.warning('Could not render notification template %s' %
- artifact.type_s, exc_info=True)
+ artifact.type_s, exc_info=True)
assert d['reply_to_address'] is not None
project = c.project
@@ -622,7 +622,7 @@ class Mailbox(MappedClass):
queue=[],
queue_empty=True,
)},
- )
+ )
mbox.fire(now)
def fire(self, now):
diff --git a/Allura/allura/model/repo_refresh.py b/Allura/allura/model/repo_refresh.py
index e5dbbbea2..2e1fa2a3a 100644
--- a/Allura/allura/model/repo_refresh.py
+++ b/Allura/allura/model/repo_refresh.py
@@ -92,7 +92,7 @@ def refresh_repo(repo, all_commits=False, notify=True, new_clone=False, commits_
if user is not None:
g.statsUpdater.newCommit(new, repo.app_config.project, user)
actor = user or TransientActor(
- activity_name=new.committed.name or new.committed.email)
+ activity_name=new.committed.name or new.committed.email)
g.director.create_activity(actor, 'committed', new, target=repo.app,
related_nodes=[repo.app_config.project],
tags=['commit', repo.tool.lower()])
diff --git a/Allura/allura/model/session.py b/Allura/allura/model/session.py
index 2752afa46..fb577f6be 100644
--- a/Allura/allura/model/session.py
+++ b/Allura/allura/model/session.py
@@ -273,7 +273,7 @@ task_doc_session = Session.by_name('task')
main_orm_session = ThreadLocalODMSession(
doc_session=main_doc_session,
extensions=[IndexerSessionExtension]
- )
+)
main_explicitflush_orm_session = ThreadLocalODMSession(
doc_session=main_doc_session,
extensions=[IndexerSessionExtension, ExplicitFlushOnlySessionExtension]
diff --git a/Allura/allura/model/timeline.py b/Allura/allura/model/timeline.py
index 6c343bd6f..db3bbc342 100644
--- a/Allura/allura/model/timeline.py
+++ b/Allura/allura/model/timeline.py
@@ -114,6 +114,7 @@ class TransientActor(NodeBase, ActivityObjectBase):
"""An activity actor which is not a persistent Node in the network.
"""
+
def __init__(self, activity_name):
NodeBase.__init__(self)
ActivityObjectBase.__init__(self)
diff --git a/Allura/allura/scripts/refreshrepo.py b/Allura/allura/scripts/refreshrepo.py
index 7756d1483..af5bee954 100644
--- a/Allura/allura/scripts/refreshrepo.py
+++ b/Allura/allura/scripts/refreshrepo.py
@@ -160,7 +160,7 @@ class RefreshRepo(ScriptTask):
parser.add_argument('--clean-after', metavar='DATETIME', dest='clean_after',
type=lambda d: datetime.strptime(d, date_format),
help='Like --clean but only docs for commits after date ({} format)'.format(
- date_format.replace('%', '%%')
+ date_format.replace('%', '%%')
))
parser.add_argument(
'--all', action='store_true', dest='all', default=False,
diff --git a/Allura/allura/tasks/admin_tasks.py b/Allura/allura/tasks/admin_tasks.py
index 9e30247a5..879e83f65 100644
--- a/Allura/allura/tasks/admin_tasks.py
+++ b/Allura/allura/tasks/admin_tasks.py
@@ -32,6 +32,7 @@ def install_app(*args, **kwargs):
"""
c.project.install_app(*args, **kwargs)
+
install_app.__doc__ += '''
Arguments::
diff --git a/Allura/allura/templates/__init__.py b/Allura/allura/templates/__init__.py
index 7b9f3fc3e..5acea7ec6 100644
--- a/Allura/allura/templates/__init__.py
+++ b/Allura/allura/templates/__init__.py
@@ -16,4 +16,3 @@
# under the License.
"""Templates package for the application."""
-
diff --git a/Allura/allura/templates_responsive/__init__.py b/Allura/allura/templates_responsive/__init__.py
index d70ae0770..144e29886 100644
--- a/Allura/allura/templates_responsive/__init__.py
+++ b/Allura/allura/templates_responsive/__init__.py
@@ -13,4 +13,4 @@
# "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.
\ No newline at end of file
+# under the License.
diff --git a/Allura/allura/tests/exclude_from_rewrite_hook.py b/Allura/allura/tests/exclude_from_rewrite_hook.py
index 828f994c4..6311e4001 100644
--- a/Allura/allura/tests/exclude_from_rewrite_hook.py
+++ b/Allura/allura/tests/exclude_from_rewrite_hook.py
@@ -46,4 +46,4 @@ def raise_compound_exception():
assert False, 'assert %d' % x
except Exception:
errs.append(sys.exc_info())
- raise CompoundError(*errs)
\ No newline at end of file
+ raise CompoundError(*errs)
diff --git a/Allura/allura/tests/functional/__init__.py b/Allura/allura/tests/functional/__init__.py
index f4a7b12aa..b8c15d776 100644
--- a/Allura/allura/tests/functional/__init__.py
+++ b/Allura/allura/tests/functional/__init__.py
@@ -16,4 +16,3 @@
# under the License.
"""Functional test suite for the controllers of the application."""
-
diff --git a/Allura/allura/tests/functional/test_admin.py b/Allura/allura/tests/functional/test_admin.py
index d0d6ee260..fa3249276 100644
--- a/Allura/allura/tests/functional/test_admin.py
+++ b/Allura/allura/tests/functional/test_admin.py
@@ -405,7 +405,7 @@ class TestProjectAdmin(TestController):
upload = ('screenshot', file_name, file_data)
self.app.get('/admin/')
- e_filename, e_fileext = os.path.splitext(file_name)
+ e_filename, e_fileext = os.path.splitext(file_name)
with audits('screenshots: added screenshot {}'.format(f"{e_filename}-123{e_fileext}")):
self.app.post('/admin/add_screenshot', params=dict(
caption='test me'),
diff --git a/Allura/allura/tests/functional/test_auth.py b/Allura/allura/tests/functional/test_auth.py
index a30f938b2..4d0180811 100644
--- a/Allura/allura/tests/functional/test_auth.py
+++ b/Allura/allura/tests/functional/test_auth.py
@@ -2184,7 +2184,11 @@ class TestOAuth2(TestController):
redirect_uris=['https://localhost/']
)
ThreadLocalODMSession.flush_all()
- r = self.app.get('/auth/oauth2/authorize', params={'client_id': 'client_12345', 'response_type': 'code', 'redirect_uri': 'https://localhost/'})
+ r = self.app.get('/auth/oauth2/authorize', params={
+ 'client_id': 'client_12345',
+ 'response_type': 'code',
+ 'redirect_uri': 'https://localhost/',
+ })
assert 'testoauth2' in r.text
assert 'client_12345' in r.text
@@ -2201,11 +2205,14 @@ class TestOAuth2(TestController):
redirect_uris=['https://localhost/']
)
ThreadLocalODMSession.flush_all()
- r = self.app.get('/auth/oauth2/authorize', params={'client_id': 'client_12345', 'response_type': 'code', 'redirect_uri': 'https://localhost/'})
+ r = self.app.get('/auth/oauth2/authorize', params={
+ 'client_id': 'client_12345',
+ 'response_type': 'code',
+ 'redirect_uri': 'https://localhost/',
+ })
r = r.forms[0].submit('no')
assert M.OAuth2AuthorizationCode.query.get(client_id='client_12345') is None
-
@mock.patch.dict(config, {'auth.oauth2.enabled': True})
def test_authorize_and_create_access_token(self):
# client owned by someone other than the test-admin user that self.app.get/post use
@@ -2225,7 +2232,11 @@ class TestOAuth2(TestController):
r.mustcontain(no='testoauth2')
# First navigate to the authorization page for the backend to validate the authorization request
- r = self.app.get('/auth/oauth2/authorize', params={'client_id': 'client_12345', 'response_type': 'code', 'redirect_uri': 'https://localhost/'})
+ r = self.app.get('/auth/oauth2/authorize', params={
+ 'client_id': 'client_12345',
+ 'response_type': 'code',
+ 'redirect_uri': 'https://localhost/',
+ })
# The submit authorization for the authorization code to be created
r.forms[0].submit('yes')
@@ -2251,7 +2262,6 @@ class TestOAuth2(TestController):
r = self.app.get('/auth/oauth/')
r.mustcontain('testoauth2')
-
@mock.patch.dict(config, {'auth.oauth2.enabled': True})
def test_revoke_auth_code(self):
# only the auth code is present, and it gets revoked
@@ -2287,7 +2297,6 @@ class TestOAuth2(TestController):
r = self.app.get('/auth/oauth/')
r.mustcontain(no='testoauth2')
-
@mock.patch.dict(config, {'auth.oauth2.enabled': True})
def test_revoke_access_token(self):
# both auth code and access token are present, both get revoked
@@ -2332,16 +2341,16 @@ class TestOAuth2(TestController):
r = self.app.get('/auth/oauth/')
r.mustcontain(no='testoauth2')
-
@mock.patch.dict(config, {'auth.oauth2.enabled': True})
def test_pkce(self, mock_client, mock_credentials):
code_verifier = 'QkatVHgTq_cZj8tTKWPIe78fXpoeszhVq6kLIUxJj8g9tMmfi0XV4dfZHQBXwOiWsLihJotfrOGKR4nZSXA4mA'
code_challenge = 'BxGpJVKt_l6Srlq3uXPfpxge3TxtxetcWhGXq2958yU'
- code_challenge_method = 'S256' # Must be uppercase
+ code_challenge_method = 'S256' # Must be uppercase
# Authorize the app by sending the code challenge and code challenge method as qs param
- params = dict(client_id='client_12345', response_type='code', redirect_uri='https://localhost/', code_challenge=code_challenge,
- code_challenge_method=code_challenge_method)
+ params = dict(client_id='client_12345', response_type='code', redirect_uri='https://localhost/',
+ code_challenge=code_challenge,
+ code_challenge_method=code_challenge_method)
r = self.app.get('/auth/oauth2/authorize', params=params)
# Authorize app
@@ -2352,7 +2361,8 @@ class TestOAuth2(TestController):
assert ac is not None
# Exchange the authorization code for an access token. It should fail if you do not provide the code verifier
- body = dict(client_id='client_12345', client_secret='98765', code=ac.authorization_code, grant_type='authorization_code', redirect_uri='https://localhost/')
+ body = dict(client_id='client_12345', client_secret='98765', code=ac.authorization_code,
+ grant_type='authorization_code', redirect_uri='https://localhost/')
with pytest.raises(webtest.app.AppError) as ex:
r = self.app.post_json('/rest/oauth2/token', body, extra_environ={'username': '*anonymous'})
@@ -2368,7 +2378,8 @@ class TestOAuth2(TestController):
def test_refresh_token(self, mock_client, mock_valid_token):
token = M.OAuth2AccessToken.query.get(client_id='client_12345')
- body = dict(client_id='client_12345', client_secret='98765', grant_type='refresh_token', refresh_token=token.refresh_token)
+ body = dict(client_id='client_12345', client_secret='98765', grant_type='refresh_token',
+ refresh_token=token.refresh_token)
r = self.app.post_json('/rest/oauth2/token', body, extra_environ={'username': '*anonymous'})
assert r.status_int == 200
assert r.json['access_token'] != token.access_token
@@ -2376,7 +2387,8 @@ class TestOAuth2(TestController):
@mock.patch.dict(config, {'auth.oauth2.enabled': True})
def test_invalid_refresh_token(self, mock_client, mock_valid_token):
- body = dict(client_id='client_12345', client_secret='98765', grant_type='refresh_token', refresh_token='invalid_token')
+ body = dict(client_id='client_12345', client_secret='98765', grant_type='refresh_token',
+ refresh_token='invalid_token')
with pytest.raises(webtest.app.AppError) as ex:
r = self.app.post_json('/rest/oauth2/token', body, extra_environ={'username': '*anonymous'})
@@ -2387,8 +2399,8 @@ class TestOAuth2(TestController):
c = M.OAuth2ClientApp.query.get(client_id='client_12345')
ac = M.OAuth2AuthorizationCode.query.get(client_id='client_12345')
- body = dict(client_id=c.client_id, client_secret=c.client_secret, grant_type='authorization_code', code=ac.authorization_code,
- redirect_uri=c.redirect_uris[0])
+ body = dict(client_id=c.client_id, client_secret=c.client_secret, grant_type='authorization_code',
+ code=ac.authorization_code, redirect_uri=c.redirect_uris[0])
with pytest.raises(webtest.app.AppError) as ex:
r = self.app.post_json('/rest/oauth2/token', body, extra_environ={'username': '*anonymous'})
@@ -2399,8 +2411,8 @@ class TestOAuth2(TestController):
c = M.OAuth2ClientApp.query.get(client_id='client_12345')
ac = M.OAuth2AuthorizationCode.query.get(client_id='client_12345')
- body = dict(client_id=c.client_id, client_secret=c.client_secret, grant_type='authorization_code', code=ac.authorization_code,
- redirect_uri='https://invalid.com')
+ body = dict(client_id=c.client_id, client_secret=c.client_secret, grant_type='authorization_code',
+ code=ac.authorization_code, redirect_uri='https://invalid.com')
with pytest.raises(webtest.app.AppError) as ex:
r = self.app.post_json('/rest/oauth2/token', body, extra_environ={'username': '*anonymous'})
@@ -2412,8 +2424,8 @@ class TestOAuth2(TestController):
ac = M.OAuth2AuthorizationCode.query.get(client_id='client_12345')
# First test passing an invalid client id
- body = dict(client_id='invalid_client_id', client_secret=c.client_secret, grant_type='authorization_code', code=ac.authorization_code,
- redirect_uri=c.redirect_uris[0])
+ body = dict(client_id='invalid_client_id', client_secret=c.client_secret, grant_type='authorization_code',
+ code=ac.authorization_code, redirect_uri=c.redirect_uris[0])
with pytest.raises(webtest.app.AppError) as ex:
r = self.app.post_json('/rest/oauth2/token', body, extra_environ={'username': '*anonymous'})
@@ -2421,8 +2433,8 @@ class TestOAuth2(TestController):
assert 'invalid_client' in str(ex.value)
# Now test passing an invalid client secret
- body = dict(client_id=c.client_id, client_secret='invalid_secret', grant_type='authorization_code', code=ac.authorization_code,
- redirect_uri=c.redirect_uris[0])
+ body = dict(client_id=c.client_id, client_secret='invalid_secret', grant_type='authorization_code',
+ code=ac.authorization_code, redirect_uri=c.redirect_uris[0])
with pytest.raises(webtest.app.AppError) as ex:
r = self.app.post_json('/rest/oauth2/token', body, extra_environ={'username': '*anonymous'})
diff --git a/Allura/allura/tests/functional/test_feeds.py b/Allura/allura/tests/functional/test_feeds.py
index d3d2eaa1f..9949b5976 100644
--- a/Allura/allura/tests/functional/test_feeds.py
+++ b/Allura/allura/tests/functional/test_feeds.py
@@ -71,7 +71,7 @@ class TestFeeds(TestController):
'title': 'Root',
'text': '',
'labels': '',
- })
+ })
self.app.get('/wiki/Root/feed.rss')
self.app.get('/wiki/Root/feed.atom')
diff --git a/Allura/allura/tests/functional/test_personal_dashboard.py b/Allura/allura/tests/functional/test_personal_dashboard.py
index b6a68eb3d..68d64392d 100644
--- a/Allura/allura/tests/functional/test_personal_dashboard.py
+++ b/Allura/allura/tests/functional/test_personal_dashboard.py
@@ -87,7 +87,7 @@ class TestMergeRequestsSection(TestController):
super().setup_method(method)
setup_unit_test()
self.setup_with_tools()
- mr= self.merge_request
+ mr = self.merge_request
ThreadLocalODMSession.flush_all()
# variation on @with_git but with different project to avoid clashes with other tests using git
diff --git a/Allura/allura/tests/functional/test_rest.py b/Allura/allura/tests/functional/test_rest.py
index a5ceaeaae..9459ff40c 100644
--- a/Allura/allura/tests/functional/test_rest.py
+++ b/Allura/allura/tests/functional/test_rest.py
@@ -465,7 +465,7 @@ class TestRestHome(TestRestApiBase):
r = self.api_get('/rest/p/test/wiki/Home')
params = dict(text=r.json['text'])
r = self.api_post('/rest/p/test/wiki/Home', params=params)
-
+
assert '401 Unauthorized' in str(ex.value)
diff --git a/Allura/allura/tests/functional/test_root.py b/Allura/allura/tests/functional/test_root.py
index d11568388..8c86769e7 100644
--- a/Allura/allura/tests/functional/test_root.py
+++ b/Allura/allura/tests/functional/test_root.py
@@ -191,7 +191,7 @@ class TestRootController(TestController):
@skipIf(module_not_available('newrelic'), 'requires newrelic')
def test_newrelic_set_transaction_name(self):
from allura.controllers.project import NeighborhoodController
- with mock.patch('newrelic.agent.callable_name') as callable_name,\
+ with mock.patch('newrelic.agent.callable_name') as callable_name, \
mock.patch('newrelic.agent.set_transaction_name') as set_transaction_name:
callable_name.return_value = 'foo'
self.app.get('/p/')
diff --git a/Allura/allura/tests/model/__init__.py b/Allura/allura/tests/model/__init__.py
index e2b83dcde..799fda96e 100644
--- a/Allura/allura/tests/model/__init__.py
+++ b/Allura/allura/tests/model/__init__.py
@@ -16,4 +16,3 @@
# under the License.
"""Model test suite for the models of the application."""
-
diff --git a/Allura/allura/tests/model/test_artifact.py b/Allura/allura/tests/model/test_artifact.py
index 33274bda6..9424f90f9 100644
--- a/Allura/allura/tests/model/test_artifact.py
+++ b/Allura/allura/tests/model/test_artifact.py
@@ -51,6 +51,8 @@ class Checkmessage(M.Message):
super().__init__(**kw)
if self.slug is not None and self.full_slug is None:
self.full_slug = datetime.utcnow().strftime('%Y%m%d%H%M%S%f') + ':' + self.slug
+
+
Mapper.compile_all()
diff --git a/Allura/allura/tests/model/test_auth.py b/Allura/allura/tests/model/test_auth.py
index 3a6ece759..7afb845d1 100644
--- a/Allura/allura/tests/model/test_auth.py
+++ b/Allura/allura/tests/model/test_auth.py
@@ -87,19 +87,19 @@ class TestAuth:
def test_email_address_canonical(self):
assert M.EmailAddress.canonical('nobody@EXAMPLE.COM') == \
- 'nobody@example.com'
+ 'nobody@example.com'
assert M.EmailAddress.canonical('nobody@example.com') == \
- 'nobody@example.com'
+ 'nobody@example.com'
assert M.EmailAddress.canonical('I Am Nobody <no...@example.com>') == \
- 'nobody@example.com'
+ 'nobody@example.com'
assert M.EmailAddress.canonical(' nobody@example.com\t') == \
- 'nobody@example.com'
+ 'nobody@example.com'
assert M.EmailAddress.canonical('I Am@Nobody <no...@example.com> ') == \
- 'nobody@example.com'
+ 'nobody@example.com'
assert M.EmailAddress.canonical(' No@body <no...@example.com> ') == \
- 'no@body@example.com'
+ 'no@body@example.com'
assert M.EmailAddress.canonical('no@body@example.com') == \
- 'no@body@example.com'
+ 'no@body@example.com'
assert M.EmailAddress.canonical('invalid') is None
def test_email_address_send_verification_link(self):
diff --git a/Allura/allura/tests/model/test_discussion.py b/Allura/allura/tests/model/test_discussion.py
index 5cb6b764c..15b2ed6e1 100644
--- a/Allura/allura/tests/model/test_discussion.py
+++ b/Allura/allura/tests/model/test_discussion.py
@@ -599,4 +599,4 @@ class TestDiscussion:
assert M.BaseAttachment.query.get(filename='discussion.txt')
assert M.BaseAttachment.query.get(filename='thread.txt')
- assert not M.BaseAttachment.query.get(filename='post.txt')
\ No newline at end of file
+ assert not M.BaseAttachment.query.get(filename='post.txt')
diff --git a/Allura/allura/tests/model/test_filesystem.py b/Allura/allura/tests/model/test_filesystem.py
index 60cd96aed..844a7b7b2 100644
--- a/Allura/allura/tests/model/test_filesystem.py
+++ b/Allura/allura/tests/model/test_filesystem.py
@@ -32,6 +32,8 @@ class File(M.File):
class __mongometa__:
session = M.session.main_orm_session
+
+
Mapper.compile_all()
diff --git a/Allura/allura/tests/model/test_repo.py b/Allura/allura/tests/model/test_repo.py
index 7434f4b1b..a553eb3b5 100644
--- a/Allura/allura/tests/model/test_repo.py
+++ b/Allura/allura/tests/model/test_repo.py
@@ -445,14 +445,13 @@ class TestModelCache:
tr_get.assert_called_once_with(_id='foo')
assert val == tree1
-
def test_set(self):
tree = mock.Mock(spec=['_id', 'test_set'], _id='foo', val='test_set')
self.cache.set(M.repository.Tree, {'val': 'test_set'}, tree)
assert self.cache._query_cache == \
- {M.repository.Tree: {(('val', 'test_set'),): 'foo'}}
+ {M.repository.Tree: {(('val', 'test_set'),): 'foo'}}
assert self.cache._instance_cache == \
- {M.repository.Tree: {'foo': tree}}
+ {M.repository.Tree: {'foo': tree}}
@mock.patch('bson.ObjectId')
def test_set_none_id(self, obj_id):
@@ -465,7 +464,7 @@ class TestModelCache:
(('val2', 'test_set2'),): 'OBJID',
}
assert self.cache._instance_cache == \
- {M.repository.Tree: {'OBJID': tree}}
+ {M.repository.Tree: {'OBJID': tree}}
tree._id = '_id'
assert self.cache.get(M.repository.Tree, {'val1': 'test_set1'}) == tree
assert self.cache.get(M.repository.Tree, {'val2': 'test_set2'}) == tree
@@ -503,7 +502,7 @@ class TestModelCache:
self.cache.set(M.repository.Tree, {'val': 'tree1'}, tree1)
self.cache.set(M.repository.Tree, {'val': 'tree2'}, tree2)
assert set(self.cache.instance_ids(M.repository.Tree)) == \
- {'id1', 'id2'}
+ {'id1', 'id2'}
assert self.cache.instance_ids(M.repository.LastCommit) == []
@mock.patch.object(M.repository.Tree.query, 'find')
@@ -650,9 +649,9 @@ class TestModelCache:
'tree2': tree2,
}
assert session.call_args_list == \
- [mock.call(tree1), mock.call(tree2)]
+ [mock.call(tree1), mock.call(tree2)]
assert session.return_value.flush.call_args_list == \
- [mock.call(tree1), mock.call(tree2)]
+ [mock.call(tree1), mock.call(tree2)]
assert not session.return_value.expunge.called
@mock.patch('allura.model.repository.session')
diff --git a/Allura/allura/tests/scripts/__init__.py b/Allura/allura/tests/scripts/__init__.py
index 77505f1c3..144e29886 100644
--- a/Allura/allura/tests/scripts/__init__.py
+++ b/Allura/allura/tests/scripts/__init__.py
@@ -14,4 +14,3 @@
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
-
diff --git a/Allura/allura/tests/scripts/test_create_sitemap_files.py b/Allura/allura/tests/scripts/test_create_sitemap_files.py
index 8097f169e..07c858d8c 100644
--- a/Allura/allura/tests/scripts/test_create_sitemap_files.py
+++ b/Allura/allura/tests/scripts/test_create_sitemap_files.py
@@ -44,7 +44,7 @@ class TestCreateSitemapFiles:
rmtree(tmpdir.path) # needs to be non-existent for the script
self.run_script(['-o', tmpdir.path])
- tmpdir.compare(['sitemap-0.xml', 'sitemap.xml'],recursive=False, files_only=True)
+ tmpdir.compare(['sitemap-0.xml', 'sitemap.xml'], recursive=False, files_only=True)
xml_index = ET.parse(os.path.join(tmpdir.path, 'sitemap.xml'))
ns = {'ns0': 'http://www.sitemaps.org/schemas/sitemap/0.9'}
diff --git a/Allura/allura/tests/templates/__init__.py b/Allura/allura/tests/templates/__init__.py
index 77505f1c3..144e29886 100644
--- a/Allura/allura/tests/templates/__init__.py
+++ b/Allura/allura/tests/templates/__init__.py
@@ -14,4 +14,3 @@
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
-
diff --git a/Allura/allura/tests/templates/jinja_master/__init__.py b/Allura/allura/tests/templates/jinja_master/__init__.py
index 77505f1c3..144e29886 100644
--- a/Allura/allura/tests/templates/jinja_master/__init__.py
+++ b/Allura/allura/tests/templates/jinja_master/__init__.py
@@ -14,4 +14,3 @@
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
-
diff --git a/Allura/allura/tests/test_globals.py b/Allura/allura/tests/test_globals.py
index c88623c5d..9f93a51f2 100644
--- a/Allura/allura/tests/test_globals.py
+++ b/Allura/allura/tests/test_globals.py
@@ -792,7 +792,7 @@ class TestCachedMarkdown:
html = self.md.cached_convert(self.post, 'text')
assert html == self.expected_html
assert html == self.post.text_cache.html
- assert hashlib.md5(self.post.text.encode('utf-8')).hexdigest() == self.post.text_cache.md5
+ assert hashlib.md5(self.post.text.encode('utf-8')).hexdigest() == self.post.text_cache.md5
assert self.post.text_cache.render_time > 0
@patch.dict('allura.lib.app_globals.config', markdown_cache_threshold='-0.01')
diff --git a/Allura/allura/tests/test_helpers.py b/Allura/allura/tests/test_helpers.py
index 817abde69..d9f223479 100644
--- a/Allura/allura/tests/test_helpers.py
+++ b/Allura/allura/tests/test_helpers.py
@@ -16,7 +16,7 @@
# under the License.
import io
-from unittest import skipIf
+from unittest import skipIf
from os import path
from datetime import datetime, timedelta
import time
@@ -47,6 +47,7 @@ from alluratest.controller import setup_basic_test
# httpbin.io does not allow /redirect-to to localhost
httpbin_domain = 'httpbin.dev'
+
def setup_module():
setup_basic_test()
@@ -628,7 +629,7 @@ class TestIterEntryPoints:
with pytest.raises(ImportError, match=r'Ambiguous \[allura\] entry points detected. '
'Multiple entry points with name "myapp".'):
- list(h.iter_entry_points('allura'))
+ list(h.iter_entry_points('allura'))
def test_get_user_status():
diff --git a/Allura/allura/tests/test_markdown.py b/Allura/allura/tests/test_markdown.py
index 3e56fe81e..5975d0d2d 100644
--- a/Allura/allura/tests/test_markdown.py
+++ b/Allura/allura/tests/test_markdown.py
@@ -131,4 +131,4 @@ Not *strong* or _underlined_."""
md = markdown.Markdown(
extensions=[mde.CommitMessageExtension(app), 'markdown.extensions.nl2br'],
output_format='html')
- assert md.convert(text) == expected_html
\ No newline at end of file
+ assert md.convert(text) == expected_html
diff --git a/Allura/allura/tests/test_plugin.py b/Allura/allura/tests/test_plugin.py
index 5bdaf5751..4118abb2e 100644
--- a/Allura/allura/tests/test_plugin.py
+++ b/Allura/allura/tests/test_plugin.py
@@ -638,9 +638,9 @@ class TestLocalAuthenticationProvider:
assert ep('test_pass', '0000') == ('sha2560000j7pRjKKZ5L8G0jScZKja9ECmYF2zBV82Mi+E3wkop30=', 'allura_sha256')
@pytest.mark.parametrize('algorithm,rounds,specific_salt,salt_len,expected_config', [
- ('sha512_crypt', None,None, None, '$6$rounds=656000$'),
- ('pbkdf2_sha256', None,None, None, '$pbkdf2-sha256$29000$'),
- ('pbkdf2_sha512', None,None, None, '$pbkdf2-sha512$25000$'),
+ ('sha512_crypt', None, None, None, '$6$rounds=656000$'),
+ ('pbkdf2_sha256', None, None, None, '$pbkdf2-sha256$29000$'),
+ ('pbkdf2_sha512', None, None, None, '$pbkdf2-sha512$25000$'),
# test with explicit # of rounds & salt_len
('pbkdf2_sha512', 26789, None, 50, '$pbkdf2-sha512$26789$'),
('bcrypt_sha256', None, 'O'*22, None, '$bcrypt-sha256$v=2,t=2b,r=12$'),
diff --git a/Allura/allura/tests/test_validators.py b/Allura/allura/tests/test_validators.py
index d4ca3031b..39d7a68e8 100644
--- a/Allura/allura/tests/test_validators.py
+++ b/Allura/allura/tests/test_validators.py
@@ -127,7 +127,7 @@ class TestAnonymousValidator:
c.user = M.User.anonymous()
with pytest.raises(fe.Invalid) as cm:
self.val.to_python(True)
- assert str(cm.value) == "Log in to Mark as Private"
+ assert str(cm.value) == "Log in to Mark as Private"
class TestMountPointValidator:
@@ -210,7 +210,7 @@ class TestTaskValidator:
def test_import_failure(self):
with pytest.raises(fe.Invalid) as cm:
self.val.to_python('allura.does.not.exist')
- assert str(cm.value) =='Could not import "allura.does.not.exist"'
+ assert str(cm.value) == 'Could not import "allura.does.not.exist"'
def test_attr_lookup_failure(self):
with pytest.raises(fe.Invalid) as cm:
@@ -329,7 +329,7 @@ class TestIconValidator:
def test_valid(self):
input = self._mock('foo.png')
- assert input == self.val.to_python(input)
+ assert input == self.val.to_python(input)
input = self._mock('foo.jpg')
assert input == self.val.to_python(input)
diff --git a/Allura/allura/tests/unit/controllers/test_discussion_moderation_controller.py b/Allura/allura/tests/unit/controllers/test_discussion_moderation_controller.py
index 388ba955e..2b9a01fff 100644
--- a/Allura/allura/tests/unit/controllers/test_discussion_moderation_controller.py
+++ b/Allura/allura/tests/unit/controllers/test_discussion_moderation_controller.py
@@ -51,7 +51,7 @@ class TestWhenModerating(WithDatabase):
post = self.get_post()
assert post.status == 'ok'
assert (post.thread.last_post_date.strftime("%Y-%m-%d %H:%M:%S") ==
- mod_date.strftime("%Y-%m-%d %H:%M:%S"))
+ mod_date.strftime("%Y-%m-%d %H:%M:%S"))
def test_that_it_can_mark_as_spam(self):
self.moderate_post(spam=True)
diff --git a/Allura/allura/tests/unit/test_app.py b/Allura/allura/tests/unit/test_app.py
index 71b4e95f0..1e41f7a39 100644
--- a/Allura/allura/tests/unit/test_app.py
+++ b/Allura/allura/tests/unit/test_app.py
@@ -124,4 +124,4 @@ def install_app():
# XXX: Remove project argument to install; it's redundant
app = Application(project, app_config)
app.install(project)
- return app
\ No newline at end of file
+ return app
diff --git a/Allura/allura/tests/unit/test_artifact.py b/Allura/allura/tests/unit/test_artifact.py
index bac61bfd7..b8a1477d3 100644
--- a/Allura/allura/tests/unit/test_artifact.py
+++ b/Allura/allura/tests/unit/test_artifact.py
@@ -25,4 +25,4 @@ class TestArtifact:
fields = {'name_t': '', 'shortname_s': ''}
query = 'name:1 AND shortname:2 AND shortname_name_field:3'
q = M.Artifact.translate_query(query, fields)
- assert q == 'name_t:1 AND shortname_s:2 AND shortname_name_field:3'
+ assert q == 'name_t:1 AND shortname_s:2 AND shortname_name_field:3'
diff --git a/Allura/allura/tests/unit/test_session.py b/Allura/allura/tests/unit/test_session.py
index e69e9737d..884f83f5e 100644
--- a/Allura/allura/tests/unit/test_session.py
+++ b/Allura/allura/tests/unit/test_session.py
@@ -167,7 +167,7 @@ class TestBatchIndexer:
find.return_value = [m(_id=i) for i in (7, 8, 9)]
self.ext.update_index(objs_deleted, arefs)
assert self.ext.to_delete == \
- {o.index_id() for o in objs_deleted}
+ {o.index_id() for o in objs_deleted}
assert self.ext.to_add == {4, 5, 6}
# test deleting something that was previously added
@@ -175,7 +175,7 @@ class TestBatchIndexer:
find.return_value = [m(_id=4)]
self.ext.update_index(objs_deleted, [])
assert self.ext.to_delete == \
- {o.index_id() for o in objs_deleted}
+ {o.index_id() for o in objs_deleted}
assert self.ext.to_add == {5, 6}
@mock.patch('allura.model.session.index_tasks')
diff --git a/Allura/allura/tests/unit/test_solr.py b/Allura/allura/tests/unit/test_solr.py
index 42c4643ce..83d6b167f 100644
--- a/Allura/allura/tests/unit/test_solr.py
+++ b/Allura/allura/tests/unit/test_solr.py
@@ -49,7 +49,7 @@ class TestSolr:
calls = [mock.call('server1', auth=None),
mock.call('server2', auth=None),
mock.call('server3', auth=None),
- ]
+ ]
pysolr.Solr.assert_has_calls(calls)
assert len(solr.push_pool) == 2
diff --git a/Allura/allura/websetup/bootstrap.py b/Allura/allura/websetup/bootstrap.py
index c0e47e6db..18989a0b3 100644
--- a/Allura/allura/websetup/bootstrap.py
+++ b/Allura/allura/websetup/bootstrap.py
@@ -304,9 +304,11 @@ def clear_all_database_tables():
continue
db.drop_collection(coll)
+
# this re-uses hashes for the same pwd, which gives a huge speedup during tests. Not good for real usage, since salting is the same.
user_pwd_hash_speedup_cache = {}
+
def fast_set_pwd(user: M.User, password: str):
if password in user_pwd_hash_speedup_cache:
user.password, user.password_algorithm = user_pwd_hash_speedup_cache[password]
@@ -315,6 +317,7 @@ def fast_set_pwd(user: M.User, password: str):
user.set_password(password)
user_pwd_hash_speedup_cache[password] = (user.password, user.password_algorithm)
+
def create_user(display_name, username=None, password='foo', make_project=False): # noqa: S107
if not username:
username = display_name.lower().replace(' ', '-')
@@ -328,7 +331,7 @@ def create_user(display_name, username=None, password='foo', make_project=False)
em = EmailAddress.get(**kw)
em.confirmed = True
em.set_nonce_hash()
- user.set_pref('email_address',email)
+ user.set_pref('email_address', email)
fast_set_pwd(user, password)
return user
diff --git a/Allura/ldap-setup.py b/Allura/ldap-setup.py
index e91343048..428f04078 100644
--- a/Allura/ldap-setup.py
+++ b/Allura/ldap-setup.py
@@ -110,6 +110,7 @@ def tempfile(template, values):
yield name
os.remove(name)
+
backend_ldif = string.Template('''
# Load dynamic backend modules
dn: cn=module,cn=config
diff --git a/Allura/ldap-userconfig.py b/Allura/ldap-userconfig.py
index dd1c270c0..18fa32384 100644
--- a/Allura/ldap-userconfig.py
+++ b/Allura/ldap-userconfig.py
@@ -55,5 +55,6 @@ def upload(uname, pubkey):
os.chown(keyfile, u.pw_uid, g.gr_gid)
os.chmod(keyfile, 0o600)
+
if __name__ == '__main__':
main()
diff --git a/Allura/setup.py b/Allura/setup.py
index 63613d66a..e32efdeb0 100644
--- a/Allura/setup.py
+++ b/Allura/setup.py
@@ -26,7 +26,7 @@ lists, wiki pages, blogs and more for any number of individual projects.
'''
setup(
name='Allura',
- version=__version__, # noqa: F821
+ version=__version__, # noqa: F821
description='Base distribution of the Allura development platform',
long_description=PROJECT_DESCRIPTION,
author='Allura Team',
diff --git a/AlluraTest/alluratest/smtp_debug.py b/AlluraTest/alluratest/smtp_debug.py
index 65be0a162..377754bed 100644
--- a/AlluraTest/alluratest/smtp_debug.py
+++ b/AlluraTest/alluratest/smtp_debug.py
@@ -22,4 +22,4 @@ class BetterDebuggingServer(DebuggingServer):
def process_message(self, peer, mailfrom, rcpttos, data, **kwargs):
print('TO: ' + ', '.join(rcpttos))
- super().process_message(peer, mailfrom, rcpttos, data)
\ No newline at end of file
+ super().process_message(peer, mailfrom, rcpttos, data)
diff --git a/AlluraTest/alluratest/test_syntax.py b/AlluraTest/alluratest/test_syntax.py
index 8124d7684..faebde60d 100644
--- a/AlluraTest/alluratest/test_syntax.py
+++ b/AlluraTest/alluratest/test_syntax.py
@@ -41,4 +41,3 @@ def test_run_precommit():
code, outputs = run(cmd, dir=os.environ.get('ALLURA_GIT_DIR'))
if code != 0:
raise Exception(f'pre-commit failed to run: {outputs[0].decode()} {outputs[1].decode()}')
-
diff --git a/ForgeActivity/forgeactivity/tests/functional/test_root.py b/ForgeActivity/forgeactivity/tests/functional/test_root.py
index 41d5256f6..8b8443e89 100644
--- a/ForgeActivity/forgeactivity/tests/functional/test_root.py
+++ b/ForgeActivity/forgeactivity/tests/functional/test_root.py
@@ -54,7 +54,7 @@ class TestActivityController(TestController):
def test_anon_read(self):
r = self.app.get('/u/test-user-1',
extra_environ={'username': '*anonymous'}).follow()
- assert r.html.select('div.profile-section.tools a[href="/u/test-user-1/activity/"]'),\
+ assert r.html.select('div.profile-section.tools a[href="/u/test-user-1/activity/"]'), \
'No Activity tool in top nav'
@td.with_tool('test', 'activity')
diff --git a/ForgeBlog/forgeblog/tests/test_commands.py b/ForgeBlog/forgeblog/tests/test_commands.py
index 4a1d797ec..174031c50 100644
--- a/ForgeBlog/forgeblog/tests/test_commands.py
+++ b/ForgeBlog/forgeblog/tests/test_commands.py
@@ -94,7 +94,7 @@ def test_pull_rss_feeds(urlopen):
<title>Test html summary</title>
<link href="http://example.com/"/>
<updated>2003-12-13T18:30:02Z</updated>
- <summary type="html">'''+ html_in_feed + b'''</summary>
+ <summary type="html">''' + html_in_feed + b'''</summary>
</entry>
</feed>''')
diff --git a/ForgeBlog/forgeblog/widgets.py b/ForgeBlog/forgeblog/widgets.py
index 3aa74a13d..c0445369c 100644
--- a/ForgeBlog/forgeblog/widgets.py
+++ b/ForgeBlog/forgeblog/widgets.py
@@ -39,7 +39,7 @@ class BlogPostForm(forms.ForgeForm):
return ew_core.NameList([
ew.TextField(name='title',
validator=v.UnicodeString(not_empty=True,
- messages={'empty': "You must provide a Title"}),
+ messages={'empty': "You must provide a Title"}),
attrs=dict(placeholder='Enter your title here',
title='Enter your title here',
style='width: 425px')),
diff --git a/ForgeChat/forgechat/model/chat.py b/ForgeChat/forgechat/model/chat.py
index 03d1c0905..ba72930b8 100644
--- a/ForgeChat/forgechat/model/chat.py
+++ b/ForgeChat/forgechat/model/chat.py
@@ -93,4 +93,5 @@ class ChatMessage(M.Artifact):
def timestamp_hour(self):
return self.timestamp.strftime('%H:%M:%S')
+
Mapper.compile_all()
diff --git a/ForgeDiscussion/forgediscussion/widgets/forum_widgets.py b/ForgeDiscussion/forgediscussion/widgets/forum_widgets.py
index 1909b6d89..ed461f913 100644
--- a/ForgeDiscussion/forgediscussion/widgets/forum_widgets.py
+++ b/ForgeDiscussion/forgediscussion/widgets/forum_widgets.py
@@ -95,7 +95,7 @@ class ModerateThread(CsrfForm):
submit_text = 'Save Changes'
class fields(ew_core.NameList):
- subject = ew.InputField(label='Change subject:', attrs={'style':'width: 50%'})
+ subject = ew.InputField(label='Change subject:', attrs={'style': 'width: 50%'})
discussion = _ForumSelector(label='Move to different forum:')
flags = ew.CheckboxSet(label='Options', options=['Sticky', 'Announcement'])
diff --git a/ForgeFeedback/forgefeedback/feedback_main.py b/ForgeFeedback/forgefeedback/feedback_main.py
index 07b937e27..21178ef5f 100644
--- a/ForgeFeedback/forgefeedback/feedback_main.py
+++ b/ForgeFeedback/forgefeedback/feedback_main.py
@@ -131,7 +131,7 @@ class RootController(BaseController, FeedController):
@expose('jinja:forgefeedback:templates/feedback/index.html')
def get_review_list(self, **kw):
self.review_list = Feedback.query.find({'project_id': c.project._id})\
- .sort('created_date', pymongo.DESCENDING).all()
+ .sort('created_date', pymongo.DESCENDING).all()
return self.review_list
""" The new feedback given by the logged in user which includes
@@ -163,8 +163,8 @@ class RootController(BaseController, FeedController):
@expose('jinja:forgefeedback:templates/feedback/edit_feedback.html')
def edit_feedback(self, **kw):
self.review = Feedback.query.find(
- {'reported_by_id': c.user._id, 'project_id': c.project._id}
- ).first()
+ {'reported_by_id': c.user._id, 'project_id': c.project._id}
+ ).first()
return dict(description=self.review.description,
rating=self.review.rating)
@@ -192,7 +192,7 @@ class RootController(BaseController, FeedController):
def delete_feedback(self, **kw):
user_review = Feedback.query.find(
{'reported_by_id': c.user._id, 'project_id': c.project._id}
- ).first()
+ ).first()
if user_review:
Feedback.query.remove(dict(
{'reported_by_id': c.user._id, 'project_id': c.project._id}))
@@ -216,6 +216,7 @@ class RootController(BaseController, FeedController):
""" This method count the number of stars finds their sum and
calculates the average of all the star rating count """
+
def getRating(self, **kw):
onestarcount = TM.Feedback.query.find(
{'rating': '1', 'project_id': c.project._id}).count()
diff --git a/ForgeFeedback/forgefeedback/tests/functional/test_root.py b/ForgeFeedback/forgefeedback/tests/functional/test_root.py
index b751eb7a3..902a5199f 100644
--- a/ForgeFeedback/forgefeedback/tests/functional/test_root.py
+++ b/ForgeFeedback/forgefeedback/tests/functional/test_root.py
@@ -20,7 +20,6 @@ from allura import model as M
from alluratest.controller import TestController
-
class TestFeedback(TestController):
def test_feedback(self):
diff --git a/ForgeFeedback/setup.py b/ForgeFeedback/setup.py
index 241608e89..196098a9a 100644
--- a/ForgeFeedback/setup.py
+++ b/ForgeFeedback/setup.py
@@ -47,7 +47,3 @@ setup(name='ForgeFeedback',
""",
)
-
-
-
-
diff --git a/ForgeFiles/forgefiles/files_main.py b/ForgeFiles/forgefiles/files_main.py
index 7c91a6896..9279014e1 100755
--- a/ForgeFiles/forgefiles/files_main.py
+++ b/ForgeFiles/forgefiles/files_main.py
@@ -88,7 +88,6 @@ class FilesApp(Application):
def get_parent_folders(linked_file_object=None):
-
'''Returns the list of the parent folders for the current file or folder'''
parent_folder = linked_file_object.parent_folder if linked_file_object else None
@@ -108,7 +107,6 @@ class FilesController(BaseController):
@expose('jinja:forgefiles:templates/files.html')
def index(self):
-
'''Index method for the Root controller'''
require_access(c.app, 'read')
@@ -136,7 +134,6 @@ class FilesController(BaseController):
subscribed=subscribed, parents=parents)
def get_parent_folder_url(self, parent_folder_id):
-
''' Returns the url,parent_folder and id of parent_folder object if object is there'''
if (parent_folder_id == 'None') or (not parent_folder_id):
@@ -152,7 +149,6 @@ class FilesController(BaseController):
@require_post()
@expose()
def create_folder(self, parent_folder_id=None, folder_name=None):
-
'''Controller method for creating a folder. The folder is stored in UploadFolder collection'''
require_access(c.app, 'create')
@@ -179,7 +175,6 @@ class FilesController(BaseController):
@require_post()
@expose()
def upload_file(self, parent_folder_id=None, file_upload=None, filename=None):
-
'''Controller method for creating a folder. The folder is stored in UploadFolder collection'''
require_access(c.app, 'create')
@@ -212,7 +207,6 @@ class FilesController(BaseController):
@require_post()
@expose()
def delete_file(self, file_id=None):
-
'''Controller method to delete a file'''
file_object = UploadFiles.query.get(_id=ObjectId(file_id), app_config_id=c.app.config._id)
@@ -233,7 +227,6 @@ class FilesController(BaseController):
return redirect(url)
def delete_file_from_db(self, file_id=None):
-
'''Method to delete a file from db'''
file_object = UploadFiles.query.get(_id=ObjectId(file_id), app_config_id=c.app.config._id)
@@ -241,7 +234,6 @@ class FilesController(BaseController):
file_object.delete()
def delete_folder_recursively(self, folder_id):
-
'''This method is called recursively to delete folder in a hierarchy'''
sub_file_objects = UploadFiles.query.find(dict({
@@ -258,7 +250,6 @@ class FilesController(BaseController):
@require_post()
@expose('jinja:forgefiles:templates/files.html')
def delete_folder(self, folder_id=None):
-
'''Controller method to delete a folder'''
folder_object = UploadFolder.query.get(_id=ObjectId(folder_id), app_config_id=c.app.config._id)
@@ -280,7 +271,6 @@ class FilesController(BaseController):
@require_post()
@expose()
def link_file(self, file_id=None, status=None):
-
'''Controller method to link a file to the download button'''
linkable_file_object = UploadFiles.query.get(_id=ObjectId(file_id), app_config_id=c.app.config._id)
@@ -297,7 +287,6 @@ class FilesController(BaseController):
@expose()
def download_file(self, filename=None):
-
'''Controller method to download a file'''
if filename:
@@ -324,7 +313,6 @@ class FilesController(BaseController):
@require_post()
@expose()
def edit_folder(self, folder_id=None, folder_name=None):
-
'''Controller method to edit the folder name'''
url = c.app.url
@@ -342,7 +330,6 @@ class FilesController(BaseController):
@require_post()
@expose()
def edit_file(self, file_id=None, file_name=None):
-
'''Controller method to edit the file name'''
url = c.app.url
@@ -362,7 +349,6 @@ class FilesController(BaseController):
@require_post()
@expose()
def publish_folder(self, folder_id=None, remarks=None):
-
'''Controller which publishes the folder. It send update about the publishing of the folder.'''
folder_object = UploadFolder.query.get(_id=ObjectId(folder_id), app_config_id=c.app.config._id)
@@ -409,7 +395,6 @@ class FilesController(BaseController):
@require_post()
@expose()
def disable_folder(self, folder_id=None, status=None):
-
'''Controller method to disable the folder.'''
folder_object = UploadFolder.query.get(_id=ObjectId(folder_id), app_config_id=c.app.config._id)
@@ -440,7 +425,6 @@ class FilesController(BaseController):
@require_post()
@expose()
def disable_file(self, file_id=None, status=None):
-
'''Controller method to disable the file.'''
file_object = UploadFiles.query.get(_id=ObjectId(file_id), app_config_id=c.app.config._id)
@@ -461,7 +445,6 @@ class FilesController(BaseController):
@expose('json:')
@require_post()
def subscribe(self, subscribe=None, unsubscribe=None):
-
'''Controller method that subscribes an user to the files plugin.'''
if subscribe:
diff --git a/ForgeFiles/forgefiles/model/files.py b/ForgeFiles/forgefiles/model/files.py
index 43d0af0af..ee421a4b9 100755
--- a/ForgeFiles/forgefiles/model/files.py
+++ b/ForgeFiles/forgefiles/model/files.py
@@ -146,7 +146,6 @@ class UploadFiles(File):
thumbnail_size = (255, 255)
ArtifactType = Upload
-
class __mongometa__:
name = 'upload_files'
session = project_orm_session
@@ -181,13 +180,11 @@ class UploadFiles(File):
@property
def artifact(self):
-
'''Returns the Artifact object'''
return self.ArtifactType.query.get(_id=self.artifact_id)
def url(self):
-
'''Returns the URL of the uploaded file'''
parent_folder = self.parent_folder
diff --git a/ForgeFiles/forgefiles/tests/__init__.py b/ForgeFiles/forgefiles/tests/__init__.py
index 77505f1c3..144e29886 100644
--- a/ForgeFiles/forgefiles/tests/__init__.py
+++ b/ForgeFiles/forgefiles/tests/__init__.py
@@ -14,4 +14,3 @@
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
-
diff --git a/ForgeFiles/forgefiles/tests/functional/__init__.py b/ForgeFiles/forgefiles/tests/functional/__init__.py
index 77505f1c3..144e29886 100644
--- a/ForgeFiles/forgefiles/tests/functional/__init__.py
+++ b/ForgeFiles/forgefiles/tests/functional/__init__.py
@@ -14,4 +14,3 @@
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
-
diff --git a/ForgeFiles/forgefiles/tests/functional/test_root.py b/ForgeFiles/forgefiles/tests/functional/test_root.py
index fb38b7924..445590270 100644
--- a/ForgeFiles/forgefiles/tests/functional/test_root.py
+++ b/ForgeFiles/forgefiles/tests/functional/test_root.py
@@ -132,7 +132,7 @@ def upload_file(self):
path = dir.write('myfile.txt', b'Testing Upload')
with open(path, 'rb') as f:
file_upload = [('file_upload', 'myfile.txt', f.read())]
- filename_dict = {'filename':'myfile.txt'}
+ filename_dict = {'filename': 'myfile.txt'}
self.app.post('/p/test/files/upload_file', filename_dict, upload_files=file_upload)
file_object = UploadFiles.query.get(filename='myfile.txt')
dir.cleanup()
diff --git a/ForgeFiles/forgefiles/tests/model/__init__.py b/ForgeFiles/forgefiles/tests/model/__init__.py
index 820aea361..1b0a08cb6 100644
--- a/ForgeFiles/forgefiles/tests/model/__init__.py
+++ b/ForgeFiles/forgefiles/tests/model/__init__.py
@@ -48,4 +48,3 @@ class FilesTestWithModel:
def teardown_method(self, method):
ThreadLocalODMSession.close_all()
-
diff --git a/ForgeGit/forgegit/tests/test_tasks.py b/ForgeGit/forgegit/tests/test_tasks.py
index 48ab369bd..96297b3bf 100644
--- a/ForgeGit/forgegit/tests/test_tasks.py
+++ b/ForgeGit/forgegit/tests/test_tasks.py
@@ -99,4 +99,3 @@ class TestCoreAlluraTasks(GitRealDataBaseTestCase):
# mostly just making sure nothing errored, but here's at least one thing we can assert:
assert repo.status == 'ready'
-
diff --git a/ForgeImporters/forgeimporters/forge/discussion.py b/ForgeImporters/forgeimporters/forge/discussion.py
index 61db6253d..50dd9d0b6 100644
--- a/ForgeImporters/forgeimporters/forge/discussion.py
+++ b/ForgeImporters/forgeimporters/forge/discussion.py
@@ -68,10 +68,10 @@ class ForgeDiscussionImportController(ToolImportController):
def create(self, discussions_json, mount_point, mount_label, **kw):
if self.importer.enforce_limit(c.project):
save_importer_upload(
- c.project,
- 'discussions.json',
- json.dumps(discussions_json)
- )
+ c.project,
+ 'discussions.json',
+ json.dumps(discussions_json)
+ )
self.importer.post(mount_point=mount_point, mount_label=mount_label)
flash('Discussion import has begun. Your new discussion will be available when the import is complete')
else:
@@ -113,15 +113,15 @@ class ForgeDiscussionImporter(AlluraImporter):
for forum_json in discussion_json['forums']:
new_forum = dict(
- app_config_id=app.config._id,
- shortname=forum_json['shortname'],
- description=forum_json['description'],
- name=forum_json['name'],
- create='on',
- parent='',
- members_only=False,
- anon_posts=False,
- monitoring_email=None,
+ app_config_id=app.config._id,
+ shortname=forum_json['shortname'],
+ description=forum_json['description'],
+ name=forum_json['name'],
+ create='on',
+ parent='',
+ members_only=False,
+ anon_posts=False,
+ monitoring_email=None,
)
forum = utils.create_forum(app, new_forum=new_forum)
@@ -194,19 +194,19 @@ class ForgeDiscussionImporter(AlluraImporter):
break
p = thread.add_post(
- subject=post_json['subject'],
- text=self.annotate_text(post_json['text'], user, username),
- timestamp=timestamp,
- ignore_security=True,
- parent_id=parent_id
+ subject=post_json['subject'],
+ text=self.annotate_text(post_json['text'], user, username),
+ timestamp=timestamp,
+ ignore_security=True,
+ parent_id=parent_id
)
if ("last_edited" in post_json) and (post_json["last_edited"] is not None):
p.last_edit_date = parse(post_json["last_edited"])
p.add_multiple_attachments(
- [File(a["url"]) for a in post_json["attachments"]]
- )
+ [File(a["url"]) for a in post_json["attachments"]]
+ )
if slug != '':
created_posts.append({slug: p})
diff --git a/ForgeImporters/forgeimporters/github/tests/test_utils.py b/ForgeImporters/forgeimporters/github/tests/test_utils.py
index f8c45cd02..c2ace0429 100644
--- a/ForgeImporters/forgeimporters/github/tests/test_utils.py
+++ b/ForgeImporters/forgeimporters/github/tests/test_utils.py
@@ -51,7 +51,7 @@ class TestGitHubMarkdownConverter:
text = 'user/p@16c999e8c71134401a78d4d46435517b2271d6ac'
result = self.conv.convert(text)
assert (result == '[user/p@16c999]'
- '(https://github.com/user/p/commit/16c999e8c71134401a78d4d46435517b2271d6ac)')
+ '(https://github.com/user/p/commit/16c999e8c71134401a78d4d46435517b2271d6ac)')
def test_convert_ticket(self):
text = 'Ticket #1'
diff --git a/ForgeImporters/forgeimporters/github/tests/test_wiki.py b/ForgeImporters/forgeimporters/github/tests/test_wiki.py
index 647b1b2d5..d3b53dbda 100644
--- a/ForgeImporters/forgeimporters/github/tests/test_wiki.py
+++ b/ForgeImporters/forgeimporters/github/tests/test_wiki.py
@@ -15,7 +15,7 @@
# specific language governing permissions and limitations
# under the License.
-from unittest import skipIf
+from unittest import skipIf
from mock import Mock, patch, call
from ming.odm import ThreadLocalODMSession
import git
diff --git a/ForgeImporters/forgeimporters/tests/forge/test_discussion.py b/ForgeImporters/forgeimporters/tests/forge/test_discussion.py
index 70464f5e5..bcbed57e6 100644
--- a/ForgeImporters/forgeimporters/tests/forge/test_discussion.py
+++ b/ForgeImporters/forgeimporters/tests/forge/test_discussion.py
@@ -113,19 +113,19 @@ class TestDiscussionImporter:
utils.create_forum.assert_called_once_with(app, new_forum=new_forum)
forum.get_discussion_thread(
- dict(headers=dict(Subject=_json["forums"][0]["threads"][0]["subject"])))
+ dict(headers=dict(Subject=_json["forums"][0]["threads"][0]["subject"])))
importer.add_posts.assert_called_once_with(
- thread1,
- _json["forums"][0]["threads"][0]["posts"],
- app
+ thread1,
+ _json["forums"][0]["threads"][0]["posts"],
+ app
)
m.AuditLog.log.assert_called_once_with(
- "import tool mount_point from exported Allura JSON",
- project=project,
- user=user,
- url='foo'
- )
+ "import tool mount_point from exported Allura JSON",
+ project=project,
+ user=user,
+ url='foo'
+ )
g.post_event.assert_called_once_with("project_updated")
@mock.patch.object(discussion, 'c')
@@ -160,10 +160,10 @@ class TestDiscussionImporter:
"slug": "0e0e",
"subject": "post with un\u00ef\u00e7\u00f8\u2202\u00e9"
}],
- "page": None,
- "subject": "post with un\u00ef\u00e7\u00f8\u2202\u00e9"
- }]
+ "page": None,
+ "subject": "post with un\u00ef\u00e7\u00f8\u2202\u00e9"
}]
+ }]
}
importer._load_json = mock.Mock(return_value=_json)
@@ -202,7 +202,7 @@ class TestDiscussionImporter:
utils.create_forum.assert_called_once_with(app, new_forum=new_forum)
forum.get_discussion_thread.assert_called_once_with(dict(
headers=dict(Subject=_json["forums"][0]["threads"][0]["subject"])
- ))
+ ))
importer.get_user.assert_called_once_with('admin1')
@@ -220,9 +220,9 @@ class TestDiscussionImporter:
parent_id=None
)
importer.annotate_text.assert_called_once_with(
- post["text"],
- admin,
- post["author"]
+ post["text"],
+ admin,
+ post["author"]
)
p.add_multiple_attachments.assert_called_once_with([])
@@ -332,29 +332,29 @@ class TestDiscussionImporter:
"subject": "Thread0",
"posts": []
},
- {
+ {
"page": None,
"subject": "Thread1",
"posts": []
- },
- {
+ },
+ {
"page": None,
"subject": "Thread2",
"posts": []
- },
- {
+ },
+ {
"page": None,
"subject": "Thread3",
"posts": []
- },
- {
+ },
+ {
"page": None,
"subject": "Thread4",
"posts": []
- }
- ]}
- ]
- }
+ }
+ ]}
+ ]
+ }
importer._load_json = mock.Mock(return_value=_json)
importer.add_posts = mock.Mock()
@@ -380,10 +380,10 @@ class TestDiscussionImporter:
importer.import_tool(project, user, 'mount_point', 'mount_label')
project.install_app.assert_called_once_with(
- 'discussion',
- 'mount_point',
- 'mount_label',
- import_id={'source': 'Allura'}
+ 'discussion',
+ 'mount_point',
+ 'mount_label',
+ import_id={'source': 'Allura'}
)
h.push_config.assert_called_once_with(c, app=app)
@@ -422,7 +422,7 @@ class TestDiscussionImporter:
"name": "General Discussion",
"import_id": import_id,
"threads": []
- }]
+ }]
}
importer._load_json = mock.Mock(return_value=_json)
@@ -492,8 +492,8 @@ class TestDiscussionImporter:
"posts": [],
"subject": "Thread",
"import_id": import_id
- }]
}]
+ }]
}
importer._load_json = mock.Mock(return_value=_json)
@@ -532,8 +532,8 @@ class TestDiscussionImporter:
"limit": None,
"posts": [],
"subject": "Thread",
- }]
}]
+ }]
}
importer._load_json = mock.Mock(return_value=_json)
@@ -635,7 +635,7 @@ class TestDiscussionImporter:
"description": "Description of forum",
"name": "General Discussion",
"threads": [{
- "posts": []
+ "posts": []
}]
}]
}
@@ -680,11 +680,11 @@ class TestDiscussionImporter:
importer.get_user.assert_called_once_with('admin1')
h.push_config.assert_called_once_with(c, user=user, app=app)
thread.add_post.assert_called_once_with(
- subject=_json[0]['subject'],
- text='foo',
- timestamp=parse(_json[0]['timestamp']),
- ignore_security=True,
- parent_id=None
+ subject=_json[0]['subject'],
+ text='foo',
+ timestamp=parse(_json[0]['timestamp']),
+ ignore_security=True,
+ parent_id=None
)
post.add_multiple_attachments.assert_called_once_with([])
@@ -937,54 +937,54 @@ class TestDiscussionImporter:
_json = [
{
- "attachments": [],
- "author": "admin1",
- "timestamp": "2020-01-29 22:39:31.483000",
- "text": "hi",
- "slug": "0d1d",
- "subject": "topic with lots of replies"
+ "attachments": [],
+ "author": "admin1",
+ "timestamp": "2020-01-29 22:39:31.483000",
+ "text": "hi",
+ "slug": "0d1d",
+ "subject": "topic with lots of replies"
},
{
- "attachments": [],
- "author": "admin1",
- "timestamp": "2020-01-29 22:39:43.525000",
- "text": "hello",
- "slug": "0d1d/d421",
- "subject": "topic with lots of replies"
+ "attachments": [],
+ "author": "admin1",
+ "timestamp": "2020-01-29 22:39:43.525000",
+ "text": "hello",
+ "slug": "0d1d/d421",
+ "subject": "topic with lots of replies"
},
{
- "attachments": [],
- "author": "admin1",
- "timestamp": "2020-01-29 22:39:50.086000",
- "text": "goodbye",
- "slug": "0d1d/d421/f37d",
- "subject": "topic with lots of replies"
+ "attachments": [],
+ "author": "admin1",
+ "timestamp": "2020-01-29 22:39:50.086000",
+ "text": "goodbye",
+ "slug": "0d1d/d421/f37d",
+ "subject": "topic with lots of replies"
},
{
- "attachments": [],
- "author": "admin1",
- "timestamp": "2020-01-29 22:42:13.740000",
- "text": "hi again",
- "slug": "012f",
- "subject": "topic with lots of replies"
+ "attachments": [],
+ "author": "admin1",
+ "timestamp": "2020-01-29 22:42:13.740000",
+ "text": "hi again",
+ "slug": "012f",
+ "subject": "topic with lots of replies"
},
{
- "attachments": [],
- "author": "user02",
- "timestamp": "2020-01-29 22:42:51.645000",
- "text": "hi there",
- "slug": "012f/211a",
- "subject": "topic with lots of replies"
+ "attachments": [],
+ "author": "user02",
+ "timestamp": "2020-01-29 22:42:51.645000",
+ "text": "hi there",
+ "slug": "012f/211a",
+ "subject": "topic with lots of replies"
},
{
- "attachments": [],
- "author": "user02",
- "timestamp": "2020-01-29 22:42:58.478000",
- "text": "hi here",
- "slug": "0d1d/00a0",
- "subject": "topic with lots of replies"
+ "attachments": [],
+ "author": "user02",
+ "timestamp": "2020-01-29 22:42:58.478000",
+ "text": "hi here",
+ "slug": "0d1d/00a0",
+ "subject": "topic with lots of replies"
}
- ]
+ ]
importer.add_posts(thread, _json, app)
diff --git a/ForgeImporters/forgeimporters/tests/forge/test_tracker.py b/ForgeImporters/forgeimporters/tests/forge/test_tracker.py
index 7cb5e1741..9f5bff000 100644
--- a/ForgeImporters/forgeimporters/tests/forge/test_tracker.py
+++ b/ForgeImporters/forgeimporters/tests/forge/test_tracker.py
@@ -299,7 +299,7 @@ class TestTrackerImporter:
importer.process_comments(ticket, comments)
assert importer.get_user.call_args_list == \
- [mock.call('a1'), mock.call('a2')]
+ [mock.call('a1'), mock.call('a2')]
assert importer.annotate.call_args_list == [
mock.call('t1', author, 'a1'),
mock.call('t2', author, 'a2'),
@@ -341,7 +341,7 @@ class TestForgeTrackerImportController(TestController):
super().setup_method(method)
from forgetracker.tracker_main import TrackerAdminController
TrackerAdminController._importer = \
- tracker.ForgeTrackerImportController(tracker.ForgeTrackerImporter())
+ tracker.ForgeTrackerImportController(tracker.ForgeTrackerImporter())
@with_tracker
def test_index(self):
diff --git a/ForgeImporters/forgeimporters/tests/github/functional/test_github.py b/ForgeImporters/forgeimporters/tests/github/functional/test_github.py
index d9ed29b8f..be2e77130 100644
--- a/ForgeImporters/forgeimporters/tests/github/functional/test_github.py
+++ b/ForgeImporters/forgeimporters/tests/github/functional/test_github.py
@@ -91,7 +91,6 @@ class TestGitHubOAuth(TestController):
json={'access_token': 'abc'},
timeout=10)
-
def test_project_import_login_required(self):
r = self.app.get('/p/import_project/github/', extra_environ=dict(username='*anonymous'))
assert r.location is None
diff --git a/ForgeImporters/forgeimporters/tests/github/test_tracker.py b/ForgeImporters/forgeimporters/tests/github/test_tracker.py
index 70164494c..28c3a4e74 100644
--- a/ForgeImporters/forgeimporters/tests/github/test_tracker.py
+++ b/ForgeImporters/forgeimporters/tests/github/test_tracker.py
@@ -97,7 +97,7 @@ class TestTrackerImporter:
importer.process_fields(extractor, ticket, issue)
assert ticket.summary == 'title'
assert ticket.description == \
- '*Originally created by:* [creator](https://github.com/creator)\n*Originally owned by:* [owner](https://github.com/owner)\n\nhello'
+ '*Originally created by:* [creator](https://github.com/creator)\n*Originally owned by:* [owner](https://github.com/owner)\n\nhello'
assert ticket.status == 'New'
assert ticket.created_date == 'created_at'
assert ticket.mod_date == 'updated_at'
diff --git a/ForgeImporters/forgeimporters/tests/test_base.py b/ForgeImporters/forgeimporters/tests/test_base.py
index 7467613c9..022c36c23 100644
--- a/ForgeImporters/forgeimporters/tests/test_base.py
+++ b/ForgeImporters/forgeimporters/tests/test_base.py
@@ -150,7 +150,7 @@ class TestProjectImporter:
pi = base.ProjectImporter(mock.Mock(name='neighborhood'))
pi.source = 'foo'
assert pi.tool_importers == \
- {'ep1': eps[0].lv, 'ep3': eps[2].lv}
+ {'ep1': eps[0].lv, 'ep3': eps[2].lv}
iep.assert_called_once_with('allura.importers')
@mock.patch.object(base.ToolImporter, 'by_name')
@@ -307,7 +307,7 @@ class TestToolsValidator:
with pytest.raises(Invalid) as cm:
self.tv.to_python(['value1', 'value2', 'value3'])
assert cm.value.msg == \
- 'Invalid tools selected: value1, value3'
+ 'Invalid tools selected: value1, value3'
assert by_name.call_args_list == [
mock.call('value1'),
mock.call('value2'),
diff --git a/ForgeImporters/forgeimporters/trac/tests/test_tickets.py b/ForgeImporters/forgeimporters/trac/tests/test_tickets.py
index 9cdadba1c..5da9166a1 100644
--- a/ForgeImporters/forgeimporters/trac/tests/test_tickets.py
+++ b/ForgeImporters/forgeimporters/trac/tests/test_tickets.py
@@ -18,7 +18,7 @@
import json
import os
-from unittest import skipIf
+from unittest import skipIf
import pytest
from mock import Mock, patch
@@ -142,9 +142,9 @@ class TestTracTicketImportController(TestController):
assert \
'mylabel' == import_tool.post.call_args[1]['mount_label']
assert '{"orig_user": "new_user"}' == \
- import_tool.post.call_args[1]['user_map']
+ import_tool.post.call_args[1]['user_map']
assert 'http://example.com/trac/url/' == \
- import_tool.post.call_args[1]['trac_url']
+ import_tool.post.call_args[1]['trac_url']
@with_tracker
@patch('forgeimporters.trac.requests.head')
@@ -192,6 +192,7 @@ class TestTracTicketImportController(TestController):
r = self.app.post('/p/test/admin/ext/import/trac-tickets/create', params, status=200)
assert 'Invalid URL' in r.text
+
class TestTracImportSupport:
def test_link_processing(self):
@@ -288,7 +289,7 @@ class TestTracImportSupportFunctional(TestRestApiBase):
ticket = TM.Ticket.query.get(app_config_id=c.app.config._id,
ticket_num=390)
assert 'To reproduce: \n\\- open an mzML file' in \
- ticket.description
+ ticket.description
assert 'duplicate of: \n\\- [#316](316 "defect: SpectraViewWidget is' in \
- ticket.discussion_thread.find_posts()[0].text
+ ticket.discussion_thread.find_posts()[0].text
assert 'will crash TOPPView.' in ticket.description
diff --git a/ForgeSVN/forgesvn/tests/functional/test_auth.py b/ForgeSVN/forgesvn/tests/functional/test_auth.py
index 7a64dc229..b235d7688 100644
--- a/ForgeSVN/forgesvn/tests/functional/test_auth.py
+++ b/ForgeSVN/forgesvn/tests/functional/test_auth.py
@@ -39,7 +39,7 @@ class TestSVNAuth(TestController):
r = self.app.get('/auth/refresh_repo/p/test/src/')
assert (r.text ==
- '<Repository /tmp/svn/p/test/src> refresh queued.\n')
+ '<Repository /tmp/svn/p/test/src> refresh queued.\n')
class TestSVNUserPermissions(TestController):
diff --git a/ForgeSVN/forgesvn/tests/model/test_repository.py b/ForgeSVN/forgesvn/tests/model/test_repository.py
index f1e95c18e..631deea82 100644
--- a/ForgeSVN/forgesvn/tests/model/test_repository.py
+++ b/ForgeSVN/forgesvn/tests/model/test_repository.py
@@ -217,7 +217,7 @@ class TestSVNRepo(RepoImplTestBase):
os.path.join(g.tmpdir, 'testsvn/hooks/post-commit'), os.X_OK)
with open(os.path.join(g.tmpdir, 'testsvn/hooks/post-commit')) as f:
c = f.read()
- assert 'curl -s http://localhost/auth/refresh_repo/p/test/src/\n' in c
+ assert 'curl -s http://localhost/auth/refresh_repo/p/test/src/\n' in c
assert 'exec $DIR/post-commit-user "$@"\n' in c
repo.refresh(notify=False)
diff --git a/ForgeTracker/forgetracker/import_support.py b/ForgeTracker/forgetracker/import_support.py
index abfe426bd..8c3ae4252 100644
--- a/ForgeTracker/forgetracker/import_support.py
+++ b/ForgeTracker/forgetracker/import_support.py
@@ -220,7 +220,7 @@ class ImportSupport:
owner = '*Originally owned by:* {}\n'.format(
h.really_unicode(ticket_dict['assigned_to']))
remapped['description'] = '{}{}{}{}'.format(creator, owner,
- '\n' if creator or owner else '', description)
+ '\n' if creator or owner else '', description)
ticket_num = ticket_dict['id']
existing_ticket = TM.Ticket.query.get(app_config_id=c.app.config._id,
diff --git a/ForgeTracker/forgetracker/search.py b/ForgeTracker/forgetracker/search.py
index d215cc631..4c6ed7838 100644
--- a/ForgeTracker/forgetracker/search.py
+++ b/ForgeTracker/forgetracker/search.py
@@ -41,7 +41,7 @@ def query_filter_choices(arg=None, fq=[]):
'project_id_s:%s' % c.project._id,
'mount_point_s:%s' % c.app.config.options.mount_point,
'type_s:Ticket',
- ] + fq,
+ ] + fq,
'rows': 0,
}
params.update(FACET_PARAMS)
diff --git a/ForgeTracker/forgetracker/tests/unit/test_ticket_model.py b/ForgeTracker/forgetracker/tests/unit/test_ticket_model.py
index f580797fb..2f886a01f 100644
--- a/ForgeTracker/forgetracker/tests/unit/test_ticket_model.py
+++ b/ForgeTracker/forgetracker/tests/unit/test_ticket_model.py
@@ -230,7 +230,7 @@ class TestTicketModel(TrackerTestWithModel):
assert f.pubdate == datetime(2012, 10, 29, 9, 57, 21, 465000)
assert f.title == 'test ticket'
assert (f.description ==
- '<div class="markdown_content"><p>test description</p></div>')
+ '<div class="markdown_content"><p>test description</p></div>')
@td.with_tool('test', 'Tickets', 'bugs', username='test-user')
@td.with_tool('test', 'Tickets', 'bugs2', username='test-user')
diff --git a/ForgeTracker/forgetracker/widgets/ticket_search.py b/ForgeTracker/forgetracker/widgets/ticket_search.py
index effa98f3b..e14ebf7da 100644
--- a/ForgeTracker/forgetracker/widgets/ticket_search.py
+++ b/ForgeTracker/forgetracker/widgets/ticket_search.py
@@ -22,7 +22,6 @@ from allura.lib.widgets import form_fields as ffw
from allura.lib.widgets import forms
-
class TicketSearchResults(ew_core.SimpleForm):
template = 'jinja:forgetracker:templates/tracker_widgets/ticket_search_results.html'
defaults = dict(
diff --git a/ForgeUserStats/forgeuserstats/tests/test_model.py b/ForgeUserStats/forgeuserstats/tests/test_model.py
index 9842cc642..fe2aa759e 100644
--- a/ForgeUserStats/forgeuserstats/tests/test_model.py
+++ b/ForgeUserStats/forgeuserstats/tests/test_model.py
@@ -472,10 +472,10 @@ class TestUserStats:
)
stats.addCommit(newcommit, commit_datetime, project)
assert stats.general[0].commits[0] == \
- {'lines': 3, 'number': 1, 'language': None}
+ {'lines': 3, 'number': 1, 'language': None}
unified_diff.reset_mock()
with h.push_config(config, **{'userstats.count_lines_of_code': 'false'}):
stats.addCommit(newcommit, commit_datetime, project)
assert stats.general[0].commits[0] == \
- {'lines': 3, 'number': 2, 'language': None}
+ {'lines': 3, 'number': 2, 'language': None}
assert not unified_diff.called
diff --git a/ForgeWiki/forgewiki/model/wiki.py b/ForgeWiki/forgewiki/model/wiki.py
index 5b6d0e682..712857eaf 100644
--- a/ForgeWiki/forgewiki/model/wiki.py
+++ b/ForgeWiki/forgewiki/model/wiki.py
@@ -297,4 +297,5 @@ class WikiAttachment(BaseAttachment):
attachment_type = FieldProperty(str, if_missing='WikiAttachment')
+
Mapper.compile_all()
diff --git a/ForgeWiki/forgewiki/tests/test_models.py b/ForgeWiki/forgewiki/tests/test_models.py
index 9a70504f2..58fa3cb28 100644
--- a/ForgeWiki/forgewiki/tests/test_models.py
+++ b/ForgeWiki/forgewiki/tests/test_models.py
@@ -42,6 +42,7 @@ class TestPageSnapshots(TestController):
page.commit()
lock = Lock()
+
def run(n):
setup_global_objects()
for i in range(10):
diff --git a/conftest.py b/conftest.py
index 020af6a93..b4fc8ce7a 100644
--- a/conftest.py
+++ b/conftest.py
@@ -17,6 +17,8 @@
import pytest
# should get rid of this once this issue is fixed https://github.com/TurboGears/tg2/issues/136
+
+
@pytest.fixture(autouse=True, scope='session')
def tg_context_patch():
from tg import (
@@ -37,4 +39,3 @@ def tg_context_patch():
translator.__dict__['_is_coroutine'] = False
url.__dict__['_is_coroutine'] = False
config.__dict__['_is_coroutine'] = False
-
\ No newline at end of file
diff --git a/scripts/changelog.py b/scripts/changelog.py
index 6d4c2a7e9..d5e01456f 100755
--- a/scripts/changelog.py
+++ b/scripts/changelog.py
@@ -74,5 +74,6 @@ def print_changelog(version, summaries, changes_without_tickets):
for change in changes_without_tickets:
print(f" * {six.ensure_text(change)}")
+
if __name__ == '__main__':
main()
diff --git a/scripts/migrations/013-update-ordinals.py b/scripts/migrations/013-update-ordinals.py
index 666696327..8bdeff1eb 100644
--- a/scripts/migrations/013-update-ordinals.py
+++ b/scripts/migrations/013-update-ordinals.py
@@ -69,5 +69,6 @@ def main():
ThreadLocalODMSession.flush_all()
ThreadLocalODMSession.close_all()
+
if __name__ == '__main__':
main()
diff --git a/scripts/migrations/015-add-neighborhood_id-to-blog-posts.py b/scripts/migrations/015-add-neighborhood_id-to-blog-posts.py
index 88d324e74..83c3dea01 100644
--- a/scripts/migrations/015-add-neighborhood_id-to-blog-posts.py
+++ b/scripts/migrations/015-add-neighborhood_id-to-blog-posts.py
@@ -34,5 +34,6 @@ def main():
ThreadLocalODMSession.flush_all()
ThreadLocalODMSession.close_all()
+
if __name__ == '__main__':
main()
diff --git a/scripts/migrations/020-remove-wiki-title-slashes.py b/scripts/migrations/020-remove-wiki-title-slashes.py
index 08b1bb6f9..99d192aed 100644
--- a/scripts/migrations/020-remove-wiki-title-slashes.py
+++ b/scripts/migrations/020-remove-wiki-title-slashes.py
@@ -35,5 +35,6 @@ def main():
print('Updated: %s' % page.title)
ThreadLocalODMSession.flush_all()
+
if __name__ == '__main__':
main()
diff --git a/scripts/migrations/022-change-anon-display-name.py b/scripts/migrations/022-change-anon-display-name.py
index 2d43cacbf..6c007cc5d 100644
--- a/scripts/migrations/022-change-anon-display-name.py
+++ b/scripts/migrations/022-change-anon-display-name.py
@@ -26,5 +26,6 @@ def main():
ThreadLocalODMSession.flush_all()
ThreadLocalODMSession.close_all()
+
if __name__ == '__main__':
main()
diff --git a/scripts/migrations/024-migrate-custom-profile-text.py b/scripts/migrations/024-migrate-custom-profile-text.py
index de480c89d..b859756ed 100644
--- a/scripts/migrations/024-migrate-custom-profile-text.py
+++ b/scripts/migrations/024-migrate-custom-profile-text.py
@@ -80,5 +80,6 @@ def main():
ThreadLocalODMSession.flush_all()
+
if __name__ == '__main__':
main()
diff --git a/scripts/migrations/025-add-is-nbhd-project.py b/scripts/migrations/025-add-is-nbhd-project.py
index ca3fc77bb..0f29c284b 100644
--- a/scripts/migrations/025-add-is-nbhd-project.py
+++ b/scripts/migrations/025-add-is-nbhd-project.py
@@ -28,5 +28,6 @@ def main():
M.Project.query.update({'shortname': {'$ne': '--init--'}},
{'$set': {'is_nbhd_project': False}}, multi=True)
+
if __name__ == '__main__':
main()
diff --git a/scripts/migrations/026-install-activity-tool.py b/scripts/migrations/026-install-activity-tool.py
index 94eb6b31c..38024c50d 100644
--- a/scripts/migrations/026-install-activity-tool.py
+++ b/scripts/migrations/026-install-activity-tool.py
@@ -33,5 +33,6 @@ def main():
ThreadLocalODMSession.flush_all()
ThreadLocalODMSession.close_all()
+
if __name__ == '__main__':
main()
diff --git a/scripts/migrations/027-change-ticket-write-permissions.py b/scripts/migrations/027-change-ticket-write-permissions.py
index 6878f7add..3d8483f21 100644
--- a/scripts/migrations/027-change-ticket-write-permissions.py
+++ b/scripts/migrations/027-change-ticket-write-permissions.py
@@ -49,5 +49,6 @@ def main():
ThreadLocalODMSession.flush_all()
+
if __name__ == '__main__':
main()
diff --git a/scripts/migrations/028-remove-svn-trees.py b/scripts/migrations/028-remove-svn-trees.py
index 1cc12b1ac..13d368a26 100644
--- a/scripts/migrations/028-remove-svn-trees.py
+++ b/scripts/migrations/028-remove-svn-trees.py
@@ -51,5 +51,6 @@ def main():
ThreadLocalODMSession.flush_all()
ThreadLocalODMSession.close_all()
+
if __name__ == '__main__':
main()
diff --git a/scripts/migrations/029-set-mailbox-queue_empty.py b/scripts/migrations/029-set-mailbox-queue_empty.py
index c2075b71c..3a50b3c04 100644
--- a/scripts/migrations/029-set-mailbox-queue_empty.py
+++ b/scripts/migrations/029-set-mailbox-queue_empty.py
@@ -31,5 +31,6 @@ def main():
{'$set': {'queue_empty': False}},
multi=True)
+
if __name__ == '__main__':
main()
diff --git a/scripts/migrations/031-set-user-pending-to-false.py b/scripts/migrations/031-set-user-pending-to-false.py
index edb755a2c..e1482b63c 100644
--- a/scripts/migrations/031-set-user-pending-to-false.py
+++ b/scripts/migrations/031-set-user-pending-to-false.py
@@ -35,5 +35,6 @@ def main():
state(user).status = state(user).dirty
ThreadLocalODMSession.flush_all()
+
if __name__ == '__main__':
main()
diff --git a/scripts/migrations/034-update_subscriptions_ticket_and_mr_titles.py b/scripts/migrations/034-update_subscriptions_ticket_and_mr_titles.py
index 7e3dc1c3e..dc2ee9971 100644
--- a/scripts/migrations/034-update_subscriptions_ticket_and_mr_titles.py
+++ b/scripts/migrations/034-update_subscriptions_ticket_and_mr_titles.py
@@ -47,7 +47,7 @@ def main():
continue
new_title = 'Ticket #%d: %s' % (ticket.ticket_num, ticket.summary)
log.info('"%s" --> "%s"', sub.artifact_title, new_title)
- if(task != 'diff'):
+ if (task != 'diff'):
sub.artifact_title = new_title
session(sub).flush(sub)
diff --git a/scripts/perf/load-up-forum.py b/scripts/perf/load-up-forum.py
index 91338dec1..1b63a632d 100644
--- a/scripts/perf/load-up-forum.py
+++ b/scripts/perf/load-up-forum.py
@@ -61,7 +61,7 @@ def main():
p = thd.post(subject, 'a new topic 2')
for j in range(randint(1, 5)):
- new_post = {'text':'comment text'}
+ new_post = {'text': 'comment text'}
# post = thd.add_post(**new_post)
post = thd.add_post(text='comment text for real', subject="test subject")
diff --git a/scripts/perf/sstress.py b/scripts/perf/sstress.py
index a24f3d009..9cd0dc934 100644
--- a/scripts/perf/sstress.py
+++ b/scripts/perf/sstress.py
@@ -52,5 +52,6 @@ def stress():
for x in range(N / C):
server.sendmail('sstress@localhost', TOADDR, EMAIL_TEXT)
+
if __name__ == '__main__':
main()
diff --git a/scripts/perf/test_git_lcd.py b/scripts/perf/test_git_lcd.py
index 4dadee6c1..d27576343 100644
--- a/scripts/perf/test_git_lcd.py
+++ b/scripts/perf/test_git_lcd.py
@@ -48,5 +48,6 @@ def main(repo_dir, sub_dir='', commit=None):
pprint(result)
print("Took %f seconds" % timer['result'])
+
if __name__ == '__main__':
main(*sys.argv[1:])