misc: fix unused-variable pylint error (#56982)

This commit is contained in:
Valentin Deniaud 2021-09-21 12:12:58 +02:00
parent f3e5f4dab6
commit e0b86a7691
54 changed files with 155 additions and 160 deletions

View File

@ -296,7 +296,7 @@ class Role(RoleAbstractBase):
op = MANAGE_MEMBERS_OP
Permission = rbac_utils.get_permission_model()
operation = rbac_utils.get_operation(op)
self_perm, created = Permission.objects.get_or_create(
self_perm, dummy = Permission.objects.get_or_create(
operation=operation,
target_ct=ContentType.objects.get_for_model(self),
target_id=self.pk,
@ -310,7 +310,7 @@ class Role(RoleAbstractBase):
op = MANAGE_MEMBERS_OP
Permission = rbac_utils.get_permission_model()
operation = rbac_utils.get_operation(op)
self_perm, created = Permission.objects.get_or_create(
self_perm, dummy = Permission.objects.get_or_create(
operation=operation, target_ct=ContentType.objects.get_for_model(self), target_id=self.pk
)
self.permissions.through.objects.get_or_create(role=self, permission=self_perm)

View File

@ -34,7 +34,7 @@ def create_default_ou(app_config, verbosity=2, interactive=True, using=DEFAULT_D
if OrganizationalUnit.objects.exists():
return
# Create a default OU if none exists currently
default_ou, created = OrganizationalUnit.objects.get_or_create(
default_ou, dummy = OrganizationalUnit.objects.get_or_create(
slug='default',
defaults={
'default': True,

View File

@ -33,7 +33,7 @@ def get_default_ou():
def get_view_user_perm(ou=None):
User = get_user_model()
Permission = rbac_utils.get_permission_model()
view_user_perm, created = Permission.objects.get_or_create(
view_user_perm, dummy = Permission.objects.get_or_create(
operation=rbac_utils.get_operation(VIEW_OP),
target_ct=ContentType.objects.get_for_model(ContentType),
target_id=ContentType.objects.get_for_model(User).pk,
@ -46,7 +46,7 @@ def get_view_user_perm(ou=None):
def get_search_ou_perm(ou=None):
if ou:
Permission = rbac_utils.get_permission_model()
view_ou_perm, created = Permission.objects.get_or_create(
view_ou_perm, dummy = Permission.objects.get_or_create(
operation=rbac_utils.get_operation(SEARCH_OP),
target_ct=ContentType.objects.get_for_model(ou),
target_id=ou.pk,
@ -55,7 +55,7 @@ def get_search_ou_perm(ou=None):
else:
OU = rbac_utils.get_ou_model()
Permission = rbac_utils.get_permission_model()
view_ou_perm, created = Permission.objects.get_or_create(
view_ou_perm, dummy = Permission.objects.get_or_create(
operation=rbac_utils.get_operation(SEARCH_OP),
target_ct=ContentType.objects.get_for_model(ContentType),
target_id=ContentType.objects.get_for_model(OU).pk,
@ -67,7 +67,7 @@ def get_search_ou_perm(ou=None):
def get_manage_authorizations_user_perm(ou=None):
User = get_user_model()
Permission = rbac_utils.get_permission_model()
manage_authorizations_user_perm, created = Permission.objects.get_or_create(
manage_authorizations_user_perm, dummy = Permission.objects.get_or_create(
operation=rbac_utils.get_operation(models.MANAGE_AUTHORIZATIONS_OP),
target_ct=ContentType.objects.get_for_model(ContentType),
target_id=ContentType.objects.get_for_model(User).pk,

View File

@ -1079,7 +1079,7 @@ class CheckPasswordAPI(BaseRpcView):
for authenticator in self.get_authenticators():
if hasattr(authenticator, 'authenticate_credentials'):
try:
user, oidc_client = authenticator.authenticate_credentials(
user, dummy_oidc_client = authenticator.authenticate_credentials(
username, password, request=request
)
result['result'] = 1

View File

@ -166,7 +166,7 @@ class EventTypeDefinition(metaclass=EventTypeDefinitionMeta):
@GlobalCache
def event_type_cache(name):
event_type, created = EventType.objects.get_or_create(name=name)
event_type, dummy = EventType.objects.get_or_create(name=name)
return event_type
@ -419,7 +419,7 @@ class Event(models.Model):
else:
yield None
count += 1
for i in range(len(reference_types) - count):
for dummy in range(len(reference_types) - count):
yield None
class Meta:

View File

@ -80,7 +80,7 @@ class LoginPasswordAuthenticator(BaseAuthenticator):
.annotate(count=Count('ou'))
.order_by('-count')
)
for ou_id, count in qs:
for ou_id, dummy_count in qs:
if not ou_id:
continue
service_ou_ids.append(ou_id)

View File

@ -691,7 +691,7 @@ class LDAPBackend:
return
for conn in cls.get_connections(block):
existing_groups = cls.get_groups_dns(conn, block)
for group_dn, role_slugs in group_to_role_mapping:
for group_dn, dummy_role_slugs in group_to_role_mapping:
if group_dn in existing_groups:
continue
log.warning('ldap: unknown group "%s" mapped to a role', group_dn)
@ -828,7 +828,8 @@ class LDAPBackend:
else:
log.warning(
'could not rebind after a bind failure, unable to attach the error to the'
' user'
' user (error %s)',
error,
)
user_login_failure(authz_id)
else:
@ -1043,7 +1044,7 @@ class LDAPBackend:
if create is None:
create = block['create_group']
if create:
group, created = Group.objects.get_or_create(name=group_name)
group, dummy = Group.objects.get_or_create(name=group_name)
return group
else:
try:
@ -1176,7 +1177,7 @@ class LDAPBackend:
attributes.add(block[field])
for external_id_tuple in map_text(block['external_id_tuples']):
attributes.update(cls.attribute_name_from_external_id_tuple(external_id_tuple))
for from_at, to_at in map_text(block['attribute_mappings']):
for dummy_from_at, to_at in map_text(block['attribute_mappings']):
attributes.add(to_at)
for mapping in block['user_attributes']:
from_ldap = mapping.get('from_ldap')
@ -1467,7 +1468,7 @@ class LDAPBackend:
user._changed = False
external_id = self.build_external_id(map_text(block['external_id_tuples'][0]), attributes)
if external_id:
new, created = UserExternalId.objects.get_or_create(
new, dummy = UserExternalId.objects.get_or_create(
user=user, external_id=external_id, source=force_text(block['realm'])
)
if block['clean_external_id_on_update']:
@ -1538,7 +1539,7 @@ class LDAPBackend:
while first_pass or pg_ctrl.cookie:
first_pass = False
msgid = conn.search_ext(*args, serverctrls=[pg_ctrl], **kwargs)
result_type, data, msgid, serverctrls = conn.result3(msgid)
dummy_result_type, data, msgid, serverctrls = conn.result3(msgid)
pg_ctrl.cookie = serverctrls[0].cookie
yield from cls.normalize_ldap_results(data)
@ -1785,7 +1786,7 @@ class LDAPBackend:
context = ssl.create_default_context()
try:
with socket.create_connection((hostname, port), timeout=2) as sock:
with context.wrap_socket(sock, server_hostname=hostname) as ssock:
with context.wrap_socket(sock, server_hostname=hostname):
pass
except (socket.herror, socket.gaierror) as e:
return False, 'socket address error on host %s: %s' % (hostname, e)

View File

@ -54,7 +54,7 @@ class ModelBackend(BaseModelBackend):
queries.append(models.Q(**{username_field: username}))
if '@' not in username:
if app_settings.REALMS:
for realm, desc in app_settings.REALMS:
for realm, dummy in app_settings.REALMS:
queries.append(models.Q(**{username_field: upn(username, realm)}))
else:
queries.append(models.Q(**{username_field: upn(username, realm)}))

View File

@ -268,7 +268,7 @@ class ImportUserForm(BaseUserForm):
def clean_password_hash(self):
password_hash = self.cleaned_data['password_hash']
try:
hasher = identify_hasher(password_hash)
identify_hasher(password_hash)
except ValueError:
raise ValidationError(_('Invalid password format or unknown hashing algorithm.'))
return password_hash
@ -485,7 +485,7 @@ class UserCsvImporter:
pass
if not header.field:
try:
attribute = Attribute.objects.get(name=header.name) # NOQA: F841
Attribute.objects.get(name=header.name)
header.attribute = True
except Attribute.DoesNotExist:
pass

View File

@ -50,7 +50,7 @@ class CustomUserConfig(AppConfig):
content_type = ContentType.objects.get_for_model(User)
attrs = {}
attrs['first_name'], created = Attribute.objects.get_or_create(
attrs['first_name'], dummy = Attribute.objects.get_or_create(
name='first_name',
defaults={
'kind': 'string',
@ -61,7 +61,7 @@ class CustomUserConfig(AppConfig):
'user_visible': True,
},
)
attrs['last_name'], created = Attribute.objects.get_or_create(
attrs['last_name'], dummy = Attribute.objects.get_or_create(
name='last_name',
defaults={
'kind': 'string',
@ -76,7 +76,7 @@ class CustomUserConfig(AppConfig):
serialize = get_kind('string').get('serialize')
for user in User.objects.all():
for attr_name, value in attrs.items():
av, created = AttributeValue.objects.get_or_create(
AttributeValue.objects.get_or_create(
content_type=content_type,
object_id=user.id,
attribute=value,

View File

@ -43,7 +43,7 @@ def copy_old_users_to_custom_user_model(apps, schema_editor):
assert old_user.id == new_user.id
for group in old_user.groups.all():
new_groups.append(GroupThrough(user_id=new_user.id, group_id=group.id))
for permission in old_user.user_permissions.all():
for dummy in old_user.user_permissions.all():
new_permissions.append(PermissionThrough(user_id=new_user.id, group_id=group.id))
# mass create group and permission relations
GroupThrough.objects.bulk_create(new_groups)

View File

@ -144,7 +144,7 @@ class RegistrationCompletionFormNoPassword(profile_forms.BaseUserForm):
if commit and app_settings.A2_REGISTRATION_GROUPS:
groups = []
for name in app_settings.A2_REGISTRATION_GROUPS:
group, created = Group.objects.get_or_create(name=name)
group, dummy = Group.objects.get_or_create(name=name)
groups.append(group)
user.groups = groups
return user

View File

@ -74,7 +74,7 @@ class Drupal7PasswordHasher(hashers.BasePasswordHasher):
return '%s$%s$%s$%s' % (self.algorithm, count, salt, h)
def to_drupal(self, encoded):
algo, count, salt, h = encoded.split('$', 3)
dummy_algo, count, salt, h = encoded.split('$', 3)
count = self.i64toa(math.ceil(math.log(int(count), 2)))
return '$S$%s%s%s' % (count, salt, h)
@ -83,12 +83,12 @@ class Drupal7PasswordHasher(hashers.BasePasswordHasher):
assert salt and '$' not in salt
h = salt.encode()
password = password.encode()
for i in range(iterations + 1):
for dummy in range(iterations + 1):
h = self.digest(h + password).digest()
return "%s$%d$%s$%s" % (self.algorithm, iterations, salt, self.b64encode(h)[:43])
def verify(self, password, encoded):
algorithm, iterations, salt, hash = encoded.split('$', 3)
algorithm, iterations, salt, dummy = encoded.split('$', 3)
assert algorithm == self.algorithm
encoded_2 = self.encode(password, salt, int(iterations))
return constant_time_compare(encoded, encoded_2)
@ -121,7 +121,7 @@ class CommonPasswordHasher(hashers.BasePasswordHasher):
return "%s$%s$%s" % (self.algorithm, salt, hash)
def verify(self, password, encoded):
algorithm, salt, hash = encoded.split('$', 2)
algorithm, salt, dummy_hash = encoded.split('$', 2)
assert algorithm == self.algorithm
encoded_2 = self.encode(password, salt)
return constant_time_compare(encoded, encoded_2)
@ -227,7 +227,7 @@ class JoomlaPasswordHasher(CommonPasswordHasher):
return "%s$md5$%s$%s" % (self.algorithm, salt, hash)
def verify(self, password, encoded):
algorithm, subalgo, salt, hash = encoded.split('$', 3)
algorithm, dummy_subalgo, salt, dummy_hash = encoded.split('$', 3)
salt = unhexlify(salt)
if algorithm != self.algorithm:
raise ValueError('not a joomla encoded password')

View File

@ -121,7 +121,7 @@ class Command(BaseCommand):
with tenant_context(tenant):
self.tenant_shown = False
self.output = False
with fake_atomic(faked=self.fake) as faked:
with fake_atomic(faked=self.fake):
self.check_and_repair(options)
if self.fake and self.output:
self.success('Faked!')
@ -233,7 +233,7 @@ class Command(BaseCommand):
if targets_with_duplicates:
self.warning('Found %d manage members permissions with duplicates', len(targets_with_duplicates))
if self.repair:
for operation_id, target_ct_id, target_id in targets_with_duplicates:
for dummy_operation_id, target_ct_id, target_id in targets_with_duplicates:
qs = Permission.objects.filter(target_ct_id=target_ct_id, target_id=target_id)
for perm in qs:
linked_admin_role = Role.objects.get(
@ -245,7 +245,7 @@ class Command(BaseCommand):
self.notice(' - %s: [%s]', target, '; '.join(map(str, qs)))
if self.do_repair():
self.notice('Deleting duplicate manage members permissions...', ending=' ')
for operation_id, target_ct_id, target_id in targets_with_duplicates:
for dummy_operation_id, target_ct_id, target_id in targets_with_duplicates:
qs = Permission.objects.filter(target_ct_id=target_ct_id, target_id=target_id).order_by(
'id'
)

View File

@ -55,5 +55,5 @@ class Command(BaseCommand):
elif verbosity == 3:
ldap_logger.setLevel(logging.DEBUG)
for user in LDAPBackend.get_users():
for dummy in LDAPBackend.get_users():
continue

View File

@ -97,7 +97,7 @@ class LimitQuerysetFormMixin(FormWithRequest):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
if self.request and not self.request.user.is_anonymous:
for name, field in self.fields.items():
for field in self.fields.values():
qs = getattr(field, 'queryset', None)
if not qs:
continue

View File

@ -323,7 +323,7 @@ class RolePermissionsView(RoleViewMixin, views.BaseSubTableView):
action = form.cleaned_data.get('action')
Permission = get_permission_model()
if action == 'add' and operation and target:
perm, created = Permission.objects.get_or_create(
perm, dummy = Permission.objects.get_or_create(
operation=operation,
ou=ou,
target_ct=ContentType.objects.get_for_model(target),

View File

@ -966,7 +966,7 @@ class UserAuthorizationsView(
qs = OIDCAuthorization.objects.filter(user=self.get_object())
qs = qs.filter(id=auth_id.pk)
oidc_authorization = qs.first()
count, cascade = qs.delete()
count, dummy = qs.delete()
if count:
self.request.journal.record(
'manager.user.sso.authorization.deletion',

View File

@ -6,7 +6,7 @@ from django.db import migrations
def create_trigger(apps, schema_editor):
with schema_editor.connection.cursor() as cursor:
cursor.execute('SHOW default_text_search_config')
(default_text_search_config,) = cursor.fetchone()
assert cursor.fetchone()
cursor.execute(
'''CREATE OR REPLACE FUNCTION authentic2_update_atv_search_vector() RETURNS TRIGGER AS $$
BEGIN

View File

@ -82,7 +82,7 @@ class CreatePartialIndexes(Operation):
def database_backwards(self, app_label, schema_editor, from_state, to_state):
if not self.allowed(app_label, schema_editor, to_state):
return
for i, (null_columns, non_null_columns) in enumerate(self.indexes()):
for i in range(self.indexes()):
schema_editor.execute('DROP INDEX IF EXISTS "%s_%s"' % (self.index_name, i))
def describe(self):

View File

@ -421,7 +421,7 @@ class Service(models.Model):
raise ServiceAccessDenied(service=self)
def add_authorized_role(self, role):
authorization, created = AuthorizedRole.objects.get_or_create(service=self, role=role)
authorization, dummy = AuthorizedRole.objects.get_or_create(service=self, role=role)
return authorization
def remove_authorized_role(self, role):

View File

@ -43,7 +43,7 @@ def get_def_name_from_oid(oid):
def get_definition_from_oid(oid):
for key, value in ATTRIBUTE_MAPPING.items():
for value in ATTRIBUTE_MAPPING.values():
if value['oid'] == oid:
return value
@ -55,7 +55,7 @@ def get_full_definition(name):
def get_definition_from_alias(alias):
for key, value in ATTRIBUTE_MAPPING.items():
for value in ATTRIBUTE_MAPPING.values():
if 'alias' in value and alias in value['alias']:
return value

View File

@ -126,7 +126,7 @@ def load_acs(tree, provider, pks, verbosity):
is_required = ra.get(IS_REQUIRED, 'false') == 'true'
if name_format != lasso.SAML2_ATTRIBUTE_NAME_FORMAT_URI:
continue
def_name, defn = resolve_urn_oid(oid)
def_name, dummy = resolve_urn_oid(oid)
if def_name is None:
warnings.warn(
'attribute %s/%s unsupported on service provider %s'

View File

@ -49,7 +49,7 @@ class LibertyFederationManager(models.Manager):
def cleanup(self):
for federation in self.filter(user__isnull=True):
results = federation_delete.send_robust(sender=federation)
for callback, result in results:
for dummy_callback, result in results:
if not result:
return
federation.delete()

View File

@ -526,7 +526,7 @@ def generate_password():
composition = ((2, '23456789'), (6, 'ABCDEFGHJKLMNPQRSTUVWXYZ'), (1, '%$/\\#@!'))
parts = []
for cnt, alphabet in composition:
for i in range(cnt):
for dummy in range(cnt):
parts.append(random.SystemRandom().choice(alphabet))
random.shuffle(parts, random.SystemRandom().random)
return ''.join(parts)
@ -1293,7 +1293,7 @@ def get_remember_cookie(request, name, count=5):
return []
values = []
for i, v in zip(range(count), parsed):
for dummy, v in zip(range(count), parsed):
try:
values.append(int(v))
except ValueError:

View File

@ -85,7 +85,7 @@ class EditProfile(cbv.HookMixin, cbv.TemplateNamesMixin, UpdateView):
@classmethod
def can_edit_profile(cls):
fields, labels = cls.get_fields()
fields, dummy_labels = cls.get_fields()
return bool(fields) and app_settings.A2_PROFILE_CAN_EDIT_PROFILE
@classmethod

View File

@ -27,7 +27,7 @@ class Plugin:
fragments = []
oidc_sessions = get_oidc_sessions(request)
for key, value in oidc_sessions.items():
for value in oidc_sessions.values():
if 'frontchannel_logout_uri' not in value:
continue
ctx = {

View File

@ -824,5 +824,5 @@ def logout(request):
if state:
post_logout_redirect_uri = make_url(post_logout_redirect_uri, params={'state': state})
# FIXME: do something with id_token_hint
id_token_hint = request.GET.get('id_token_hint')
request.GET.get('id_token_hint')
return a2_logout(request, next_url=post_logout_redirect_uri, do_local=False, check_referer=False)

View File

@ -194,7 +194,7 @@ class DjangoRBACBackend:
q.append(Q(ou_id=int(key[3:])))
continue
elif perm_or_perms & value:
ct_id, fk = key.split('.')
dummy_ct_id, fk = key.split('.')
q.append(Q(pk=int(fk)))
if q:
return functools.reduce(Q.__or__, q)

View File

@ -79,7 +79,7 @@ def get_permission_model():
def get_operation(operation_tpl):
from . import models
operation, created = models.Operation.objects.get_or_create(slug=operation_tpl.slug)
operation, dummy = models.Operation.objects.get_or_create(slug=operation_tpl.slug)
return operation

View File

@ -541,8 +541,8 @@ def test_authorization_error(app, franceconnect):
def test_registration_page(settings, app, franceconnect, hooks):
assert User.objects.count() == 0
response = app.get('/accounts/register/?service=portail&next=/idp/')
response = franceconnect.login_with_fc_fixed_params(app)
assert app.get('/accounts/register/?service=portail&next=/idp/')
franceconnect.login_with_fc_fixed_params(app)
# a new user has been created
assert User.objects.count() == 1

View File

@ -121,7 +121,7 @@ def ou_rando(db):
def create_user(**kwargs):
User = get_user_model()
password = kwargs.pop('password', None) or kwargs['username']
user, created = User.objects.get_or_create(**kwargs)
user, dummy = User.objects.get_or_create(**kwargs)
if password:
user.clear_password = password
user.set_password(password)

View File

@ -1290,7 +1290,7 @@ def test_credentials_grant(app, oidc_client, admin, simple_user):
response = app.post(token_url, params=params)
assert 'id_token' in response.json
token = response.json['id_token']
header, payload, signature = token.split('.')
assert len(token.split('.')) == 3
jwt = JWT()
# jwt deserialization implicitly checks the token signature:
jwt.deserialize(token, key=jwk)
@ -1305,7 +1305,7 @@ def test_credentials_grant(app, oidc_client, admin, simple_user):
response = app.post(token_url, params=params, headers=client_authentication_headers(oidc_client))
assert 'id_token' in response.json
token = response.json['id_token']
header, payload, signature = token.split('.')
assert len(token.split('.')) == 3
jwt = JWT()
# jwt deserialization implicitly checks the token signature:
jwt.deserialize(token, key=jwk)
@ -1329,7 +1329,7 @@ def test_credentials_grant_ratelimitation_invalid_client(
'username': simple_user.username,
'password': simple_user.username,
}
for i in range(int(oidc_settings.A2_IDP_OIDC_PASSWORD_GRANT_RATELIMIT.split('/')[0])):
for _ in range(int(oidc_settings.A2_IDP_OIDC_PASSWORD_GRANT_RATELIMIT.split('/')[0])):
response = app.post(token_url, params=params, status=400)
assert response.json['error'] == 'invalid_client'
assert 'Wrong client secret' in response.json['error_description']
@ -1353,7 +1353,7 @@ def test_credentials_grant_ratelimitation_valid_client(
'username': simple_user.username,
'password': simple_user.username,
}
for i in range(int(oidc_settings.A2_IDP_OIDC_PASSWORD_GRANT_RATELIMIT.split('/')[0])):
for _ in range(int(oidc_settings.A2_IDP_OIDC_PASSWORD_GRANT_RATELIMIT.split('/')[0])):
app.post(token_url, params=params)
response = app.post(token_url, params=params, status=400)
assert response.json['error'] == 'invalid_client'

View File

@ -527,7 +527,7 @@ def test_update_content_types_roles(transactional_db, simple_user):
def test_update_self_admin_perm_migration(migration, new_perm_exists):
old_apps = migration.before([('a2_rbac', '0022_auto_20200402_1101')])
Role = old_apps.get_model('a2_rbac', 'Role')
OrganizationalUnit = old_apps.get_model('a2_rbac', 'OrganizationalUnit')
old_apps.get_model('a2_rbac', 'OrganizationalUnit')
Permission = old_apps.get_model('a2_rbac', 'Permission')
Operation = old_apps.get_model('django_rbac', 'Operation')
ContentType = old_apps.get_model('contenttypes', 'ContentType')

View File

@ -305,13 +305,13 @@ class CacheTests(TestCase):
# with cache the same value will come back
g = GlobalCache(f, hostname_vary=False)
values = set()
for x in range(10):
for _ in range(10):
values.add(g())
self.assertEqual(len(values), 1)
# with and hostname vary 10 values will come back
g = GlobalCache(f, hostname_vary=True)
values = set()
for x in range(10):
for _ in range(10):
values.add(g())
self.assertEqual(len(values), 10)
# null timeout, no cache

View File

@ -300,10 +300,10 @@ def test_api_users_update_with_same_unique_email(settings, app, admin, simple_us
'last_name': 'Doeny',
}
headers = basic_authorization_header(admin)
resp = app.put_json(f'/api/users/{simple_user.uuid}/', params=payload, headers=headers, status=200)
user = User.objects.get(id=simple_user.id)
app.put_json(f'/api/users/{simple_user.uuid}/', params=payload, headers=headers, status=200)
User.objects.get(id=simple_user.id)
resp = app.patch_json(f'/api/users/{simple_user.uuid}/', params=payload, headers=headers, status=200)
app.patch_json(f'/api/users/{simple_user.uuid}/', params=payload, headers=headers, status=200)
def test_api_users_create_with_email_verified(settings, app, admin):
@ -344,13 +344,13 @@ def test_api_email_unset_verification(settings, app, admin, simple_user):
'email': 'john.doe@nowhere.null',
}
headers = basic_authorization_header(admin)
resp = app.post_json(f'/api/users/{simple_user.uuid}/email/', params=payload, headers=headers, status=200)
app.post_json(f'/api/users/{simple_user.uuid}/email/', params=payload, headers=headers, status=200)
user = User.objects.get(id=simple_user.id)
assert not user.email_verified
def test_api_users_boolean_attribute(app, superuser):
at = Attribute.objects.create(kind='boolean', name='boolean', label='boolean', required=True)
Attribute.objects.create(kind='boolean', name='boolean', label='boolean', required=True)
superuser.attributes.boolean = True
app.authorization = ('Basic', (superuser.username, superuser.username))
resp = app.get('/api/users/%s/' % superuser.uuid)
@ -358,7 +358,7 @@ def test_api_users_boolean_attribute(app, superuser):
def test_api_users_boolean_attribute_optional(app, superuser):
at = Attribute.objects.create(kind='boolean', name='boolean', label='boolean', required=False)
Attribute.objects.create(kind='boolean', name='boolean', label='boolean', required=False)
superuser.attributes.boolean = True
app.authorization = ('Basic', (superuser.username, superuser.username))
resp = app.get('/api/users/%s/' % superuser.uuid)
@ -370,7 +370,7 @@ def test_api_users_list_by_authorized_service(app, superuser):
user1 = User.objects.create(username='user1')
user2 = User.objects.create(username='user2')
user3 = User.objects.create(username='user3')
User.objects.create(username='user3')
role1 = Role.objects.create(name='role1')
role2 = Role.objects.create(name='role2')
@ -381,7 +381,7 @@ def test_api_users_list_by_authorized_service(app, superuser):
service1 = Service.objects.create(ou=get_default_ou(), name='service1', slug='service1')
service1.add_authorized_role(role1)
service2 = Service.objects.create(ou=get_default_ou(), name='service2', slug='service2')
Service.objects.create(ou=get_default_ou(), name='service2', slug='service2')
resp = app.get('/api/users/')
assert len(resp.json['results']) == 4
@ -411,7 +411,7 @@ def test_api_member_users_list_by_authorized_service(app, superuser, simple_role
service1 = Service.objects.create(ou=get_default_ou(), name='service1', slug='service1')
service1.add_authorized_role(role1)
service2 = Service.objects.create(ou=get_default_ou(), name='service2', slug='service2')
Service.objects.create(ou=get_default_ou(), name='service2', slug='service2')
for user in superuser, user1, user2, user3:
simple_role.members.add(user)
@ -958,7 +958,7 @@ def test_api_role_set_empty_members(app, api_user):
if not api_user.has_perm('a2_rbac.manage_members_role', role):
status = 403
resp = app.put_json(f'/api/roles/{role.uuid}/relationships/members/', params={'data': []}, status=status)
app.put_json(f'/api/roles/{role.uuid}/relationships/members/', params={'data': []}, status=status)
if api_user.has_perm('a2_rbac.manage_members_role', role):
assert len(role.members.all()) == 0
else:
@ -1128,7 +1128,7 @@ def test_register_ou_no_email_validation(settings, app, admin, django_user_model
def test_user_synchronization(app, simple_user):
headers = basic_authorization_header(simple_user)
uuids = []
for i in range(100):
for _ in range(100):
user = User.objects.create(first_name='ben', last_name='dauve')
uuids.append(user.uuid)
unknown_uuids = [uuid.uuid4().hex for i in range(100)]
@ -1532,7 +1532,7 @@ def test_api_get_role_member_list(app, admin_ou1, user_ou1, role_ou1, role_rando
def test_no_opened_session_cookie_on_api(app, user, settings):
settings.A2_OPENED_SESSION_COOKIE_DOMAIN = 'testserver.local'
app.authorization = ('Basic', (user.username, user.username))
resp = app.get('/api/users/')
app.get('/api/users/')
assert 'A2_OPENED_SESSION' not in app.cookies
@ -1904,8 +1904,8 @@ def test_api_users_optional_date_attributes(settings, app, admin, simple_user):
'last_name': 'Doe',
}
headers = basic_authorization_header(admin)
resp = app.put_json(f'/api/users/{simple_user.uuid}/', params=payload, headers=headers, status=200)
resp = app.get(f'/api/users/{simple_user.uuid}/', headers=headers, status=200)
app.put_json(f'/api/users/{simple_user.uuid}/', params=payload, headers=headers, status=200)
app.get(f'/api/users/{simple_user.uuid}/', headers=headers, status=200)
payload['prefered_color'] = None
payload['date'] = None
payload['birthdate'] = None
@ -1913,8 +1913,8 @@ def test_api_users_optional_date_attributes(settings, app, admin, simple_user):
payload['prefered_color'] = ''
payload['date'] = ''
payload['birthdate'] = ''
resp = app.put_json(f'/api/users/{simple_user.uuid}/', params=payload, headers=headers, status=200)
resp = app.get(f'/api/users/{simple_user.uuid}/', headers=headers, status=200)
app.put_json(f'/api/users/{simple_user.uuid}/', params=payload, headers=headers, status=200)
app.get(f'/api/users/{simple_user.uuid}/', headers=headers, status=200)
payload['prefered_color'] = None
payload['date'] = None
payload['birthdate'] = None
@ -2104,7 +2104,7 @@ def test_find_duplicates_ou(app, admin, settings, ou1):
app.authorization = ('Basic', (admin.username, admin.username))
user = User.objects.create(first_name='Jean', last_name='Dupont', ou=get_default_ou())
homonym = User.objects.create(first_name='Jean', last_name='Dupont', ou=ou1)
User.objects.create(first_name='Jean', last_name='Dupont', ou=ou1)
params = {
'first_name': 'Jeanne',
@ -2293,15 +2293,15 @@ def test_api_password_change_user_delete(app, settings, admin, ou1):
'new_password': 'password2',
}
url = reverse('a2-api-password-change')
response = app.post_json(url, params=payload, status=400)
app.post_json(url, params=payload, status=400)
user2.delete()
response = app.post_json(url, params=payload)
app.post_json(url, params=payload)
assert User.objects.get(username='john.doe').check_password('password2')
def test_api_users_delete(settings, app, admin, simple_user):
headers = basic_authorization_header(admin)
resp = app.delete_json(f'/api/users/{simple_user.uuid}/', headers=headers)
app.delete_json(f'/api/users/{simple_user.uuid}/', headers=headers)
assert not User.objects.filter(pk=simple_user.pk).exists()
assert_event('manager.user.deletion', user=admin, api=True)
@ -2382,7 +2382,7 @@ def test_api_statistics_list(app, admin):
assert login_stats in resp.json['data']
# same goes with users
user = User.objects.create(username='john.doe', email='john.doe@example.com', ou=ou)
User.objects.create(username='john.doe', email='john.doe@example.com', ou=ou)
login_stats['filters'].append(
{
'id': 'users_ou',
@ -2419,12 +2419,12 @@ def test_api_statistics(app, admin, freezer, event_type_name, event_name):
event_type = EventType.objects.get_for_name(event_type_name)
freezer.move_to('2020-02-03 12:00')
event = Event.objects.create(type=event_type, references=[portal], data=method)
event = Event.objects.create(type=event_type, references=[agendas, user], user=user, data=method)
Event.objects.create(type=event_type, references=[portal], data=method)
Event.objects.create(type=event_type, references=[agendas, user], user=user, data=method)
freezer.move_to('2020-03-04 13:00')
event = Event.objects.create(type=event_type, references=[agendas], data=method)
event = Event.objects.create(type=event_type, references=[portal], data=method2)
Event.objects.create(type=event_type, references=[agendas], data=method)
Event.objects.create(type=event_type, references=[portal], data=method2)
resp = app.get('/api/statistics/%s/?time_interval=month' % event_name, headers=headers)
data = resp.json['data']
@ -2531,7 +2531,7 @@ def test_api_statistics(app, admin, freezer, event_type_name, event_name):
def test_api_statistics_no_crash_older_drf(app, admin):
headers = basic_authorization_header(admin)
expected_status = 200 if drf_version > '3.9' else 404
resp = app.get('/api/statistics/login/?time_interval=month', headers=headers, status=expected_status)
app.get('/api/statistics/login/?time_interval=month', headers=headers, status=expected_status)
def test_find_duplicates_put(app, admin, settings):

View File

@ -473,7 +473,7 @@ def test_birthdate_api(db, app, admin, mailoutbox, freezer):
'last_name': 'Doe',
'birthdate': '2017-12-31',
}
response = app.post_json('/api/users/', params=payload)
app.post_json('/api/users/', params=payload)
assert qs.get().attributes.birthdate == datetime.date(2017, 12, 31)
qs.delete()

View File

@ -258,9 +258,9 @@ def test_login_autorun(db, app, settings):
def test_save_account_on_delete_user(db):
user = User.objects.create()
issuer1, created = Issuer.objects.get_or_create(entity_id='https://idp1.com/')
issuer1, _ = Issuer.objects.get_or_create(entity_id='https://idp1.com/')
UserSAMLIdentifier.objects.create(user=user, issuer=issuer1, name_id='1234')
issuer2, created = Issuer.objects.get_or_create(entity_id='https://idp2.com/')
issuer2, _ = Issuer.objects.get_or_create(entity_id='https://idp2.com/')
UserSAMLIdentifier.objects.create(user=user, issuer=issuer2, name_id='4567')
user.delete()
@ -284,7 +284,7 @@ def test_manager_user_sidebar(app, superuser, simple_user):
response = app.get('/manage/users/%s/' % simple_user.id)
assert 'SAML' not in response
issuer1, created = Issuer.objects.get_or_create(entity_id='https://idp1.com/')
issuer1, _ = Issuer.objects.get_or_create(entity_id='https://idp1.com/')
UserSAMLIdentifier.objects.create(user=simple_user, issuer=issuer1, name_id='1234')
response = app.get('/manage/users/%s/' % simple_user.id)

View File

@ -285,7 +285,7 @@ def test_check_and_repair_managers_of_roles(db, capsys):
default_ou = get_default_ou()
admin_op = get_operation(ADMIN_OP)
ou1 = get_ou_model().objects.create(name='Orgunit1', slug='orgunit1')
get_ou_model().objects.create(name='Orgunit1', slug='orgunit1')
role1 = Role.objects.create(name='Role 1', slug='role-1', ou=default_ou)
perm1 = Permission.objects.create(
operation=admin_op,
@ -362,15 +362,9 @@ def test_check_identifiers_uniqueness(db, capsys, settings):
ou.email_is_unique = True
ou.save()
user1 = User.objects.create(
username='foo', email='foo@example.net', first_name='Toto', last_name='Foo', ou=ou
)
user2 = User.objects.create(
username='foo', email='bar@example.net', first_name='Bar', last_name='Foo', ou=ou
)
user3 = User.objects.create(
username='bar', email='bar@example.net', first_name='Tutu', last_name='Bar', ou=ou
)
User.objects.create(username='foo', email='foo@example.net', first_name='Toto', last_name='Foo', ou=ou)
User.objects.create(username='foo', email='bar@example.net', first_name='Bar', last_name='Foo', ou=ou)
User.objects.create(username='bar', email='bar@example.net', first_name='Tutu', last_name='Bar', ou=ou)
settings.A2_EMAIL_IS_UNIQUE = True
settings.A2_USERNAME_IS_UNIQUE = True

View File

@ -37,7 +37,7 @@ def test_attribute_value_uniqueness(transactional_db, simple_user, concurrency,
AttributeValue.objects.all().delete()
for i in range(10):
for _ in range(10):
def map_threads(f, l):
threads = []

View File

@ -26,7 +26,7 @@ key = b'1234'
def test_idempotency():
for i in range(10):
for _ in range(10):
s = force_bytes(str(random.getrandbits(1024)))
assert crypto.aes_base64_decrypt(key, crypto.aes_base64_encrypt(key, s)) == s

View File

@ -523,7 +523,7 @@ def test_user_roles_csv(profile, user_csv_importer_factory):
thomas.roles.remove(role)
content_only_key = '''email key,_role_name
tnoel@entrouvert.com,test_name'''
importer = user_csv_importer_factory(content_slug_add)
importer = user_csv_importer_factory(content_only_key)
assert importer.run()
thomas.refresh_from_db()
assert thomas in role.members.all()

View File

@ -168,7 +168,7 @@ def test_role_deserializer_with_ou(db):
},
ImportContext(),
)
role, status = rd.deserialize()
role, dummy = rd.deserialize()
assert role.ou == ou
@ -198,7 +198,7 @@ def test_role_deserializer_update_ou(db):
{'uuid': uuid, 'name': 'some-role', 'slug': 'some-role', 'ou': {'slug': 'ou-2'}, 'service': None},
ImportContext(),
)
role, status = rd.deserialize()
assert rd.deserialize()
existing_role.refresh_from_db()
assert existing_role.ou == ou2
assert Role.objects.exclude(slug__startswith='_').count() == 1
@ -212,7 +212,7 @@ def test_role_deserializer_update_fields(db):
{'uuid': uuid, 'slug': 'some-role', 'name': 'some role changed', 'ou': None, 'service': None},
ImportContext(),
)
role, status = rd.deserialize()
role, dummy = rd.deserialize()
existing_role.refresh_from_db()
assert role == existing_role
assert existing_role.name == 'some role changed'
@ -238,7 +238,7 @@ def test_role_deserializer_with_attributes(db):
ImportContext(),
)
role, status = rd.deserialize()
created, deleted = rd.attributes()
created, dummy = rd.attributes()
assert status == 'created'
assert role.attributes.count() == 2
assert len(created) == 2
@ -284,7 +284,7 @@ def test_role_deserializer_parenting_existing_parent(db):
rd = RoleDeserializer(child_role_dict, ImportContext())
child_role, status = rd.deserialize()
created, deleted = rd.parentings()
created, dummy = rd.parentings()
assert status == 'created'
assert len(created) == 1
@ -395,7 +395,7 @@ def test_permission_on_role(db):
import_context = ImportContext()
rd = RoleDeserializer(some_role_dict, import_context)
rd.deserialize()
perm_created, perm_deleted = rd.permissions()
perm_created, dummy = rd.permissions()
assert len(perm_created) == 1
perm = perm_created[0]
assert perm.target == perm_role
@ -418,7 +418,7 @@ def test_permission_on_contentype(db):
import_context = ImportContext()
rd = RoleDeserializer(some_role_dict, import_context)
rd.deserialize()
perm_created, perm_deleted = rd.permissions()
perm_created, dummy = rd.permissions()
assert len(perm_created) == 1
perm = perm_created[0]
assert perm.target.app_label == 'admin'
@ -534,7 +534,7 @@ def test_import_roles_role_delete_orphans(db):
def test_roles_import_no_slug(db):
roles = [{'name': 'some role', 'description': 'some role description', 'ou': None}]
res = import_site({'roles': roles}, ImportContext())
import_site({'roles': roles}, ImportContext())
role = Role.objects.get(name='some role')
assert role.slug == 'some-role'

View File

@ -130,7 +130,7 @@ class CasTests(Authentic2TestCase):
response = client.get('/idp/cas/login', {constants.SERVICE_PARAM: self.URL})
location = response['Location']
query = urllib.parse.parse_qs(location.split('?')[1])
next_url, next_url_query = query['next'][0].split('?')
dummy_next_url, next_url_query = query['next'][0].split('?')
next_url_query = urllib.parse.parse_qs(next_url_query)
response = client.get(location)
response = client.post(
@ -150,7 +150,7 @@ class CasTests(Authentic2TestCase):
response = client.get('/idp/cas/login', {constants.SERVICE_PARAM: self.URL})
location = response['Location']
query = urllib.parse.parse_qs(location.split('?')[1])
next_url, next_url_query = query['next'][0].split('?')
dummy_next_url, next_url_query = query['next'][0].split('?')
next_url_query = urllib.parse.parse_qs(next_url_query)
response = client.get(location)
response = client.post(

View File

@ -968,7 +968,7 @@ Mx3n8844pJwgxhTB7Gjuboptlz9Hri8JRdXiVT9OS9Wt69ubcNoM6zuKASmtm48U
uGnhj8v6XwvbjKZrL9kA+xf8ziazZfvvw/VGTm+IVFYB7d1x457jY5zjjXJvNyso
owIDAQAB
-----END PUBLIC KEY-----'''
response = app.get('/idp/saml2/metadata')
app.get('/idp/saml2/metadata')
def test_null_character_nonce(app, db):

View File

@ -49,7 +49,7 @@ def test_export_role_cmd_stdout(db, capsys, monkeypatch):
monkeypatch.setattr(authentic2.management.commands.export_site, 'export_site', dummy_export_site)
management.call_command('export_site')
out, err = capsys.readouterr()
out, dummy = capsys.readouterr()
assert json.loads(out) == dummy_export_site()
@ -82,7 +82,7 @@ def test_import_site_cmd_infos_on_stdout(db, monkeypatch, capsys, json_fixture):
management.call_command('import_site', json_fixture(content))
out, err = capsys.readouterr()
out, dummy = capsys.readouterr()
assert "Real run" in out
assert "1 roles created" in out
assert "0 roles updated" in out
@ -175,7 +175,7 @@ def test_import_site_confirm_prompt_yes(db, monkeypatch, json_fixture):
def test_import_site_update_roles(db, json_fixture):
r1 = Role.objects.create(name='Role1', slug='role1')
r2 = Role.objects.create(name='Role2', slug='role2')
Role.objects.create(name='Role2', slug='role2')
content = {
'roles': [

View File

@ -169,7 +169,7 @@ def test_event_types(clean_event_types_definition_registry):
assert EventTypeDefinition.get_for_name('user.sso') is SSO
with pytest.raises(AssertionError, match='already registered'):
# pylint: disable=unused-variable
class SSO2(UserEventTypes):
name = 'user.sso'
label = 'Single Sign On'
@ -209,7 +209,7 @@ def random_events(db):
for name in 'abcdef':
event_types.append(EventType.objects.create(name=name))
for i in range(count):
for _ in range(count):
events.append(
Event(
type=random.choice(event_types),
@ -371,7 +371,7 @@ def user_events(db, some_event_types):
journal.record('user.registration', how='fc')
journal.record('user.logout')
for i in range(count):
for _ in range(count):
journal.record('user.login', how='fc')
journal.record('user.logout')
@ -480,18 +480,18 @@ def test_statistics(db, event_type_name, freezer):
assert stats == {'series': [], 'x_labels': []}
freezer.move_to('2020-02-03 12:00')
event = Event.objects.create(type=event_type, references=[user, portal], user=user, data=method)
event = Event.objects.create(type=event_type, references=[user2, portal], user=user2, data=method)
Event.objects.create(type=event_type, references=[user, portal], user=user, data=method)
Event.objects.create(type=event_type, references=[user2, portal], user=user2, data=method)
freezer.move_to('2020-02-03 13:00')
event = Event.objects.create(type=event_type, references=[user, portal], user=user, data=method2)
event = Event.objects.create(type=event_type, references=[user2, portal], user=user2, data=method2)
Event.objects.create(type=event_type, references=[user, portal], user=user, data=method2)
Event.objects.create(type=event_type, references=[user2, portal], user=user2, data=method2)
freezer.move_to('2020-03-03 12:00')
event = Event.objects.create(type=event_type, references=[user, portal], user=user, data=method)
event = Event.objects.create(type=event_type, references=[user, agendas], user=user, data=method)
event = Event.objects.create(type=event_type, references=[user, forms], user=user, data=method)
event = Event.objects.create(type=event_type, user=user)
Event.objects.create(type=event_type, references=[user, portal], user=user, data=method)
Event.objects.create(type=event_type, references=[user, agendas], user=user, data=method)
Event.objects.create(type=event_type, references=[user, forms], user=user, data=method)
Event.objects.create(type=event_type, user=user)
stats = event_type_definition.get_method_statistics('timestamp')
stats['series'].sort(key=lambda x: x['label'])
@ -597,14 +597,14 @@ def test_statistics(db, event_type_name, freezer):
def test_statistics_fill_date_gaps(db, freezer):
user = User.objects.create(username='john.doe', email='john.doe@example.com')
User.objects.create(username='john.doe', email='john.doe@example.com')
method = {'how': 'password-on-https'}
event_type = EventType.objects.get_for_name('user.login')
freezer.move_to('2020-12-29 12:00')
event = Event.objects.create(type=event_type, data=method)
Event.objects.create(type=event_type, data=method)
freezer.move_to('2021-01-02 13:00')
event = Event.objects.create(type=event_type, data=method)
Event.objects.create(type=event_type, data=method)
event_type_definition = event_type.definition
@ -616,9 +616,9 @@ def test_statistics_fill_date_gaps(db, freezer):
Event.objects.all().delete()
freezer.move_to('2020-11-29 12:00')
event = Event.objects.create(type=event_type, data=method)
Event.objects.create(type=event_type, data=method)
freezer.move_to('2022-02-02 13:00')
event = Event.objects.create(type=event_type, data=method)
Event.objects.create(type=event_type, data=method)
stats = event_type_definition.get_method_statistics('month')
assert stats == {
'x_labels': ['2020-11', '2020-12'] + ['2021-%02d' % i for i in range(1, 13)] + ['2022-01', '2022-02'],
@ -627,9 +627,9 @@ def test_statistics_fill_date_gaps(db, freezer):
Event.objects.all().delete()
freezer.move_to('2020-11-29 12:00')
event = Event.objects.create(type=event_type, data=method)
Event.objects.create(type=event_type, data=method)
freezer.move_to('2025-02-02 13:00')
event = Event.objects.create(type=event_type, data=method)
Event.objects.create(type=event_type, data=method)
stats = event_type_definition.get_method_statistics('year')
assert stats == {
'x_labels': ['2020', '2021', '2022', '2023', '2024', '2025'],
@ -647,8 +647,8 @@ def test_statistics_deleted_service(db, freezer):
event_type_definition = event_type.definition
freezer.move_to('2020-02-03 12:00')
event = Event.objects.create(type=event_type, references=[user, portal], user=user, data=method)
event = Event.objects.create(type=event_type, references=[user], user=user, data=method)
Event.objects.create(type=event_type, references=[user, portal], user=user, data=method)
Event.objects.create(type=event_type, references=[user], user=user, data=method)
stats = event_type_definition.get_service_statistics('month')
stats['series'].sort(key=lambda x: x['label'])
@ -671,7 +671,7 @@ def test_statistics_ou_with_no_service(db, freezer):
event_type = EventType.objects.get_for_name('user.login')
event_type_definition = event_type.definition
event = Event.objects.create(type=event_type, references=[user, portal], user=user, data=method)
Event.objects.create(type=event_type, references=[user, portal], user=user, data=method)
ou_with_no_service = OU.objects.create(name='Second OU')
stats = event_type_definition.get_method_statistics('month', services_ou=ou_with_no_service)
@ -680,7 +680,7 @@ def test_statistics_ou_with_no_service(db, freezer):
def test_prefetcher(db):
event_type = EventType.objects.get_for_name('user.login')
for i in range(10):
for _ in range(10):
user = User.objects.create()
Event.objects.create(type=event_type, user=user, references=[user])
Event.objects.create(type=event_type, user=user, references=[user])

View File

@ -38,7 +38,7 @@ def large_userbase(db, freezer):
fake = faker.Faker(locale='fr_FR')
faker.Faker.seed(0)
for i in range(100):
for _ in range(100):
User.objects.bulk_create(
User(
first_name=fake.first_name() + ' ' + fake.first_name(),
@ -73,7 +73,7 @@ def test_large_userbase_find_duplicates(large_userbase, app, admin):
'last_name': user.last_name,
}
for i in range(100):
for _ in range(100):
resp = app.get('/api/users/find_duplicates/', params=params)
assert len(resp.json['data']) >= 1
@ -88,6 +88,6 @@ def test_large_userbase_find_duplicates_with_birthdate(large_userbase, app, admi
'birthdate': str(user.attributes.birthdate),
}
for i in range(100):
for _ in range(100):
resp = app.get('/api/users/find_duplicates/', params=params)
assert len(resp.json['data']) >= 1

View File

@ -1808,7 +1808,7 @@ def test_alert_on_wrong_user_filter(slapd, settings, client, db, caplog):
}
]
with utils.check_log(caplog, "account name authentication filter doesn't contain '%s'"):
response = client.post(
client.post(
'/login/', {'login-password-submit': '1', 'username': USERNAME, 'password': PASS}, follow=True
)

View File

@ -178,7 +178,7 @@ def test_manager_stress_create_user(superuser_or_admin, app, mailoutbox):
assert len(mailoutbox) == 0
assert User.objects.filter(ou_id=new_ou.id).count() == 0
for i in range(100):
for _ in range(100):
ou_add = login(app, superuser_or_admin, url)
form = ou_add.form
form.set('first_name', 'John')
@ -426,7 +426,7 @@ def test_manager_many_ou(app, superuser, admin, simple_role, role_ou1, admin_ou1
field = response.form['search-ou']
options = field.options
assert len(options) == 4
for key, checked, label in options:
for key, checked, _ in options:
assert not checked or key == 'all'
assert 'all' in [o[0] for o in options]
assert 'none' in [o[0] for o in options]
@ -441,7 +441,7 @@ def test_manager_many_ou(app, superuser, admin, simple_role, role_ou1, admin_ou1
field = response.form['search-ou']
options = field.options
assert len(options) == 4
for key, checked, label in options:
for key, checked, dummy in options:
assert not checked or key == str(get_default_ou().pk)
q = response.pyquery.remove_namespaces()
assert len(q('table tbody tr')) == 1
@ -487,7 +487,7 @@ def test_manager_many_ou(app, superuser, admin, simple_role, role_ou1, admin_ou1
field = response.form['search-ou']
options = field.options
assert len(options) == 4
for key, checked, label in options:
for key, checked, _ in options:
if key == 'all':
assert checked
else:
@ -536,7 +536,7 @@ def test_manager_many_ou(app, superuser, admin, simple_role, role_ou1, admin_ou1
options = field.options
assert len(options) == 1
# ou1 is selected
key, checked, label = options[0]
key, checked, _ = options[0]
assert checked
assert key == str(ou1.pk)
# verify table shown
@ -551,7 +551,7 @@ def test_manager_many_ou(app, superuser, admin, simple_role, role_ou1, admin_ou1
field = response.form['search-ou']
options = field.options
assert len(options) == 1
key, checked, label = options[0]
key, checked, dummy = options[0]
assert checked
assert key == str(ou1.pk)
q = response.pyquery.remove_namespaces()
@ -572,7 +572,7 @@ def test_manager_many_ou(app, superuser, admin, simple_role, role_ou1, admin_ou1
field = response.form['search-ou']
options = field.options
assert len(options) == 1
key, checked, label = options[0]
key, checked, _ = options[0]
assert checked
assert key == str(ou1.pk)
q = response.pyquery.remove_namespaces()
@ -604,7 +604,7 @@ def test_manager_many_ou_auto_admin_role(app, ou1, admin, user_with_auto_admin_r
field = response.form['search-ou']
options = field.options
assert len(options) == 1
key, checked, label = options[0]
key, checked, _ = options[0]
assert checked
assert key == str(ou1.pk)
q = response.pyquery.remove_namespaces()
@ -625,7 +625,7 @@ def test_manager_many_ou_auto_admin_role(app, ou1, admin, user_with_auto_admin_r
field = response.form['search-ou']
options = field.options
assert len(options) == 1
key, checked, label = options[0]
key, checked, dummy = options[0]
assert checked
assert key == str(ou1.pk)
q = response.pyquery.remove_namespaces()
@ -1128,7 +1128,7 @@ def test_manager_role_inheritance_list(app, admin, simple_role, ou1, relation):
def test_manager_role_inheritance_list_search_permission(app, admin, simple_user, simple_role, ou1):
visible_role = Role.objects.create(name='visible_role', ou=simple_user.ou)
visible_role_2 = Role.objects.create(name='visible_role_2', ou=ou1)
invisible_role = Role.objects.create(name='invisible_role', ou=simple_user.ou)
Role.objects.create(name='invisible_role', ou=simple_user.ou)
admin_of_simple_role = simple_role.get_admin_role()
admin_of_simple_role.members.add(simple_user)

View File

@ -151,7 +151,7 @@ def test_manager_role_import(app, admin, ou1, role_ou1, ou2, role_ou2):
assert Role.objects.filter(name=role_ou2.name, ou=get_default_ou()).exists()
response.form.set('search-text', 'role_ou1')
search_response = response.form.submit()
response.form.submit()
export_response = response.click('Export')
new_export = export_response.json

View File

@ -121,7 +121,7 @@ def test_service_in_template(app, simple_user, service):
resp.form.set('username', simple_user.username)
resp.form.set('password', simple_user.username)
response = resp.form.submit(name='login-password-submit')
resp.form.submit(name='login-password-submit')
resp = app.get(reverse('account_management'))
assert resp.pyquery('body').attr('data-service-slug') == service.slug

View File

@ -361,7 +361,7 @@ def test_export_csv_search(settings, app, superuser):
users = [User(username='user%s' % i) for i in range(10)]
User.objects.bulk_create(users)
response = login(app, superuser)
login(app, superuser)
resp = app.get('/manage/users/?search-text=user1')
resp = resp.click('CSV').follow()
resp = resp.click('Download CSV')

View File

@ -116,7 +116,7 @@ def assert_equals_url(url1, url2, **kwargs):
def assert_redirects_complex(response, expected_url, **kwargs):
assert response.status_code == 302, 'code should be 302'
scheme, netloc, path, query, fragment = urllib.parse.urlsplit(response.url)
scheme, netloc, _, _, _ = urllib.parse.urlsplit(response.url)
e_scheme, e_netloc, e_path, e_query, e_fragment = urllib.parse.urlsplit(expected_url)
e_scheme = e_scheme if e_scheme else scheme
e_netloc = e_netloc if e_netloc else netloc
@ -249,7 +249,7 @@ def run_on_commit_hooks():
current_run_on_commit = connection.run_on_commit
connection.run_on_commit = []
while current_run_on_commit:
sids, func = current_run_on_commit.pop(0)
_, func = current_run_on_commit.pop(0)
func()