[#8539] code simplifications
diff --git a/Allura/allura/command/taskd_cleanup.py b/Allura/allura/command/taskd_cleanup.py
index 0f4ec91..232773f 100644
--- a/Allura/allura/command/taskd_cleanup.py
+++ b/Allura/allura/command/taskd_cleanup.py
@@ -154,7 +154,7 @@
def _check_taskd_status(self, pid):
for i in range(self.options.num_retry):
- retry = False if i == 0 else True
+ retry = i != 0
status = self._taskd_status(pid, retry)
if ('taskd pid %s' % pid) in status:
return 'OK'
@@ -164,7 +164,7 @@
def _check_task(self, taskd_pid, task):
for i in range(self.options.num_retry):
- retry = False if i == 0 else True
+ retry = i != 0
status = self._taskd_status(taskd_pid, retry)
line = 'taskd pid {} is currently handling task {}'.format(
taskd_pid, task)
diff --git a/Allura/allura/controllers/project.py b/Allura/allura/controllers/project.py
index f4d8c98..f04fa5b 100644
--- a/Allura/allura/controllers/project.py
+++ b/Allura/allura/controllers/project.py
@@ -564,7 +564,7 @@
set_nav(self.neighborhood)
c.overview_form = W.neighborhood_overview_form
allow_undelete = asbool(config.get('allow_project_undelete', True))
- allow_wiki_as_root = True if get_default_wiki_page() else False
+ allow_wiki_as_root = bool(get_default_wiki_page())
return dict(
neighborhood=self.neighborhood,
diff --git a/Allura/allura/controllers/rest.py b/Allura/allura/controllers/rest.py
index f077b3d..2553482 100644
--- a/Allura/allura/controllers/rest.py
+++ b/Allura/allura/controllers/rest.py
@@ -189,7 +189,7 @@
if request.environ.get('paste.testing'):
# test suite is running
return False
- elif asbool(config.get('debug')) and config['base_url'].startswith('http://'):
+ elif asbool(config.get('debug')) and config['base_url'].startswith('http://'): # noqa: SIM103
# development w/o https
return False
else:
diff --git a/Allura/allura/controllers/site_admin.py b/Allura/allura/controllers/site_admin.py
index 0700902..252aea3 100644
--- a/Allura/allura/controllers/site_admin.py
+++ b/Allura/allura/controllers/site_admin.py
@@ -184,7 +184,7 @@
try:
end_dt = datetime.strptime(end_dt, '%Y/%m/%d %H:%M:%S')
except ValueError:
- end_dt = start_dt - timedelta(days=3) if not end_dt else end_dt
+ end_dt = end_dt if end_dt else start_dt - timedelta(days=3)
start = bson.ObjectId.from_datetime(start_dt)
end = bson.ObjectId.from_datetime(end_dt)
nb = M.Neighborhood.query.get(name='Users')
diff --git a/Allura/allura/lib/utils.py b/Allura/allura/lib/utils.py
index 0cf6b8c..de33f55 100644
--- a/Allura/allura/lib/utils.py
+++ b/Allura/allura/lib/utils.py
@@ -337,7 +337,7 @@
if params is None:
params = request.params
new_params = dict(params)
- if not request.method == 'GET':
+ if request.method != 'GET':
obj = None
try:
new_params.pop('timestamp', None)
diff --git a/Allura/allura/tests/decorators.py b/Allura/allura/tests/decorators.py
index 6b1ea52..7311f58 100644
--- a/Allura/allura/tests/decorators.py
+++ b/Allura/allura/tests/decorators.py
@@ -109,12 +109,8 @@
def __exit__(self, exc_type, exc_val, exc_t):
if exc_type:
self.exc = exc_val
- if issubclass(exc_type, self.ExcType):
- # ok
- return True
- else:
- # root exception will be raised, untouched
- return False
+ # otherwise root exception will be raised, untouched
+ return issubclass(exc_type, self.ExcType)
else:
raise AssertionError('Did not raise %s' % self.ExcType)
diff --git a/Allura/allura/tests/functional/test_neighborhood.py b/Allura/allura/tests/functional/test_neighborhood.py
index ec16331..e7e6759 100644
--- a/Allura/allura/tests/functional/test_neighborhood.py
+++ b/Allura/allura/tests/functional/test_neighborhood.py
@@ -342,7 +342,7 @@
neighborhood = M.Neighborhood.query.get(name='Adobe')
neighborhood.features['css'] = 'picker'
r = self.app.get('/adobe/')
- while isinstance(r.response, HTTPFound) or isinstance(r.response, HTTPMovedPermanently):
+ while isinstance(r.response, (HTTPFound, HTTPMovedPermanently)):
r = r.follow()
assert test_css in r
r = self.app.get('/adobe/_admin/overview',
@@ -352,7 +352,7 @@
neighborhood = M.Neighborhood.query.get(name='Adobe')
neighborhood.features['css'] = 'custom'
r = self.app.get('/adobe/')
- while isinstance(r.response, HTTPFound) or isinstance(r.response, HTTPMovedPermanently):
+ while isinstance(r.response, (HTTPFound, HTTPMovedPermanently)):
r = r.follow()
assert test_css in r
r = self.app.get('/adobe/_admin/overview',
diff --git a/Allura/allura/tests/functional/test_personal_dashboard.py b/Allura/allura/tests/functional/test_personal_dashboard.py
index 9a64ba7..b6a68eb 100644
--- a/Allura/allura/tests/functional/test_personal_dashboard.py
+++ b/Allura/allura/tests/functional/test_personal_dashboard.py
@@ -50,21 +50,20 @@
return m
eps = list(map(ep, ['a', 'b', 'c', 'd']))
order = {'personal_dashboard_sections.order': 'b, d,c , f '}
- with mock.patch('allura.lib.helpers.iter_entry_points') as iep:
- with mock.patch.dict(tg.config, order):
- iep.return_value = eps
- sections = SectionsUtil.load_sections('personal_dashboard')
- assert sections == [
- eps[1].load(),
- eps[3].load(),
- eps[2].load(),
- eps[0].load()]
- r = self.app.get('/dashboard')
- assert 'Section a' in r.text
- assert 'Section b' in r.text
- assert 'Section c' in r.text
- assert 'Section d' in r.text
- assert 'Section f' not in r.text
+ with mock.patch('allura.lib.helpers.iter_entry_points') as iep, mock.patch.dict(tg.config, order):
+ iep.return_value = eps
+ sections = SectionsUtil.load_sections('personal_dashboard')
+ assert sections == [
+ eps[1].load(),
+ eps[3].load(),
+ eps[2].load(),
+ eps[0].load()]
+ r = self.app.get('/dashboard')
+ assert 'Section a' in r.text
+ assert 'Section b' in r.text
+ assert 'Section c' in r.text
+ assert 'Section d' in r.text
+ assert 'Section f' not in r.text
class TestTicketsSection(TrackerTestController):
diff --git a/Allura/allura/tests/functional/test_user_profile.py b/Allura/allura/tests/functional/test_user_profile.py
index e6de739..230bafb 100644
--- a/Allura/allura/tests/functional/test_user_profile.py
+++ b/Allura/allura/tests/functional/test_user_profile.py
@@ -48,15 +48,14 @@
order = {'user_profile_sections.order': 'b, d,c , f '}
if hasattr(type(app), '_sections'):
delattr(type(app), '_sections')
- with mock.patch('allura.lib.helpers.iter_entry_points') as iep:
- with mock.patch.dict(tg.config, order):
- iep.return_value = eps
- sections = app.profile_sections
- assert sections == [
- eps[1].load(),
- eps[3].load(),
- eps[2].load(),
- eps[0].load()]
+ with mock.patch('allura.lib.helpers.iter_entry_points') as iep, mock.patch.dict(tg.config, order):
+ iep.return_value = eps
+ sections = app.profile_sections
+ assert sections == [
+ eps[1].load(),
+ eps[3].load(),
+ eps[2].load(),
+ eps[0].load()]
r = self.app.get('/u/test-user/profile')
assert 'Section a' in r.text
assert 'Section b' in r.text
diff --git a/Allura/allura/tests/model/test_project.py b/Allura/allura/tests/model/test_project.py
index b5850b8..fc7b2bb 100644
--- a/Allura/allura/tests/model/test_project.py
+++ b/Allura/allura/tests/model/test_project.py
@@ -120,12 +120,11 @@
def test_subproject(self):
project = M.Project.query.get(shortname='test')
- with td.raises(ToolError):
- with patch('allura.lib.plugin.ProjectRegistrationProvider') as Provider:
- Provider.get().shortname_validator.to_python.side_effect = Invalid(
- 'name', 'value', {})
- # name doesn't validate
- sp = project.new_subproject('test-proj-nose')
+ with td.raises(ToolError), patch('allura.lib.plugin.ProjectRegistrationProvider') as Provider:
+ Provider.get().shortname_validator.to_python.side_effect = Invalid(
+ 'name', 'value', {})
+ # name doesn't validate
+ sp = project.new_subproject('test-proj-nose')
sp = project.new_subproject('test-proj-nose')
spp = sp.new_subproject('spp')
ThreadLocalODMSession.flush_all()
diff --git a/Allura/allura/tests/test_commands.py b/Allura/allura/tests/test_commands.py
index 7ad19a1..ed30467 100644
--- a/Allura/allura/tests/test_commands.py
+++ b/Allura/allura/tests/test_commands.py
@@ -435,14 +435,14 @@
cmd._taskd_status.return_value = ''
cmd.options = Mock(num_retry=10)
cmd._check_taskd_status(123)
- expected_calls = [call(123, False if i == 0 else True) for i in range(10)]
+ expected_calls = [call(123, i != 0) for i in range(10)]
assert cmd._taskd_status.mock_calls == expected_calls
cmd._taskd_status = Mock()
cmd._taskd_status.return_value = ''
cmd.options = Mock(num_retry=3)
cmd._check_task(123, Mock())
- expected_calls = [call(123, False if i == 0 else True) for i in range(3)]
+ expected_calls = [call(123, i != 0) for i in range(3)]
assert cmd._taskd_status.mock_calls == expected_calls
diff --git a/Allura/allura/tests/test_helpers.py b/Allura/allura/tests/test_helpers.py
index 99eae9c..71318ee 100644
--- a/Allura/allura/tests/test_helpers.py
+++ b/Allura/allura/tests/test_helpers.py
@@ -542,9 +542,8 @@
raise HTTPUnauthorized()
with h.login_overlay(exceptions=['foo']):
raise HTTPUnauthorized()
- with td.raises(HTTPUnauthorized):
- with h.login_overlay(exceptions=['foobar']):
- raise HTTPUnauthorized()
+ with td.raises(HTTPUnauthorized), h.login_overlay(exceptions=['foobar']):
+ raise HTTPUnauthorized()
class TestIterEntryPoints(TestCase):
diff --git a/Allura/allura/tests/test_tasks.py b/Allura/allura/tests/test_tasks.py
index 54e936e..81fb412 100644
--- a/Allura/allura/tests/test_tasks.py
+++ b/Allura/allura/tests/test_tasks.py
@@ -584,11 +584,11 @@
setup_global_objects()
def test_delivers_messages(self):
- with mock.patch.object(M.Mailbox, 'deliver') as deliver:
- with mock.patch.object(M.Mailbox, 'fire_ready') as fire_ready:
- notification_tasks.notify('42', ['52'], 'none')
- deliver.assert_called_with('42', ['52'], 'none')
- fire_ready.assert_called_with()
+ with mock.patch.object(M.Mailbox, 'deliver') as deliver, \
+ mock.patch.object(M.Mailbox, 'fire_ready') as fire_ready:
+ notification_tasks.notify('42', ['52'], 'none')
+ deliver.assert_called_with('42', ['52'], 'none')
+ fire_ready.assert_called_with()
@event_handler('my_event')
diff --git a/Allura/allura/tests/test_webhooks.py b/Allura/allura/tests/test_webhooks.py
index 6393573..e843241 100644
--- a/Allura/allura/tests/test_webhooks.py
+++ b/Allura/allura/tests/test_webhooks.py
@@ -564,9 +564,8 @@
def test_get_payload(self):
sender = RepoPushWebhookSender()
_ci = lambda x: MagicMock(webhook_info={'id': str(x)}, parent_ids=['0'])
- with patch.object(self.git.repo, 'commit', new=_ci):
- with h.push_config(c, app=self.git):
- result = sender.get_payload(commit_ids=['1', '2', '3'], ref='ref')
+ with patch.object(self.git.repo, 'commit', new=_ci), h.push_config(c, app=self.git):
+ result = sender.get_payload(commit_ids=['1', '2', '3'], ref='ref')
expected_result = {
'size': 3,
'commits': [{'id': '1'}, {'id': '2'}, {'id': '3'}],
diff --git a/Allura/allura/tests/unit/test_session.py b/Allura/allura/tests/unit/test_session.py
index e2042c0..282b567 100644
--- a/Allura/allura/tests/unit/test_session.py
+++ b/Allura/allura/tests/unit/test_session.py
@@ -46,14 +46,13 @@
def test_extensions_cm_raises():
session = mock.Mock(_kwargs=dict(extensions=[]))
extension = mock.Mock()
- with td.raises(ValueError):
- with substitute_extensions(session, [extension]) as sess:
- session.flush.side_effect = AttributeError
- assert session.flush.call_count == 1
- assert session.close.call_count == 1
- assert sess == session
- assert sess._kwargs['extensions'] == [extension]
- raise ValueError('test')
+ with td.raises(ValueError), substitute_extensions(session, [extension]) as sess:
+ session.flush.side_effect = AttributeError
+ assert session.flush.call_count == 1
+ assert session.close.call_count == 1
+ assert sess == session
+ assert sess._kwargs['extensions'] == [extension]
+ raise ValueError('test')
assert session.flush.call_count == 1
assert session.close.call_count == 1
assert session._kwargs['extensions'] == []
@@ -62,13 +61,12 @@
def test_extensions_cm_flush_raises():
session = mock.Mock(_kwargs=dict(extensions=[]))
extension = mock.Mock()
- with td.raises(AttributeError):
- with substitute_extensions(session, [extension]) as sess:
- session.flush.side_effect = AttributeError
- assert session.flush.call_count == 1
- assert session.close.call_count == 1
- assert sess == session
- assert sess._kwargs['extensions'] == [extension]
+ with td.raises(AttributeError), substitute_extensions(session, [extension]) as sess:
+ session.flush.side_effect = AttributeError
+ assert session.flush.call_count == 1
+ assert session.close.call_count == 1
+ assert sess == session
+ assert sess._kwargs['extensions'] == [extension]
assert session.flush.call_count == 2
assert session.close.call_count == 1
assert session._kwargs['extensions'] == []
diff --git a/ForgeActivity/forgeactivity/main.py b/ForgeActivity/forgeactivity/main.py
index 5d85145..de05a19 100644
--- a/ForgeActivity/forgeactivity/main.py
+++ b/ForgeActivity/forgeactivity/main.py
@@ -168,7 +168,7 @@
followee=followee,
following=following,
timeline=filtered_timeline,
- noindex=False if filtered_timeline else True,
+ noindex=not filtered_timeline,
page=page,
limit=limit,
has_more=has_more,
diff --git a/ForgeFeedback/forgefeedback/tests/unit/test_root_controller.py b/ForgeFeedback/forgefeedback/tests/unit/test_root_controller.py
index fd04a04..0df9787 100644
--- a/ForgeFeedback/forgefeedback/tests/unit/test_root_controller.py
+++ b/ForgeFeedback/forgefeedback/tests/unit/test_root_controller.py
@@ -35,10 +35,10 @@
def test_index(self):
reviews = feedback_main.RootController().index()
- assert True if not reviews['user_has_already_reviewed'] else False
+ assert bool(not reviews['user_has_already_reviewed'])
create_feedbacks()
reviews = feedback_main.RootController().index()
- assert True if reviews['user_has_already_reviewed'] else False
+ assert bool(reviews['user_has_already_reviewed'])
def test_feedback(self):
create_feedbacks()
diff --git a/ForgeImporters/forgeimporters/github/__init__.py b/ForgeImporters/forgeimporters/github/__init__.py
index f14d215..57deee4 100644
--- a/ForgeImporters/forgeimporters/github/__init__.py
+++ b/ForgeImporters/forgeimporters/github/__init__.py
@@ -208,7 +208,7 @@
def valid_access_token(access_token, scopes_required=None):
tok_details = access_token_details(access_token)
- if not tok_details.status_code == 200:
+ if tok_details.status_code != 200:
return False
if scopes_required and not all(scope_req in tok_details.json()['scopes']
for scope_req in scopes_required):
diff --git a/ForgeTracker/forgetracker/tracker_main.py b/ForgeTracker/forgetracker/tracker_main.py
index e70a61d..ad6ab61 100644
--- a/ForgeTracker/forgetracker/tracker_main.py
+++ b/ForgeTracker/forgetracker/tracker_main.py
@@ -1329,7 +1329,7 @@
if key in self.originals:
orig_value = self.originals[key]
curr_value = self.data[key]
- if not orig_value == curr_value:
+ if orig_value != curr_value:
t.append((key, (orig_value, curr_value)))
return t
diff --git a/ruff.toml b/ruff.toml
index 4337590..6df46f4 100644
--- a/ruff.toml
+++ b/ruff.toml
@@ -36,6 +36,11 @@
"PLC",
"PLE",
"PLW",
+ "SIM101",
+ "SIM103",
+ "SIM117",
+ "SIM2",
+ "SIM401",
"FA", # future annotations (to ensure compatibility with `target-version`)
]