misc: fix unused-variable pylint error (#56982)
This commit is contained in:
parent
f3e5f4dab6
commit
e0b86a7691
|
@ -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)
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)}))
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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')
|
||||
|
|
|
@ -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'
|
||||
)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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),
|
||||
|
|
|
@ -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',
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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):
|
||||
|
|
|
@ -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):
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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'
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 = {
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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'
|
||||
|
|
|
@ -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')
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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):
|
||||
|
|
|
@ -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()
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 = []
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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'
|
||||
|
||||
|
|
|
@ -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(
|
||||
|
|
|
@ -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):
|
||||
|
|
|
@ -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': [
|
||||
|
|
|
@ -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])
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
)
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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')
|
||||
|
|
|
@ -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()
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue