Skip to content

Commit d4b01b1

Browse files
committed
style fixes
1 parent aa8f43d commit d4b01b1

16 files changed

+62
-54
lines changed

Makefile

+14
Original file line numberDiff line numberDiff line change
@@ -540,6 +540,13 @@ check-security-only: check-security-code-only check-security-deps-only ## run s
540540
# 42194: https://github.com/kvesteri/sqlalchemy-utils/issues/166 # not fixed since 2015
541541
# 51668: https://github.com/sqlalchemy/sqlalchemy/pull/8563 # still in beta + major version change sqlalchemy 2.0.0b1
542542
# 51021: This is patched in jwcrypto>=1.4.0 but that version is not available for python version < 3.6
543+
# 66713: This is patched in jwcrypto>=1.5.1 but that version is not available for python version < 3.6
544+
# 63154: This is patched in jwcrypto>=1.5.1 but that version is not available for python version < 3.6
545+
# 64484: This is patched in bandit>=1.7.8 but that version is not available for python version < 3.8
546+
# 43407: This is an advisory that support for python < 3.6 is no longer supported in the next version
547+
# 43452: This is a duplicate of 43407
548+
# 43450: This is a duplicate of 43407
549+
# 43451: This is a duplicate of 43407
543550
.PHONY: check-security-deps-only
544551
check-security-deps-only: mkdir-reports ## run security checks on package dependencies
545552
@echo "Running security checks of dependencies..."
@@ -553,6 +560,13 @@ check-security-deps-only: mkdir-reports ## run security checks on package depen
553560
-i 42194 \
554561
-i 51668 \
555562
-i 51021 \
563+
-i 66713 \
564+
-i 63154 \
565+
-i 64484 \
566+
-i 43407 \
567+
-i 43452 \
568+
-i 43450 \
569+
-i 43451 \
556570
1> >(tee "$(REPORTS_DIR)/check-security-deps.txt")'
557571

558572
.PHONY: check-security-code-only

magpie/api/login/login.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
from magpie.api import schemas as s
3535
from magpie.api.management.user.user_formats import format_user
3636
from magpie.api.management.user.user_utils import create_user
37-
from magpie.constants import get_constant, protected_user_email_regex, protected_user_name_regex, network_enabled
37+
from magpie.constants import get_constant, network_enabled, protected_user_email_regex, protected_user_name_regex
3838
from magpie.security import authomatic_setup, get_providers
3939
from magpie.utils import (
4040
CONTENT_TYPE_JSON,

magpie/api/management/network/__init__.py

+4-3
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,16 @@
44

55

66
def includeme(config):
7-
from magpie.api import schemas as s
8-
from magpie import utils
97
from pyramid.exceptions import ConfigurationError
108

9+
from magpie import utils
10+
from magpie.api import schemas as s
11+
1112
LOGGER.info("Adding API network ...")
1213
try:
1314
utils.check_network_configured(config)
1415
except ConfigurationError as exc:
15-
LOGGER.error("API network failed with following configuration error: {}".format(exc))
16+
LOGGER.error("API network failed with following configuration error: %s", exc)
1617
raise
1718
config.add_route(**s.service_api_route_info(s.NetworkTokenAPI))
1819
config.add_route(**s.service_api_route_info(s.NetworkJSONWebKeySetAPI))

magpie/api/management/network/network_utils.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -92,15 +92,15 @@ def create_private_key(filename, password=None, settings_container=None):
9292
if os.path.realpath(pem_file) == os.path.realpath(filename):
9393
password = pem_password
9494

95-
LOGGER.info("Creating a valid PEM file at '{}'.".format(filename))
95+
LOGGER.info("Creating a valid PEM file at '%s'.", filename)
9696
private_key = rsa.generate_private_key(public_exponent=65537, key_size=2048)
9797
if password:
9898
encryption_algorithm = serialization.BestAvailableEncryption(password)
9999
else:
100100
encryption_algorithm = serialization.NoEncryption()
101101
private_bytes = private_key.private_bytes(serialization.Encoding.PEM,
102102
serialization.PrivateFormat.TraditionalOpenSSL, encryption_algorithm)
103-
with open(filename, mode='wb') as f:
103+
with open(filename, mode="wb") as f:
104104
f.write(private_bytes)
105105

106106

magpie/api/management/network/network_views.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ def post_network_token_view(request):
3636
@view_config(route_name=s.NetworkTokenAPI.name, request_method="DELETE",
3737
decorator=check_network_mode_enabled, permission=NO_PERMISSION_REQUIRED)
3838
def delete_network_token_view(request):
39-
node, network_remote_user = get_network_models_from_request_token(request)
39+
_, network_remote_user = get_network_models_from_request_token(request)
4040
if network_remote_user and network_remote_user.network_token:
4141
request.db.delete(network_remote_user.network_token)
4242
if network_remote_user.user is None and sqlalchemy.inspect(network_remote_user).persistent:
@@ -53,7 +53,6 @@ def delete_network_tokens_view(request):
5353
deleted = models.NetworkToken.delete_expired(request.db)
5454
else:
5555
deleted = request.db.query(NetworkToken).delete()
56-
anonymous_network_user_ids = [n.anonymous_user(request.db).id for n in request.db.query(models.NetworkNode).all()]
5756
# clean up unused records in the database (no need to keep records associated with anonymous network users)
5857
(request.db.query(models.NetworkRemoteUser)
5958
.filter(models.NetworkRemoteUser.user_id == None) # noqa: E711 # pylint: disable=singleton-comparison

magpie/api/management/network/node/network_node_utils.py

+2-3
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
if TYPE_CHECKING:
1515
from pyramid.request import Request
1616

17-
from magpie.typedefs import AnyRequestType, JSON, List, Optional, Session, Str
17+
from magpie.typedefs import JSON, AnyRequestType, List, Optional, Session, Str
1818

1919
NAME_REGEX = r"^[\w-]+$"
2020

@@ -121,5 +121,4 @@ def load_redirect_uris(uris, request):
121121
fallback=lambda: request.db.rollback(),
122122
msg_on_fail=s.NetworkNodes_CheckInfo_RedirectURIsValue_BadRequestResponseSchema.description
123123
)
124-
else:
125-
return uris
124+
return uris

magpie/api/management/network/node/network_node_views.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@
2222
check_network_node_info,
2323
create_associated_user_groups,
2424
delete_network_node,
25-
update_associated_user_groups, load_redirect_uris
25+
load_redirect_uris,
26+
update_associated_user_groups
2627
)
2728
from magpie.api.requests import check_network_mode_enabled
2829
from magpie.constants import get_constant

magpie/api/schemas.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@
1717
HTTPInternalServerError,
1818
HTTPMethodNotAllowed,
1919
HTTPNotAcceptable,
20-
HTTPNotImplemented,
2120
HTTPNotFound,
21+
HTTPNotImplemented,
2222
HTTPOk,
2323
HTTPUnauthorized,
2424
HTTPUnprocessableEntity

magpie/utils.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -1194,16 +1194,16 @@ def check_network_configured(settings_container=None):
11941194
raise ConfigurationError("MAGPIE_NETWORK_INSTANCE_NAME is required when network mode is enabled.") from exc
11951195

11961196
# import here to avoid a potential cyclical import
1197-
from magpie.api.management.network.network_utils import jwks, pem_files, create_private_key
1197+
from magpie.api.management.network.network_utils import create_private_key, jwks, pem_files
11981198
try:
11991199
jwks(settings_container=settings_container)
12001200
except Exception as exc:
12011201
create_missing = asbool(
12021202
get_constant("MAGPIE_NETWORK_CREATE_MISSING_PEM_FILE", settings_container=settings_container))
12031203
pem_files_ = pem_files(settings_container)
12041204
if isinstance(exc, FileNotFoundError) and create_missing and len(pem_files_) == 1:
1205-
LOGGER.warning("No network PEM files found")
1206-
create_private_key(pem_files_[0], settings_container=settings_container)
1205+
LOGGER.warning("No network PEM files found")
1206+
create_private_key(pem_files_[0], settings_container=settings_container)
12071207
else:
12081208
msg = ("Error occurred when loading PEM keys which are required when network mode is enabled. "
12091209
"Check that the MAGPIE_NETWORK_PEM_FILES and MAGPIE_NETWORK_PEM_PASSWORDS are set properly. "

requirements-dev.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ autopep8>=1.5.4; python_version >= "3.6"
55
backports.tempfile; python_version < "3"
66
bandit==1.7.1; python_version < "3.7" # pyup: ignore
77
bandit==1.7.5; python_version == "3.7" # pyup: ignore
8-
bandit==1.7.7; python_version >= "3.8"
8+
bandit==1.7.8; python_version >= "3.8"
99
bump2version==1.0.1
1010
codacy-coverage>=1.3.11
1111
coverage==5.5; python_version < "3" # pyup: ignore

requirements.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ gunicorn>=20; python_version >= "3"
2727
humanize
2828
jsonschema<4; python_version < "3.6"
2929
jsonschema>=4; python_version >= "3.6"
30-
jwcrypto==1.5.0; python_version >= "3.6"
30+
jwcrypto==1.5.6; python_version >= "3.6"
3131
jwcrypto==0.8; python_version < "3.6" # pyup: ignore
3232
lxml>=3.7
3333
mako # controlled by pyramid_mako

tests/interfaces.py

+16-18
Original file line numberDiff line numberDiff line change
@@ -61,10 +61,10 @@
6161
# pylint: disable=W0611,unused-import
6262
from typing import Dict, List, Optional, Set, Tuple, Union
6363

64+
from pytest_httpserver import HTTPServer
6465
from sqlalchemy.orm.session import Session
6566

6667
from magpie.typedefs import JSON, CookiesType, HeadersType, PermissionDict, SettingsType, Str
67-
from pytest_httpserver import HTTPServer
6868

6969

7070
@six.add_metaclass(ABCMeta)
@@ -284,13 +284,13 @@ def setup_network_attrs(cls):
284284
cls.test_node_name = "node2"
285285
cls.test_remote_user_name = "remote_user_1"
286286
cls.test_node_host = get_constant("MAGPIE_TEST_REMOTE_NODE_SERVER_HOST", default_value="localhost",
287-
raise_missing=False, raise_not_set=False)
287+
raise_missing=False, raise_not_set=False)
288288
cls.test_node_port = int(get_constant("MAGPIE_TEST_REMOTE_NODE_SERVER_PORT", default_value=2002,
289289
raise_missing=False, raise_not_set=False))
290290
cls.test_node_jwks_url = "http://{}:{}/network/jwks".format(cls.test_node_host, cls.test_node_port)
291291
cls.test_node_token_url = "http://{}:{}/network/token".format(cls.test_node_host, cls.test_node_port)
292292
cls.test_authorization_url = "http://{}:{}/ui/network/authorize".format(cls.test_node_host, cls.test_node_port)
293-
cls.test_redirect_uris = '["http://{}:{}/network/link"]'.format(cls.test_node_host, cls.test_node_port)
293+
cls.test_redirect_uris = "[\"http://{}:{}/network/link\"]".format(cls.test_node_host, cls.test_node_port)
294294

295295
@classmethod
296296
def login_admin(cls):
@@ -1403,7 +1403,6 @@ def test_DeleteNetworkToken_And_AnonymousUser(self):
14031403
json_body = utils.get_json_body(resp)
14041404
utils.check_val_false(bool(json_body["remote_users"]))
14051405

1406-
14071406
@runner.MAGPIE_TEST_NETWORK
14081407
@utils.check_network_mode
14091408
def test_DeleteNetworkToken_InvalidNode(self):
@@ -2482,7 +2481,6 @@ def test_GetNetworkLink_DifferentUser(self):
24822481
cookies=self.cookies, headers=self.headers, expect_errors=True)
24832482
utils.check_response_basic_info(resp, expected_code=404)
24842483

2485-
24862484
@runner.MAGPIE_TEST_NETWORK
24872485
@utils.check_network_mode
24882486
def test_GetNetworkLink_MissingClaim_user_name(self):
@@ -8191,7 +8189,7 @@ def test_GetDecodeJWT_NoToken(self):
81918189
headers=self.headers, expect_errors=True)
81928190
utils.check_response_basic_info(resp, expected_code=400)
81938191
json_body = utils.get_json_body(resp)
8194-
utils.check_val_is_in("Missing token", json_body.get("detail", ''))
8192+
utils.check_val_is_in("Missing token", json_body.get("detail", ""))
81958193

81968194
@runner.MAGPIE_TEST_NETWORK
81978195
@utils.check_network_mode
@@ -8207,7 +8205,7 @@ def test_GetDecodeJWT_BadToken(self):
82078205
headers=self.headers, expect_errors=True)
82088206
utils.check_response_basic_info(resp, expected_code=400)
82098207
json_body = utils.get_json_body(resp)
8210-
utils.check_val_is_in("Token is improperly formatted", json_body.get("detail", ''))
8208+
utils.check_val_is_in("Token is improperly formatted", json_body.get("detail", ""))
82118209

82128210
@runner.MAGPIE_TEST_NETWORK
82138211
@utils.check_network_mode
@@ -8224,7 +8222,7 @@ def test_GetDecodeJWT_BadIssuer(self):
82248222
headers=self.headers, expect_errors=True)
82258223
utils.check_response_basic_info(resp, expected_code=400)
82268224
json_body = utils.get_json_body(resp)
8227-
utils.check_val_is_in("invalid or missing issuer claim", json_body.get("detail", ''))
8225+
utils.check_val_is_in("invalid or missing issuer claim", json_body.get("detail", ""))
82288226

82298227
@runner.MAGPIE_TEST_NETWORK
82308228
@utils.check_network_mode
@@ -8339,7 +8337,6 @@ def test_PostNetworkNode_CreateAssociatedRecords(self):
83398337
headers=self.headers, expect_errors=True)
83408338
utils.check_response_basic_info(resp)
83418339

8342-
83438340
@runner.MAGPIE_TEST_NETWORK
83448341
@utils.check_network_mode
83458342
def test_PostNetworkNode_MissingParamName(self):
@@ -8357,7 +8354,7 @@ def test_PostNetworkNode_MissingParamName(self):
83578354
"redirect_uris": ["http://uri.test.some.example.com"]
83588355
}
83598356

8360-
for param, value in node_info.items():
8357+
for param in node_info:
83618358
json_body = utils.TestSetup.create_TestNetworkNode(self, override_exist=True,
83628359
override_data={**node_info, param: None},
83638360
expect_errors=True)
@@ -8380,7 +8377,7 @@ def test_PostNetworkNode_InvalidParam(self):
83808377
"redirect_uris": ["http://uri.test.some.example.com"]
83818378
}
83828379

8383-
for param in node_info.keys():
8380+
for param in node_info:
83848381
json_body = utils.TestSetup.create_TestNetworkNode(self, override_exist=True,
83858382
override_data={**node_info, param: ""},
83868383
expect_errors=True)
@@ -8482,7 +8479,7 @@ def test_PatchNetworkNode_InvalidName(self):
84828479
"redirect_uris": ["http://uri.test.some.example.com"]
84838480
}
84848481

8485-
for param in node_info.keys():
8482+
for param in node_info:
84868483
resp = utils.test_request(self, "PATCH", "/network/nodes/{}".format(self.test_node_name),
84878484
cookies=self.cookies, headers=self.headers,
84888485
data={**node_info, param: ""}, expect_errors=True)
@@ -8597,9 +8594,9 @@ def test_GetNetworkRemoteUser(self):
85978594
utils.TestSetup.create_TestNetworkNode(self, override_exist=True)
85988595
utils.TestSetup.create_TestNetworkRemoteUser(self, override_exist=True)
85998596

8600-
resp = utils.test_request(self, "GET",
8601-
"/network/nodes/{}/remote_users/{}".format(self.test_node_name,
8602-
self.test_remote_user_name),
8597+
resp = utils.test_request(self, "GET",
8598+
"/network/nodes/{}/remote_users/{}".format(self.test_node_name,
8599+
self.test_remote_user_name),
86038600
cookies=self.cookies,
86048601
headers=self.headers)
86058602
json_body = utils.check_response_basic_info(resp)
@@ -8642,7 +8639,7 @@ def test_PostNetworkRemoteUser_MissingRequiredParams(self):
86428639
"remote_user_name": self.test_remote_user_name,
86438640
"node_name": self.test_node_name
86448641
}
8645-
for key in data.keys():
8642+
for key in data:
86468643
resp = utils.test_request(self, "POST", "/network/remote_users", json={**data, key: None},
86478644
expect_errors=True, headers=self.headers, cookies=self.cookies)
86488645
utils.check_response_basic_info(resp, expected_method="POST", expected_code=400)
@@ -9254,7 +9251,7 @@ def test_UserNetworkAuthorization(self):
92549251
utils.warn_version(self, "View authorization page.", "3.38.0", skip=True)
92559252

92569253
utils.TestSetup.create_TestNetworkNode(self, override_exist=True)
9257-
9254+
92589255
with utils.TestSetup.valid_jwt(self, override_jwt_claims={"user_name": "test123"}) as token:
92599256
self.login_test_user()
92609257
path = "/ui/network/authorize?token={}&response_type=id_token&redirect_uri={}".format(
@@ -9268,7 +9265,7 @@ def test_UserNetworkAuthorization(self):
92689265
node_form.text
92699266
)
92709267
utils.check_val_is_in(
9271-
'on the Magpie instance named "{}"'.format(self.test_node_name),
9268+
'on the Magpie instance named "{}"'.format(self.test_node_name), # pylint: disable=C4001
92729269
node_form.text
92739270
)
92749271
token_input = node_form.find_all("input", recursive=True)[0]
@@ -9355,6 +9352,7 @@ def test_UserNetworkAuthorization_BadRedirectURI(self):
93559352
resp = utils.test_request(self, "GET", path, headers=headers, cookies=cookies, expect_errors=True)
93569353
utils.check_val_equal(resp.status_code, 400)
93579354

9355+
93589356
@runner.MAGPIE_TEST_UI
93599357
@six.add_metaclass(ABCMeta)
93609358
class Interface_MagpieUI_AdminAuth(AdminTestCase, BaseTestCase):

tests/test_constants.py

+5-5
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,7 @@ def test_no_network_network_mode_on(self):
168168

169169
@runner.MAGPIE_TEST_NETWORK
170170
@utils.check_network_mode(enable=False)
171-
def test_include_network(self):
171+
def test_include_network_network_mode_off(self):
172172
c.protected_user_name_regex.cache_clear()
173173
assert re.search(c.protected_user_name_regex(),
174174
c.get_constant("MAGPIE_NETWORK_NAME_PREFIX") + "test") is None
@@ -210,7 +210,7 @@ def test_no_network_network_mode_on(self):
210210

211211
@runner.MAGPIE_TEST_NETWORK
212212
@utils.check_network_mode(enable=False)
213-
def test_include_network(self):
213+
def test_include_network_network_mode_off(self):
214214
c.protected_user_email_regex.cache_clear()
215215
assert re.search(c.protected_user_email_regex(),
216216
c.get_constant("MAGPIE_NETWORK_ANONYMOUS_EMAIL_FORMAT").format("test")) is None
@@ -233,7 +233,8 @@ def test_include_network(self):
233233
assert re.search(c.protected_group_name_regex(), c.get_constant("MAGPIE_NETWORK_NAME_PREFIX") + "test")
234234

235235
def test_no_admin(self):
236-
assert re.search(c.protected_group_name_regex(include_admin=False), c.get_constant("MAGPIE_ADMIN_GROUP")) is None
236+
assert re.search(c.protected_group_name_regex(include_admin=False),
237+
c.get_constant("MAGPIE_ADMIN_GROUP")) is None
237238

238239
def test_no_anonymous(self):
239240
assert re.search(c.protected_group_name_regex(include_anonymous=False),
@@ -247,8 +248,7 @@ def test_no_network_network_mode_on(self):
247248

248249
@runner.MAGPIE_TEST_NETWORK
249250
@utils.check_network_mode(enable=False)
250-
def test_include_network(self):
251+
def test_include_network_network_mode_off(self):
251252
c.protected_group_name_regex.cache_clear()
252253
assert re.search(c.protected_group_name_regex(),
253254
c.get_constant("MAGPIE_NETWORK_NAME_PREFIX") + "test") is None
254-

tests/test_magpie_api.py

-1
Original file line numberDiff line numberDiff line change
@@ -570,7 +570,6 @@ def test_DeleteNetworkTokens_AndAnonymousNetworkUsers_ExpiredOnly(self):
570570
with patch_datetime({"utcnow": datetime.datetime.utcnow() - datetime.timedelta(days=365)}):
571571
utils.TestSetup.create_TestNetworkToken(self, override_remote_user_name="test2", override_node_name="test2")
572572

573-
574573
utils.test_request(self, "DELETE", "/network/tokens", data={"expired_only": True}, cookies=self.cookies,
575574
headers=self.headers)
576575

tests/test_magpie_cli.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -294,16 +294,16 @@ def test_purge_expired_network_tokens():
294294
test_password = "qwertyqwerty"
295295

296296
def mocked_request(*args, **_kwargs):
297-
method, url, *_ = args
297+
method, *_ = args
298298
response = requests.Response()
299299
response.status_code = 200
300300
if method == "DELETE":
301-
response._content = '{"deleted": 101}'.encode()
301+
response._content = '{"deleted": 101}'.encode() # pylint: disable=C4001,W0212
302302
return response
303303

304304
with mock.patch("requests.Session.request", side_effect=mocked_request) as session_mock:
305305
cmd = ["api", test_url, test_username, test_password]
306306
assert purge_expired_network_tokens.main(cmd) == 0, "failed execution due to invalid arguments"
307307
session_mock.assert_any_call("POST", "{}/signin".format(test_url), data=None,
308-
json={'user_name': 'test_username', 'password': 'qwertyqwerty'})
308+
json={"user_name": "test_username", "password": "qwertyqwerty"})
309309
session_mock.assert_any_call("DELETE", "{}/network/tokens?expired_only=true".format(test_url))

0 commit comments

Comments
 (0)