pyupgrade: run pyupgrade --py36-plus and black on jupyterhub/tests

This commit is contained in:
Erik Sundell
2021-08-26 15:59:13 +02:00
parent 2c62c4f7ef
commit c8c7418ed2
12 changed files with 67 additions and 68 deletions

View File

@@ -205,7 +205,7 @@ def new_username(prefix='testuser'):
"""Return a new unique username"""
global _username_counter
_username_counter += 1
return '{}-{}'.format(prefix, _username_counter)
return f'{prefix}-{_username_counter}'
@fixture
@@ -241,7 +241,7 @@ def new_group_name(prefix='testgroup'):
"""Return a new unique group name"""
global _groupname_counter
_groupname_counter += 1
return '{}-{}'.format(prefix, _groupname_counter)
return f'{prefix}-{_groupname_counter}'
@fixture

View File

@@ -217,9 +217,7 @@ class MockPAMAuthenticator(PAMAuthenticator):
close_session=mock_open_session,
check_account=mock_check_account,
):
username = await super(MockPAMAuthenticator, self).authenticate(
*args, **kwargs
)
username = await super().authenticate(*args, **kwargs)
if username is None:
return
elif self.auth_state:

View File

@@ -323,9 +323,12 @@ async def test_get_users_state_filter(app, state):
# has_zero: no Spawners registered at all
has_zero = add_user(db, app=app, name='has_zero')
test_usernames = set(
("has_one_active", "has_two_active", "has_two_inactive", "has_zero")
)
test_usernames = {
"has_one_active",
"has_two_active",
"has_two_inactive",
"has_zero",
}
user_states = {
"inactive": ["has_two_inactive", "has_zero"],
@@ -361,7 +364,7 @@ async def test_get_users_state_filter(app, state):
add_spawner(has_one_active, active=True, ready=False)
add_spawner(has_one_active, "inactive", active=False)
r = await api_request(app, 'users?state={}'.format(state))
r = await api_request(app, f'users?state={state}')
if state == "invalid":
assert r.status_code == 400
return
@@ -989,7 +992,7 @@ async def test_progress(request, app, no_patience, slow_spawn):
url = app_user.url
assert evt == {
'progress': 100,
'message': 'Server ready at {}'.format(url),
'message': f'Server ready at {url}',
'html_message': 'Server ready at <a href="{0}">{0}</a>'.format(url),
'url': url,
'ready': True,
@@ -1682,7 +1685,7 @@ async def test_group_add_delete_users(app):
assert [g.name for g in user.groups] == ['alphaflight']
group = orm.Group.find(db, name='alphaflight')
assert sorted([u.name for u in group.users]) == sorted(names)
assert sorted(u.name for u in group.users) == sorted(names)
r = await api_request(
app,
@@ -1698,7 +1701,7 @@ async def test_group_add_delete_users(app):
assert [g.name for g in user.groups] == ['alphaflight']
group = orm.Group.find(db, name='alphaflight')
assert sorted([u.name for u in group.users]) == sorted(names[2:])
assert sorted(u.name for u in group.users) == sorted(names[2:])
# -----------------
@@ -1812,8 +1815,8 @@ async def test_update_activity_403(app, user, admin_user):
token = user.new_api_token()
r = await api_request(
app,
"users/{}/activity".format(admin_user.name),
headers={"Authorization": "token {}".format(token)},
f"users/{admin_user.name}/activity",
headers={"Authorization": f"token {token}"},
data="{}",
method="post",
)
@@ -1824,8 +1827,8 @@ async def test_update_activity_admin(app, user, admin_user):
token = admin_user.new_api_token(roles=['admin'])
r = await api_request(
app,
"users/{}/activity".format(user.name),
headers={"Authorization": "token {}".format(token)},
f"users/{user.name}/activity",
headers={"Authorization": f"token {token}"},
data=json.dumps({"last_activity": utcnow().isoformat()}),
method="post",
)
@@ -1861,8 +1864,8 @@ async def test_update_server_activity(app, user, server_name, fresh):
r = await api_request(
app,
"users/{}/activity".format(user.name),
headers={"Authorization": "token {}".format(token)},
f"users/{user.name}/activity",
headers={"Authorization": f"token {token}"},
data=json.dumps(
{"servers": {server_name: {"last_activity": activity.isoformat()}}}
),

View File

@@ -252,10 +252,10 @@ async def test_load_groups(tmpdir, request):
db = hub.db
blue = orm.Group.find(db, name='blue')
assert blue is not None
assert sorted([u.name for u in blue.users]) == sorted(to_load['blue'])
assert sorted(u.name for u in blue.users) == sorted(to_load['blue'])
gold = orm.Group.find(db, name='gold')
assert gold is not None
assert sorted([u.name for u in gold.users]) == sorted(to_load['gold'])
assert sorted(u.name for u in gold.users) == sorted(to_load['gold'])
async def test_resume_spawners(tmpdir, request):

View File

@@ -127,7 +127,7 @@ async def test_refresh_pre_spawn(app, user, refresh_pre_spawn):
# auth is fresh, but should be forced to refresh by spawn
r = await api_request(
app, 'users/{}/server'.format(user.name), method='post', name=user.name
app, f'users/{user.name}/server', method='post', name=user.name
)
assert 200 <= r.status_code < 300
assert user._auth_refreshed > before
@@ -141,7 +141,7 @@ async def test_refresh_pre_spawn_expired(app, user, refresh_pre_spawn, disable_r
# auth is fresh, doesn't trigger expiry
r = await api_request(
app, 'users/{}/server'.format(user.name), method='post', name=user.name
app, f'users/{user.name}/server', method='post', name=user.name
)
assert r.status_code == 403
assert user._auth_refreshed == before

View File

@@ -108,7 +108,7 @@ async def test_create_named_server(app, named_servers):
env = r.json()
prefix = env.get('JUPYTERHUB_SERVICE_PREFIX')
assert prefix == user.spawners[servername].server.base_url
assert prefix.endswith('/user/%s/%s/' % (username, servername))
assert prefix.endswith(f'/user/{username}/{servername}/')
r = await api_request(app, 'users', username)
r.raise_for_status()
@@ -254,11 +254,9 @@ async def test_named_server_spawn_form(app, username, named_servers):
cookies = await app.login_user(username)
user = app.users[username]
with mock.patch.dict(app.users.settings, {'spawner_class': FormSpawner}):
r = await get_page(
'spawn/%s/%s' % (username, server_name), app, cookies=cookies
)
r = await get_page(f'spawn/{username}/{server_name}', app, cookies=cookies)
r.raise_for_status()
assert r.url.endswith('/spawn/%s/%s' % (username, server_name))
assert r.url.endswith(f'/spawn/{username}/{server_name}')
assert FormSpawner.options_form in r.text
# submit the form
@@ -314,7 +312,7 @@ async def test_user_redirect_default_server_name(
r = await async_requests.get(r.url, cookies=cookies)
path = urlparse(r.url).path
assert path == url_path_join(
app.base_url, '/user/{}/{}/notebooks/test.ipynb'.format(name, server_name)
app.base_url, f'/user/{name}/{server_name}/notebooks/test.ipynb'
)

View File

@@ -48,8 +48,8 @@ _hostname = socket.gethostname()
{
'ip': '',
'port': 123,
'host': 'http://{}:123'.format(_hostname),
'url': 'http://{}:123/x/'.format(_hostname),
'host': f'http://{_hostname}:123',
'url': f'http://{_hostname}:123/x/',
'bind_url': 'http://*:123/x/',
},
),

View File

@@ -218,7 +218,7 @@ async def test_spawn_admin_access(app, admin_access):
r.raise_for_status()
assert (r.url.split('?')[0] + '/').startswith(public_url(app, user))
r = await get_page('user/{}/env'.format(name), app, hub=False, cookies=cookies)
r = await get_page(f'user/{name}/env', app, hub=False, cookies=cookies)
r.raise_for_status()
env = r.json()
@@ -255,7 +255,7 @@ async def test_spawn_page_admin(app, admin_access):
r = await get_page('spawn/' + u.name, app, cookies=cookies)
assert r.url.endswith('/spawn/' + u.name)
assert FormSpawner.options_form in r.text
assert "Spawning server for {}".format(u.name) in r.text
assert f"Spawning server for {u.name}" in r.text
async def test_spawn_with_query_arguments(app):

View File

@@ -101,7 +101,7 @@ async def test_external_proxy(request):
print(app.base_url, user_path)
host = ''
if app.subdomain_host:
host = '%s.%s' % (name, urlparse(app.subdomain_host).hostname)
host = f'{name}.{urlparse(app.subdomain_host).hostname}'
user_spec = host + user_path
assert sorted(routes.keys()) == [app.hub.routespec, user_spec]
@@ -148,7 +148,7 @@ async def test_external_proxy(request):
await wait_for_proxy()
# tell the hub where the new proxy is
new_api_url = 'http://{}:{}'.format(proxy_ip, proxy_port)
new_api_url = f'http://{proxy_ip}:{proxy_port}'
r = await api_request(
app,
'proxy',

View File

@@ -879,7 +879,7 @@ async def test_server_role_api_calls(
username = 'otheruser'
if api_endpoint == 'activity':
path = "users/{}/activity".format(username)
path = f"users/{username}/activity"
data = json.dumps({"servers": {"": {"last_activity": utcnow().isoformat()}}})
elif api_endpoint == 'users':
path = "users"
@@ -888,7 +888,7 @@ async def test_server_role_api_calls(
r = await api_request(
app,
path,
headers={"Authorization": "token {}".format(api_token)},
headers={"Authorization": f"token {api_token}"},
data=data,
method=api_method,
)

View File

@@ -32,8 +32,8 @@ def test_scope_constructor():
user2 = 'michael'
scope_list = [
'users',
'read:users!user={}'.format(user1),
'read:users!user={}'.format(user2),
f'read:users!user={user1}',
f'read:users!user={user2}',
]
parsed_scopes = parse_scopes(scope_list)
@@ -331,7 +331,7 @@ async def test_request_user_outside_group(app, create_user_with_scopes):
async def test_user_filter(app, create_user_with_scopes):
name_in_scope = {'lindsay', 'oscar', 'gob'}
user = create_user_with_scopes(
*[f'list:users!user={name}' for name in name_in_scope]
*(f'list:users!user={name}' for name in name_in_scope)
)
outside_scope = {'maeby', 'marta'}
group_name = 'bluth'
@@ -417,7 +417,7 @@ async def test_vertical_filter(app, create_user_with_scopes):
r = await api_request(app, 'users', headers=auth_header(app.db, user.name))
assert r.status_code == 200
allowed_keys = {'name', 'kind', 'admin'}
assert set([key for user in r.json() for key in user.keys()]) == allowed_keys
assert {key for user in r.json() for key in user.keys()} == allowed_keys
async def test_stacked_vertical_filter(app, create_user_with_scopes):
@@ -778,64 +778,64 @@ async def test_roles_access(app, create_service_with_scopes, create_user_with_sc
"left, right, expected, should_warn",
[
(set(), set(), set(), False),
(set(), set(["users"]), set(), False),
(set(), {"users"}, set(), False),
# no warning if users and groups only on the same side
(
set(["users!user=x", "users!group=y"]),
set([]),
set([]),
{"users!user=x", "users!group=y"},
set(),
set(),
False,
),
# no warning if users are on both sizes
(
set(["users!user=x", "users!user=y", "users!group=y"]),
set(["users!user=x"]),
set(["users!user=x"]),
{"users!user=x", "users!user=y", "users!group=y"},
{"users!user=x"},
{"users!user=x"},
False,
),
# no warning if users and groups are both defined
# on both sides
(
set(["users!user=x", "users!group=y"]),
set(["users!user=x", "users!group=y", "users!user=z"]),
set(["users!user=x", "users!group=y"]),
{"users!user=x", "users!group=y"},
{"users!user=x", "users!group=y", "users!user=z"},
{"users!user=x", "users!group=y"},
False,
),
# warn if there's a user on one side and a group on the other
# which *may* intersect
(
set(["users!group=y", "users!user=z"]),
set(["users!user=x"]),
set([]),
{"users!group=y", "users!user=z"},
{"users!user=x"},
set(),
True,
),
# same for group->server
(
set(["users!group=y", "users!user=z"]),
set(["users!server=x/y"]),
set([]),
{"users!group=y", "users!user=z"},
{"users!server=x/y"},
set(),
True,
),
# this one actually shouldn't warn because server=x/y is under user=x,
# but we don't need to overcomplicate things just for a warning
(
set(["users!group=y", "users!user=x"]),
set(["users!server=x/y"]),
set(["users!server=x/y"]),
{"users!group=y", "users!user=x"},
{"users!server=x/y"},
{"users!server=x/y"},
True,
),
# resolves server under user, without warning
(
set(["read:servers!user=abc"]),
set(["read:servers!server=abc/xyz"]),
set(["read:servers!server=abc/xyz"]),
{"read:servers!user=abc"},
{"read:servers!server=abc/xyz"},
{"read:servers!server=abc/xyz"},
False,
),
# user->server, no match
(
set(["read:servers!user=abc"]),
set(["read:servers!server=abcd/xyz"]),
set([]),
{"read:servers!user=abc"},
{"read:servers!server=abcd/xyz"},
set(),
False,
),
],
@@ -895,9 +895,9 @@ def test_intersect_expanded_scopes(left, right, expected, should_warn, recwarn):
)
def test_intersect_groups(request, db, left, right, expected, groups):
if isinstance(left, str):
left = set([left])
left = {left}
if isinstance(right, str):
right = set([right])
right = {right}
# if we have a db connection, we can actually resolve
created = []

View File

@@ -69,7 +69,7 @@ async def test_proxy_service(app, mockservice_url):
await app.proxy.get_all_routes()
url = public_url(app, service) + '/foo'
r = await async_requests.get(url, allow_redirects=False)
path = '/services/{}/foo'.format(name)
path = f'/services/{name}/foo'
r.raise_for_status()
assert r.status_code == 200