From a265c6267e75c831b8294a760f94b9d6cffb92ea Mon Sep 17 00:00:00 2001 From: Benjamin Dauvergne Date: Tue, 4 May 2021 11:32:22 +0200 Subject: [PATCH 1/2] misc: remove unicode prefixed strings (#53714) --- doc/advanced.rst | 2 +- doc/conf.py | 12 +- src/authentic2/a2_rbac/models.py | 2 +- src/authentic2/api_views.py | 2 +- src/authentic2/attribute_kinds.py | 4 +- .../attributes_ng/sources/django_user.py | 20 +-- .../attributes_ng/sources/service_roles.py | 2 +- src/authentic2/backends/ldap_backend.py | 20 +-- src/authentic2/backends/models_backend.py | 2 +- src/authentic2/data_transfer.py | 2 +- src/authentic2/decorators.py | 2 +- .../disco_service/disco_responder.py | 2 +- src/authentic2/exponential_retry_timeout.py | 2 +- src/authentic2/forms/fields.py | 2 +- src/authentic2/forms/widgets.py | 8 +- src/authentic2/idp/saml/saml2_endpoints.py | 14 +- src/authentic2/manager/forms.py | 2 +- src/authentic2/manager/resources.py | 2 +- src/authentic2/manager/user_views.py | 4 +- src/authentic2/manager/utils.py | 2 +- src/authentic2/manager/views.py | 2 +- src/authentic2/manager/widgets.py | 2 +- src/authentic2/models.py | 2 +- src/authentic2/saml/admin.py | 4 +- src/authentic2/saml/models.py | 2 +- src/authentic2/utils/__init__.py | 6 +- src/authentic2/views.py | 2 +- src/authentic2_idp_cas/models.py | 4 +- src/authentic2_idp_oidc/utils.py | 2 +- src/django_rbac/models.py | 4 +- tests/test_a2_rbac.py | 14 +- tests/test_attribute_kinds.py | 8 +- tests/test_auth_oidc.py | 8 +- tests/test_commands.py | 2 +- tests/test_crypto.py | 6 +- tests/test_customfields.py | 2 +- tests/test_data_transfer.py | 8 +- tests/test_ldap.py | 146 +++++++++--------- tests/test_login.py | 18 +-- tests/test_manager.py | 18 +-- tests/test_registration.py | 20 +-- tests/test_user_manager.py | 32 ++-- tests/utils.py | 2 +- 43 files changed, 211 insertions(+), 211 deletions(-) diff --git a/doc/advanced.rst b/doc/advanced.rst index 75c74009..aa4acf87 100644 --- a/doc/advanced.rst +++ b/doc/advanced.rst @@ -80,7 +80,7 @@ must be changed to::: :: - u'auth.user': { + 'auth.user': { 'meta': {'object_name': 'User', must be rewritten like that::: diff --git a/doc/conf.py b/doc/conf.py index c2983371..aa0f846e 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -48,8 +48,8 @@ source_suffix = '.rst' master_doc = 'index' # General information about the project. -project = u'Authentic 2' -copyright = u'2012, 2011, 2010, Entr\'ouvert' +project = 'Authentic 2' +copyright = '2012, 2011, 2010, Entr\'ouvert' # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the @@ -189,7 +189,7 @@ latex_elements = { # Grouping the document tree into LaTeX files. List of tuples # (source start file, target name, title, author, documentclass [howto/manual]). latex_documents = [ - ('index', 'Authentic2.tex', u'Authentic2 Documentation', u'Entr\'ouvert', 'manual'), + ('index', 'Authentic2.tex', 'Authentic2 Documentation', 'Entr\'ouvert', 'manual'), ] # The name of an image file (relative to this directory) to place at the top of @@ -217,7 +217,7 @@ latex_logo = 'pictures/eo_logo.png' # One entry per manual page. List of tuples # (source start file, name, description, authors, manual section). -man_pages = [('index', 'authentic2', u'Authentic2 Documentation', [u'Mikaël Ates'], 1)] +man_pages = [('index', 'authentic2', 'Authentic2 Documentation', [u'Mikaël Ates'], 1)] # If true, show URL addresses after external links. # man_show_urls = False @@ -232,8 +232,8 @@ texinfo_documents = [ ( 'index', 'Authentic2', - u'Authentic2 Documentation', - u'Mikaël Ates', + 'Authentic2 Documentation', + 'Mikaël Ates', 'Authentic2', 'One line description of project.', 'Miscellaneous', diff --git a/src/authentic2/a2_rbac/models.py b/src/authentic2/a2_rbac/models.py index f8dcd74d..068db9dc 100644 --- a/src/authentic2/a2_rbac/models.py +++ b/src/authentic2/a2_rbac/models.py @@ -394,7 +394,7 @@ class RoleParenting(RoleParentingAbstractBase): verbose_name_plural = _('role parenting relations') def __str__(self): - return u'{0} {1}> {2}'.format(self.parent.name, '-' if self.direct else '~', self.child.name) + return '{0} {1}> {2}'.format(self.parent.name, '-' if self.direct else '~', self.child.name) class RoleAttribute(models.Model): diff --git a/src/authentic2/api_views.py b/src/authentic2/api_views.py index ce3a275a..3728bf12 100644 --- a/src/authentic2/api_views.py +++ b/src/authentic2/api_views.py @@ -446,7 +446,7 @@ class BaseUserSerializer(serializers.ModelSerializer): ) except smtplib.SMTPException as e: logging.getLogger(__name__).error( - u'registration mail could not be sent to user %s ' 'created through API: %s', instance, e + 'registration mail could not be sent to user %s ' 'created through API: %s', instance, e ) return instance diff --git a/src/authentic2/attribute_kinds.py b/src/authentic2/attribute_kinds.py index e30e5a02..9a0156cd 100644 --- a/src/authentic2/attribute_kinds.py +++ b/src/authentic2/attribute_kinds.py @@ -224,7 +224,7 @@ def profile_image_deserialize(name): def profile_image_html_value(attribute, value): if value: - fragment = u'' % (value.url, attribute.name, value.url) + fragment = '' % (value.url, attribute.name, value.url) return html.mark_safe(fragment) return '' @@ -349,7 +349,7 @@ def get_choices(): def only_digits(value): - return u''.join(x for x in value if x in string.digits) + return ''.join(x for x in value if x in string.digits) def validate_lun(value): diff --git a/src/authentic2/attributes_ng/sources/django_user.py b/src/authentic2/attributes_ng/sources/django_user.py index af9f190a..565af665 100644 --- a/src/authentic2/attributes_ng/sources/django_user.py +++ b/src/authentic2/attributes_ng/sources/django_user.py @@ -38,23 +38,23 @@ def get_attribute_names(instance, ctx): if field.name == 'ou': continue name = 'django_user_' + str(field.name) - description = field.verbose_name + u' (%s)' % name + description = field.verbose_name + ' (%s)' % name yield name, description - yield 'django_user_ou_uuid', _('OU UUIDs') + u' (django_user_ou_uuid)' - yield 'django_user_ou_slug', _('OU slug') + u' (django_user_ou_slug)' - yield 'django_user_ou_name', _('OU name') + u' (django_user_ou_name)' + yield 'django_user_ou_uuid', _('OU UUIDs') + ' (django_user_ou_uuid)' + yield 'django_user_ou_slug', _('OU slug') + ' (django_user_ou_slug)' + yield 'django_user_ou_name', _('OU name') + ' (django_user_ou_name)' for attribute in Attribute.objects.all(): name = 'django_user_' + str(attribute.name) - description = attribute.label + u' (%s)' % name + description = attribute.label + ' (%s)' % name yield name, description group_label = User._meta.get_field('groups').verbose_name - yield 'django_user_groups', group_label + u' (django_user_groups)' - yield 'django_user_group_names', group_label + u' (django_user_group_names)' - yield 'django_user_domain', _('User domain') + u' (django_user_domain)' - yield 'django_user_identifier', _('User identifier') + u' (django_user_identifier)' - yield 'django_user_full_name', _('Full name') + u' (django_user_full_name)' + yield 'django_user_groups', group_label + ' (django_user_groups)' + yield 'django_user_group_names', group_label + ' (django_user_group_names)' + yield 'django_user_domain', _('User domain') + ' (django_user_domain)' + yield 'django_user_identifier', _('User identifier') + ' (django_user_identifier)' + yield 'django_user_full_name', _('Full name') + ' (django_user_full_name)' yield 'a2_role_slugs', _('Role slugs') yield 'a2_role_names', _('Role names') yield 'a2_role_uuids', _('Role UUIDs') diff --git a/src/authentic2/attributes_ng/sources/service_roles.py b/src/authentic2/attributes_ng/sources/service_roles.py index 0e83fae5..280ab19b 100644 --- a/src/authentic2/attributes_ng/sources/service_roles.py +++ b/src/authentic2/attributes_ng/sources/service_roles.py @@ -40,7 +40,7 @@ def get_attribute_names(instance, ctx): names.append(service_role_attribute.name) names.sort() for name in names: - yield (name, u'%s (%s)' % (name, _('role attribute'))) + yield (name, '%s (%s)' % (name, _('role attribute'))) def get_dependencies(instance, ctx): diff --git a/src/authentic2/backends/ldap_backend.py b/src/authentic2/backends/ldap_backend.py index 89042e66..61e3f89e 100644 --- a/src/authentic2/backends/ldap_backend.py +++ b/src/authentic2/backends/ldap_backend.py @@ -886,7 +886,7 @@ class LDAPBackend(object): if ldap_attribute in attributes: value = attributes[ldap_attribute][0] else: - value = u'' + value = '' if getattr(user, legacy_attribute) != value: setattr(user, legacy_attribute, value) user._changed = True @@ -1175,7 +1175,7 @@ class LDAPBackend(object): attribute_mappings = map_text(block['attribute_mappings']) mandatory_attributes_values = map_text(block['mandatory_attributes_values']) try: - results = conn.search_s(dn, ldap.SCOPE_BASE, u'(objectclass=*)', attributes) + results = conn.search_s(dn, ldap.SCOPE_BASE, '(objectclass=*)', attributes) except ldap.LDAPError as e: log.error('unable to retrieve attributes of dn %r: %r', dn, e) return None @@ -1258,7 +1258,7 @@ class LDAPBackend(object): item_value = {} for dn, attrs in results: log.debug( - u'Object retrieved for extra attr %s with item %s : %s %s' + 'Object retrieved for extra attr %s with item %s : %s %s' % (extra_attribute_name, item, dn, attrs) ) for key in ldap_attributes_mapping: @@ -1306,7 +1306,7 @@ class LDAPBackend(object): else: decoded.append((attribute, force_text(value))) filters = [filter_format(u'(%s=%s)', (a, b)) for a, b in decoded] - return u'(&{0})'.format(''.join(filters)) + return '(&{0})'.format(''.join(filters)) def build_external_id(self, external_id_tuple, attributes): """Build the exernal id for the user, use attribute that eventually @@ -1525,7 +1525,7 @@ class LDAPBackend(object): else: modlist = [] if block['active_directory']: - key = u'unicodePwd' + key = 'unicodePwd' value = cls.ad_encoding(new_password) if old_password: modlist = [ @@ -1535,7 +1535,7 @@ class LDAPBackend(object): else: modlist = [(ldap.MOD_REPLACE, key, [value])] else: - key = u'userPassword' + key = 'userPassword' modlist = [(ldap.MOD_REPLACE, key, [new_password])] conn.modify_s(dn, modlist) log.debug('modified password for dn %r', dn) @@ -1644,9 +1644,9 @@ class LDAPBackend(object): conn.simple_bind_s() return True, None except ldap.INVALID_CREDENTIALS: - return False, u'invalid credentials' + return False, 'invalid credentials' except ldap.INVALID_DN_SYNTAX: - return False, u'invalid dn syntax %s' % who + return False, 'invalid dn syntax %s' % who except ldap.CONNECT_ERROR: return False, 'connection error' except ldap.TIMEOUT: @@ -1781,13 +1781,13 @@ class LDAPBackendPasswordLost(LDAPBackend): results = self.normalize_ldap_results(results) if not results: log.warning( - u'unable to find user %r based on external id %s', user, external_id + 'unable to find user %r based on external id %s', user, external_id ) continue dn = results[0][0] except ldap.LDAPError as e: log.warning( - u'unable to find user %r based on external id %s: %r', user, external_id, e + 'unable to find user %r based on external id %s: %r', user, external_id, e ) continue return self._return_user(dn, None, conn, block) diff --git a/src/authentic2/backends/models_backend.py b/src/authentic2/backends/models_backend.py index eeb54138..fc0004fb 100644 --- a/src/authentic2/backends/models_backend.py +++ b/src/authentic2/backends/models_backend.py @@ -30,7 +30,7 @@ from .. import app_settings def upn(username, realm): '''Build an UPN from a username and a realm''' - return u'{0}@{1}'.format(username, realm) + return '{0}@{1}'.format(username, realm) PROXY_USER_MODEL = None diff --git a/src/authentic2/data_transfer.py b/src/authentic2/data_transfer.py index 557a8437..8d7893b7 100644 --- a/src/authentic2/data_transfer.py +++ b/src/authentic2/data_transfer.py @@ -61,7 +61,7 @@ def update_model(obj, d): for message in error_list(messages): errorlist.append( format_lazy( - u'{}="{}": {}', obj.__class__._meta.get_field(key).verbose_name, value, message + '{}="{}": {}', obj.__class__._meta.get_field(key).verbose_name, value, message ) ) raise ValidationError(errorlist) diff --git a/src/authentic2/decorators.py b/src/authentic2/decorators.py index acfc4ce6..a9ff947c 100644 --- a/src/authentic2/decorators.py +++ b/src/authentic2/decorators.py @@ -200,7 +200,7 @@ class CacheDecoratorBase(object): if kw not in self.kwargs: continue parts.append(u'%s-%s' % (str(kw), str(arg))) - return u'|'.join(parts) + return '|'.join(parts) class SimpleDictionnaryCacheMixin(object): diff --git a/src/authentic2/disco_service/disco_responder.py b/src/authentic2/disco_service/disco_responder.py index eccbd0f5..42df7acc 100644 --- a/src/authentic2/disco_service/disco_responder.py +++ b/src/authentic2/disco_service/disco_responder.py @@ -41,7 +41,7 @@ logger = logging.getLogger('authentic2.disco.responder') def error_page(request, message, logger): '''Customized disco service error page''' - message = u'disco: ' + message + message = 'disco: ' + message return base_error_page(request, message, logger) diff --git a/src/authentic2/exponential_retry_timeout.py b/src/authentic2/exponential_retry_timeout.py index 52597f6d..e9973cb2 100644 --- a/src/authentic2/exponential_retry_timeout.py +++ b/src/authentic2/exponential_retry_timeout.py @@ -44,7 +44,7 @@ class ExponentialRetryTimeout(object): self.key_prefix = key_prefix def key(self, keys): - key = u'-'.join(str(key) for key in keys) + key = '-'.join(str(key) for key in keys) key = key.encode('utf-8') return '%s%s' % (self.key_prefix or self.KEY_PREFIX, hashlib.md5(key).hexdigest()) diff --git a/src/authentic2/forms/fields.py b/src/authentic2/forms/fields.py index 9e77863c..0914078f 100644 --- a/src/authentic2/forms/fields.py +++ b/src/authentic2/forms/fields.py @@ -54,7 +54,7 @@ class CheckPasswordField(CharField): def __init__(self, *args, **kwargs): kwargs[ 'help_text' - ] = u''' + ] = ''' %(default)s %(match)s %(nomatch)s diff --git a/src/authentic2/forms/widgets.py b/src/authentic2/forms/widgets.py index 9f81fc79..6aa0df71 100644 --- a/src/authentic2/forms/widgets.py +++ b/src/authentic2/forms/widgets.py @@ -165,7 +165,7 @@ class PickerWidgetMixin(object): help_text = self.help_text if not help_text: - help_text = u'%s %s' % (_('Format:'), self.options['format']) + help_text = '%s %s' % (_('Format:'), self.options['format']) return mark_safe( self.render_template @@ -267,7 +267,7 @@ class PasswordInput(BasePasswordInput): if attrs and app_settings.A2_PASSWORD_POLICY_SHOW_LAST_CHAR: _id = attrs.get('id') if _id: - output += u'''\n''' % json.dumps(_id) + output += '''\n''' % json.dumps(_id) return output @@ -280,7 +280,7 @@ class NewPasswordInput(PasswordInput): if attrs: _id = attrs.get('id') if _id: - output += u'''\n''' % json.dumps(_id) + output += '''\n''' % json.dumps(_id) return output @@ -296,7 +296,7 @@ class CheckPasswordInput(PasswordInput): _id = attrs.get('id') if _id and _id.endswith('2'): other_id = _id[:-1] + '1' - output += u'''\n''' % ( + output += '''\n''' % ( json.dumps(other_id), json.dumps(_id), ) diff --git a/src/authentic2/idp/saml/saml2_endpoints.py b/src/authentic2/idp/saml/saml2_endpoints.py index e347e6fe..aa81e372 100644 --- a/src/authentic2/idp/saml/saml2_endpoints.py +++ b/src/authentic2/idp/saml/saml2_endpoints.py @@ -486,8 +486,8 @@ def build_assertion(request, login, provider, nid_format='transient'): kwargs['entity_id'] = login.remoteProviderId kwargs['user'] = request.user logger.debug( - u'sending nameID %(name_id_format)r: %(name_id_content)r to ' - u'%(entity_id)s for user %(user)s' % kwargs + 'sending nameID %(name_id_format)r: %(name_id_content)r to ' + '%(entity_id)s for user %(user)s' % kwargs ) register_new_saml2_session(request, login) add_attributes(request, entity_id, assertion, provider, nid_format) @@ -1231,14 +1231,14 @@ def build_session_dump(liberty_sessions): """Build a session dump from a list of pairs (provider_id,assertion_content)""" session = [ - u'', + '', ] for liberty_session in liberty_sessions: session.append( - u''.format(liberty_session) + ''.format(liberty_session) ) session.append(u' 1: - label = u'{ou} - {obj}'.format(ou=obj.ou, obj=obj) + label = '{ou} - {obj}'.format(ou=obj.ou, obj=obj) return label diff --git a/src/authentic2/models.py b/src/authentic2/models.py index 21a41040..7a1e68ca 100644 --- a/src/authentic2/models.py +++ b/src/authentic2/models.py @@ -56,7 +56,7 @@ class UserExternalId(models.Model): updated = models.DateTimeField(auto_now=True, verbose_name=_('last update date')) def __str__(self): - return u'{0} is {1} on {2}'.format(self.user, self.external_id, self.source) + return '{0} is {1} on {2}'.format(self.user, self.external_id, self.source) def __repr__(self): return ( diff --git a/src/authentic2/saml/admin.py b/src/authentic2/saml/admin.py index 77fdba44..fc6541ac 100644 --- a/src/authentic2/saml/admin.py +++ b/src/authentic2/saml/admin.py @@ -102,7 +102,7 @@ def update_metadata(modeladmin, request, queryset): try: provider.update_metadata() except ValidationError as e: - params = {'name': provider, 'error_msg': u', '.join(e.messages)} + params = {'name': provider, 'error_msg': ', '.join(e.messages)} messages.error(request, _('Updating SAML provider %(name)s failed: ' '%(error_msg)s') % params) else: count += 1 @@ -188,7 +188,7 @@ class LibertyFederationAdmin(admin.ModelAdmin): def format(self, obj): name_id_format = obj.name_id_format if name_id_format > 15: - name_id_format = u'\u2026' + name_id_format[-12:] + name_id_format = '\u2026' + name_id_format[-12:] return name_id_format diff --git a/src/authentic2/saml/models.py b/src/authentic2/saml/models.py index 49bf4156..d5926fa4 100644 --- a/src/authentic2/saml/models.py +++ b/src/authentic2/saml/models.py @@ -357,7 +357,7 @@ class SAMLAttribute(models.Model): yield (name, name_format, friendly_name, value) def __str__(self): - return u'%s %s %s' % (self.name, self.name_format_uri(), self.attribute_name) + return '%s %s %s' % (self.name, self.name_format_uri(), self.attribute_name) def natural_key(self): if not hasattr(self.provider, 'natural_key'): diff --git a/src/authentic2/utils/__init__.py b/src/authentic2/utils/__init__.py index af93cbf4..c38337d4 100644 --- a/src/authentic2/utils/__init__.py +++ b/src/authentic2/utils/__init__.py @@ -341,9 +341,9 @@ def make_url( else: url_params.appendlist(key, value) if url_params: - url += u'?%s' % url_params.urlencode(safe='/') + url += '?%s' % url_params.urlencode(safe='/') if fragment: - url += u'#%s' % fragment + url += '#%s' % fragment if absolute: if request: url = request.build_absolute_uri(url) @@ -946,7 +946,7 @@ def send_password_reset_mail( **kwargs, ) logger.info( - u'password reset request for user %s, email sent to %s ' 'with token %s', user, user.email, token.uuid + 'password reset request for user %s, email sent to %s ' 'with token %s', user, user.email, token.uuid ) journal.record('user.password.reset.request', email=user.email, user=user) diff --git a/src/authentic2/views.py b/src/authentic2/views.py index b9c83199..5416c583 100644 --- a/src/authentic2/views.py +++ b/src/authentic2/views.py @@ -626,7 +626,7 @@ class LoggedInView(View): if not self.check_referrer(): return HttpResponseForbidden() callback = request.GET.get('callback') - content = u'{0}({1})'.format(callback, int(request.user.is_authenticated)) + content = '{0}({1})'.format(callback, int(request.user.is_authenticated)) return HttpResponse(content, content_type='application/json') diff --git a/src/authentic2_idp_cas/models.py b/src/authentic2_idp_cas/models.py index ab59c714..fc990114 100644 --- a/src/authentic2_idp_cas/models.py +++ b/src/authentic2_idp_cas/models.py @@ -51,7 +51,7 @@ class Service(LogoutUrlAbstract, Service): url_validator(url) except ValidationError: raise ValidationError(_('%s is an invalid URL') % url) - self.urls = u' '.join(urls) + self.urls = ' '.join(urls) def match_service(self, service_url): '''Verify that this service match an URL''' @@ -86,7 +86,7 @@ class Attribute(models.Model): enabled = models.BooleanField(verbose_name=_('enabled'), default=True) def __str__(self): - return u'%s <- %s' % (self.slug, self.attribute_name) + return '%s <- %s' % (self.slug, self.attribute_name) class Meta: verbose_name = _('CAS attribute') diff --git a/src/authentic2_idp_oidc/utils.py b/src/authentic2_idp_oidc/utils.py index 6af8e530..8382d144 100644 --- a/src/authentic2_idp_oidc/utils.py +++ b/src/authentic2_idp_oidc/utils.py @@ -102,7 +102,7 @@ def scope_set(data): def clean_words(data): '''Clean and order a list of words''' - return u' '.join(sorted(x.strip() for x in data.split())) + return ' '.join(sorted(x.strip() for x in data.split())) def url_domain(url): diff --git a/src/django_rbac/models.py b/src/django_rbac/models.py index 6ad59b12..c6e60e5b 100644 --- a/src/django_rbac/models.py +++ b/src/django_rbac/models.py @@ -159,9 +159,9 @@ class PermissionAbstractBase(models.Model): ct_ct = ContentType.objects.get_for_model(ContentType) if ct == ct_ct: target = ContentType.objects.get_for_id(self.target_id) - s = u'{0} / {1}'.format(self.operation, target) + s = '{0} / {1}'.format(self.operation, target) else: - s = u'{0} / {1} / {2}'.format(self.operation, ct, self.target) + s = '{0} / {1} / {2}'.format(self.operation, ct, self.target) if self.ou: s += _(u' (scope "{0}")').format(self.ou) return s diff --git a/tests/test_a2_rbac.py b/tests/test_a2_rbac.py index 275be0d7..01580de1 100644 --- a/tests/test_a2_rbac.py +++ b/tests/test_a2_rbac.py @@ -92,7 +92,7 @@ def test_admin_roles_startswith_a2(db): coin = Role.objects.create(name='Coin', slug='coin') coin.get_admin_role() for role in Role.objects.filter(admin_scope_ct__isnull=False): - assert role.slug.startswith('_a2'), u'role %s slug must start with _a2: %s' % (role.name, role.slug) + assert role.slug.startswith('_a2'), 'role %s slug must start with _a2: %s' % (role.name, role.slug) def test_admin_roles_update_slug(db): @@ -262,19 +262,19 @@ def test_role_with_permission_export_json(db): assert permissions[0] == { 'operation': {'slug': 'add'}, 'ou': {'uuid': ou.uuid, 'slug': ou.slug, 'name': ou.name}, - 'target_ct': {'app_label': u'contenttypes', 'model': u'contenttype'}, - 'target': {'model': u'libertyprovider', 'app_label': u'saml'}, + 'target_ct': {'app_label': 'contenttypes', 'model': 'contenttype'}, + 'target': {'model': 'libertyprovider', 'app_label': 'saml'}, } assert permissions[1] == { 'operation': {'slug': 'add'}, 'ou': None, - 'target_ct': {'app_label': u'a2_rbac', 'model': u'role'}, + 'target_ct': {'app_label': 'a2_rbac', 'model': 'role'}, 'target': { - 'slug': u'other-role-slug', + 'slug': 'other-role-slug', 'service': None, 'uuid': other_role.uuid, - 'ou': {'slug': u'some-ou', 'uuid': some_ou.uuid, 'name': u'some ou'}, - 'name': u'other role name', + 'ou': {'slug': 'some-ou', 'uuid': some_ou.uuid, 'name': 'some ou'}, + 'name': 'other role name', }, } diff --git a/tests/test_attribute_kinds.py b/tests/test_attribute_kinds.py index 5fc7e551..1b385741 100644 --- a/tests/test_attribute_kinds.py +++ b/tests/test_attribute_kinds.py @@ -53,11 +53,11 @@ def test_string(db, app, admin, mailoutbox): assert response.pyquery.find('.form-field-error #id_nom_de_naissance') form = response.form - form.set('nom_de_naissance', u'Noël') + form.set('nom_de_naissance', 'Noël') form.set('password1', '12345abcdA') form.set('password2', '12345abcdA') response = form.submit().follow() - assert qs.get().attributes.nom_de_naissance == u'Noël' + assert qs.get().attributes.nom_de_naissance == 'Noël' qs.delete() app.authorization = ('Basic', (admin.username, admin.username)) @@ -71,10 +71,10 @@ def test_string(db, app, admin, mailoutbox): payload = { 'first_name': 'John', 'last_name': 'Doe', - 'nom_de_naissance': u'Noël', + 'nom_de_naissance': 'Noël', } app.post_json('/api/users/', params=payload, status=201) - assert qs.get().attributes.nom_de_naissance == u'Noël' + assert qs.get().attributes.nom_de_naissance == 'Noël' qs.delete() diff --git a/tests/test_auth_oidc.py b/tests/test_auth_oidc.py index c0cfda95..53f7d362 100644 --- a/tests/test_auth_oidc.py +++ b/tests/test_auth_oidc.py @@ -616,11 +616,11 @@ def test_strategy_find_uuid(app, caplog, code, oidc_provider, oidc_provider_jwks user = User.objects.get() # verify user was not modified assert user.username == 'user' - assert user.first_name == u'Jôhn' - assert user.last_name == u'Dôe' + assert user.first_name == 'Jôhn' + assert user.last_name == 'Dôe' assert user.email == 'user@example.net' - assert user.attributes.first_name == u'Jôhn' - assert user.attributes.last_name == u'Dôe' + assert user.attributes.first_name == 'Jôhn' + assert user.attributes.last_name == 'Dôe' response = app.get(reverse('account_management')) with utils.check_log(caplog, 'revoked token from OIDC'): diff --git a/tests/test_commands.py b/tests/test_commands.py index 822471b1..75fc13be 100644 --- a/tests/test_commands.py +++ b/tests/test_commands.py @@ -160,7 +160,7 @@ def test_clean_unused_account_always_alert(db, simple_user, mailoutbox, freezer) @pytest.mark.parametrize( - "deletion_delay,formatted", [(730, u'2\xa0years'), (500, u'1\xa0year'), (65, u'2\xa0months')] + "deletion_delay,formatted", [(730, '2\xa0years'), (500, '1\xa0year'), (65, '2\xa0months')] ) def test_clean_unused_account_human_duration_format(simple_user, mailoutbox, deletion_delay, formatted): simple_user.ou.clean_unused_accounts_alert = deletion_delay - 1 diff --git a/tests/test_crypto.py b/tests/test_crypto.py index 3aa1fde9..2b64cf8e 100644 --- a/tests/test_crypto.py +++ b/tests/test_crypto.py @@ -67,9 +67,9 @@ def test_deterministic_encryption(): def test_hmac_url(): - key = u'é' + key = 'é' url = 'https://example.invalid/' assert crypto.check_hmac_url(key, url, crypto.hmac_url(key, url)) - key = u'é' - url = u'https://example.invalid/\u0000' + key = 'é' + url = 'https://example.invalid/\u0000' assert crypto.check_hmac_url(key, url, crypto.hmac_url(key, url)) diff --git a/tests/test_customfields.py b/tests/test_customfields.py index dd589acc..4bd70a17 100644 --- a/tests/test_customfields.py +++ b/tests/test_customfields.py @@ -28,7 +28,7 @@ class CustomDataType(str): @pytest.mark.parametrize( 'value', [ - u'\xe9', + '\xe9', b'\xc3\xa9', {1: 1, 2: 4, 3: 6, 4: 8, 5: 10}, 'Hello World', diff --git a/tests/test_data_transfer.py b/tests/test_data_transfer.py index 6fb828c6..5ddb1845 100644 --- a/tests/test_data_transfer.py +++ b/tests/test_data_transfer.py @@ -325,7 +325,7 @@ def test_role_deserializer_permissions(db): other_role_dict['permisison'] = { "operation": {"slug": "admin"}, "ou": {"slug": "default", "name": "Collectivit\u00e9 par d\u00e9faut"}, - 'target_ct': {'app_label': u'a2_rbac', 'model': u'role'}, + 'target_ct': {'app_label': 'a2_rbac', 'model': 'role'}, "target": { "slug": "role-deux", "ou": {"slug": "default", "name": "Collectivit\u00e9 par d\u00e9faut"}, @@ -344,8 +344,8 @@ def test_role_deserializer_permissions(db): { 'operation': {'slug': 'add'}, 'ou': None, - 'target_ct': {'app_label': u'a2_rbac', 'model': u'role'}, - 'target': {"slug": u'other-role-slug', 'ou': {'slug': 'some-ou'}, 'service': None}, + 'target_ct': {'app_label': 'a2_rbac', 'model': 'role'}, + 'target': {"slug": 'other-role-slug', 'ou': {'slug': 'some-ou'}, 'service': None}, } ] @@ -382,7 +382,7 @@ def test_permission_on_role(db): { "operation": {"slug": "admin"}, "ou": {"slug": "perm-ou", "name": "perm-ou"}, - 'target_ct': {'app_label': u'a2_rbac', 'model': u'role'}, + 'target_ct': {'app_label': 'a2_rbac', 'model': 'role'}, "target": { "slug": "perm-role", "ou": {"slug": "perm-ou", "name": "perm ou"}, diff --git a/tests/test_ldap.py b/tests/test_ldap.py index a159b8db..e191b755 100644 --- a/tests/test_ldap.py +++ b/tests/test_ldap.py @@ -45,12 +45,12 @@ User = get_user_model() pytestmark = pytest.mark.skipif(not has_slapd(), reason='slapd is not installed') -USERNAME = u'etienne.michu' +USERNAME = 'etienne.michu' UID = 'etienne.michu' CN = 'Étienne Michu' DN = 'cn=%s,o=ôrga' % escape_dn_chars(CN) PASS = 'passé' -UPASS = u'passé' +UPASS = 'passé' EMAIL = 'etienne.michu@example.net' CARLICENSE = '123445ABC' @@ -209,7 +209,7 @@ def test_simple(slapd, settings, client, db): settings.LDAP_AUTH_SETTINGS = [ { 'url': [slapd.ldap_url], - 'basedn': u'o=ôrga', + 'basedn': 'o=ôrga', 'use_tls': False, 'attributes': ['jpegPhoto'], } @@ -221,8 +221,8 @@ def test_simple(slapd, settings, client, db): assert force_bytes('Étienne Michu') in result.content assert User.objects.count() == 1 user = User.objects.get() - assert user.username == u'%s@ldap' % USERNAME - assert user.first_name == u'Étienne' + assert user.username == '%s@ldap' % USERNAME + assert user.first_name == 'Étienne' assert user.last_name == 'Michu' assert user.is_active is True assert user.is_superuser is False @@ -237,7 +237,7 @@ def test_deactivate_orphaned_users(slapd, settings, client, db): settings.LDAP_AUTH_SETTINGS = [ { 'url': [slapd.ldap_url], - 'basedn': u'o=ôrga', + 'basedn': 'o=ôrga', 'use_tls': False, } ] @@ -266,7 +266,7 @@ def test_simple_with_binddn(slapd, settings, client): 'url': [slapd.ldap_url], 'binddn': force_text(DN), 'bindpw': PASS, - 'basedn': u'o=ôrga', + 'basedn': 'o=ôrga', 'use_tls': False, } ] @@ -277,8 +277,8 @@ def test_simple_with_binddn(slapd, settings, client): assert force_bytes('Étienne Michu') in result.content assert User.objects.count() == 1 user = User.objects.get() - assert user.username == u'%s@ldap' % USERNAME - assert user.first_name == u'Étienne' + assert user.username == '%s@ldap' % USERNAME + assert user.first_name == 'Étienne' assert user.last_name == 'Michu' assert user.is_active is True assert user.is_superuser is False @@ -293,7 +293,7 @@ def test_double_login(slapd, simple_user, settings, app, db): settings.LDAP_AUTH_SETTINGS = [ { 'url': [slapd.ldap_url], - 'basedn': u'o=ôrga', + 'basedn': 'o=ôrga', 'use_tls': False, 'is_superuser': True, 'is_staff': True, @@ -307,7 +307,7 @@ def test_login_failure(slapd, simple_user, settings, app, db): settings.LDAP_AUTH_SETTINGS = [ { 'url': [slapd.ldap_url], - 'basedn': u'o=ôrga', + 'basedn': 'o=ôrga', 'use_tls': False, 'is_superuser': True, 'is_staff': True, @@ -329,7 +329,7 @@ def test_keep_password_in_session(slapd, settings, client, db): settings.LDAP_AUTH_SETTINGS = [ { 'url': [slapd.ldap_url], - 'basedn': u'o=ôrga', + 'basedn': 'o=ôrga', 'use_tls': False, 'keep_password_in_session': True, } @@ -341,8 +341,8 @@ def test_keep_password_in_session(slapd, settings, client, db): assert force_bytes('Étienne Michu') in result.content assert User.objects.count() == 1 user = User.objects.get() - assert user.username == u'%s@ldap' % USERNAME - assert user.first_name == u'Étienne' + assert user.username == '%s@ldap' % USERNAME + assert user.first_name == 'Étienne' assert user.last_name == 'Michu' assert user.ou == get_default_ou() assert not user.check_password(PASS) @@ -357,7 +357,7 @@ def test_keep_password_true_or_false(slapd, settings, db): settings.LDAP_AUTH_SETTINGS = [ { 'url': [slapd.ldap_url], - 'basedn': u'o=ôrga', + 'basedn': 'o=ôrga', 'use_tls': False, 'keep_password': True, } @@ -381,7 +381,7 @@ def test_custom_ou(slapd, settings, client): settings.LDAP_AUTH_SETTINGS = [ { 'url': [slapd.ldap_url], - 'basedn': u'o=ôrga', + 'basedn': 'o=ôrga', 'use_tls': False, 'ou_slug': 'test', } @@ -393,9 +393,9 @@ def test_custom_ou(slapd, settings, client): assert force_bytes('Étienne Michu') in result.content assert User.objects.count() == 1 user = User.objects.get() - assert user.username == u'%s@ldap' % USERNAME - assert user.first_name == u'Étienne' - assert user.last_name == u'Michu' + assert user.username == '%s@ldap' % USERNAME + assert user.first_name == 'Étienne' + assert user.last_name == 'Michu' assert user.ou == ou assert not user.check_password(PASS) @@ -404,7 +404,7 @@ def test_wrong_ou(slapd, settings, client, db): settings.LDAP_AUTH_SETTINGS = [ { 'url': [slapd.ldap_url], - 'basedn': u'o=ôrga', + 'basedn': 'o=ôrga', 'use_tls': False, 'ou_slug': 'test', } @@ -437,7 +437,7 @@ def test_group_mapping(slapd, settings, client, db): settings.LDAP_AUTH_SETTINGS = [ { 'url': [slapd.ldap_url], - 'basedn': u'o=ôrga', + 'basedn': 'o=ôrga', 'use_tls': False, 'create_group': True, 'group_mapping': [ @@ -450,7 +450,7 @@ def test_group_mapping(slapd, settings, client, db): '/login/', {'login-password-submit': '1', 'username': USERNAME, 'password': PASS}, follow=True ) assert Group.objects.filter(name='Group1').count() == 1 - assert response.context['user'].username == u'%s@ldap' % USERNAME + assert response.context['user'].username == '%s@ldap' % USERNAME assert response.context['user'].groups.count() == 1 @@ -460,7 +460,7 @@ def test_posix_group_mapping(slapd, settings, client, db): settings.LDAP_AUTH_SETTINGS = [ { 'url': [slapd.ldap_url], - 'basedn': u'o=ôrga', + 'basedn': 'o=ôrga', 'use_tls': False, 'create_group': True, 'group_mapping': [ @@ -474,7 +474,7 @@ def test_posix_group_mapping(slapd, settings, client, db): '/login/', {'login-password-submit': '1', 'username': USERNAME, 'password': PASS}, follow=True ) assert Group.objects.filter(name='Group2').count() == 1 - assert response.context['user'].username == u'%s@ldap' % USERNAME + assert response.context['user'].username == '%s@ldap' % USERNAME assert response.context['user'].groups.count() == 1 @@ -485,7 +485,7 @@ def test_group_to_role_mapping(slapd, settings, client, db): settings.LDAP_AUTH_SETTINGS = [ { 'url': [slapd.ldap_url], - 'basedn': u'o=ôrga', + 'basedn': 'o=ôrga', 'use_tls': False, # memberOf is not defined on OpenLDAP so we use street for storing DN like # memberOf values @@ -499,7 +499,7 @@ def test_group_to_role_mapping(slapd, settings, client, db): response = client.post( '/login/', {'login-password-submit': '1', 'username': USERNAME, 'password': PASS}, follow=True ) - assert response.context['user'].username == u'%s@ldap' % USERNAME + assert response.context['user'].username == '%s@ldap' % USERNAME assert set(response.context['user'].roles.values_list('name', flat=True)) == set(['Role1', 'Role2']) @@ -508,7 +508,7 @@ def test_posix_group_to_role_mapping(slapd, settings, client, db): settings.LDAP_AUTH_SETTINGS = [ { 'url': [slapd.ldap_url], - 'basedn': u'o=ôrga', + 'basedn': 'o=ôrga', 'use_tls': False, 'group_to_role_mapping': [ ['cn=group2,o=ôrga', ['Role2']], @@ -519,7 +519,7 @@ def test_posix_group_to_role_mapping(slapd, settings, client, db): response = client.post( '/login/', {'login-password-submit': '1', 'username': USERNAME, 'password': PASS}, follow=True ) - assert response.context['user'].username == u'%s@ldap' % USERNAME + assert response.context['user'].username == '%s@ldap' % USERNAME assert response.context['user'].roles.count() == 1 @@ -528,7 +528,7 @@ def test_group_to_role_mapping_modify_disabled(slapd, settings, db, app, admin, settings.LDAP_AUTH_SETTINGS = [ { 'url': [slapd.ldap_url], - 'basedn': u'o=ôrga', + 'basedn': 'o=ôrga', 'use_tls': False, 'group_to_role_mapping': [ ['cn=group1,o=ôrga', ['Role3']], @@ -580,7 +580,7 @@ def test_group_su(slapd, settings, client, db): '/login/', {'login-password-submit': '1', 'username': USERNAME, 'password': PASS}, follow=True ) assert Group.objects.count() == 0 - assert response.context['user'].username == u'%s@ldap' % USERNAME + assert response.context['user'].username == '%s@ldap' % USERNAME assert response.context['user'].is_superuser assert not response.context['user'].is_staff @@ -591,7 +591,7 @@ def test_group_staff(slapd, settings, client, db): settings.LDAP_AUTH_SETTINGS = [ { 'url': [slapd.ldap_url], - 'basedn': u'o=ôrga', + 'basedn': 'o=ôrga', 'use_tls': False, 'groupstaff': [u'cn=group1,o=ôrga'], } @@ -600,7 +600,7 @@ def test_group_staff(slapd, settings, client, db): '/login/', {'login-password-submit': '1', 'username': 'etienne.michu', 'password': PASS}, follow=True ) assert Group.objects.count() == 0 - assert response.context['user'].username == u'%s@ldap' % USERNAME + assert response.context['user'].username == '%s@ldap' % USERNAME assert response.context['user'].is_staff assert not response.context['user'].is_superuser @@ -614,7 +614,7 @@ def test_get_users(slapd, settings, db, monkeypatch, caplog): settings.LDAP_AUTH_SETTINGS = [ { 'url': [slapd.ldap_url], - 'basedn': u'o=ôrga', + 'basedn': 'o=ôrga', 'use_tls': False, 'create_group': True, 'group_mapping': [ @@ -699,7 +699,7 @@ def test_set_mandatory_roles(slapd, settings, db): settings.LDAP_AUTH_SETTINGS = [ { 'url': [slapd.ldap_url], - 'basedn': u'o=ôrga', + 'basedn': 'o=ôrga', 'use_tls': False, 'create_group': True, 'group_mapping': [ @@ -718,7 +718,7 @@ def test_nocreate_mandatory_roles(slapd, settings, db): settings.LDAP_AUTH_SETTINGS = [ { 'url': [slapd.ldap_url], - 'basedn': u'o=ôrga', + 'basedn': 'o=ôrga', 'use_tls': False, 'create_group': True, 'group_mapping': [ @@ -741,7 +741,7 @@ def test_from_slug_set_mandatory_roles(slapd, settings, db): settings.LDAP_AUTH_SETTINGS = [ { 'url': [slapd.ldap_url], - 'basedn': u'o=ôrga', + 'basedn': 'o=ôrga', 'use_tls': False, 'create_group': True, 'group_mapping': [ @@ -766,7 +766,7 @@ def test_multiple_slug_set_mandatory_roles(slapd, settings, db): settings.LDAP_AUTH_SETTINGS = [ { 'url': [slapd.ldap_url], - 'basedn': u'o=ôrga', + 'basedn': 'o=ôrga', 'use_tls': False, 'create_group': True, 'group_mapping': [ @@ -792,7 +792,7 @@ def test_multiple_name_set_mandatory_roles(slapd, settings, db): settings.LDAP_AUTH_SETTINGS = [ { 'url': [slapd.ldap_url], - 'basedn': u'o=ôrga', + 'basedn': 'o=ôrga', 'use_tls': False, 'create_group': True, 'group_mapping': [ @@ -825,7 +825,7 @@ def test_no_connect_with_user_credentials(slapd_strict_acl, db, settings, app): settings.LDAP_AUTH_SETTINGS = [ { 'url': [slapd.ldap_url], - 'basedn': u'o=ôrga', + 'basedn': 'o=ôrga', 'use_tls': False, 'create_group': True, 'group_mapping': [ @@ -892,7 +892,7 @@ def test_reset_password_ldap_user(slapd, settings, app, db): 'url': [slapd.ldap_url], 'binddn': force_text(slapd.root_bind_dn), 'bindpw': force_text(slapd.root_bind_password), - 'basedn': u'o=ôrga', + 'basedn': 'o=ôrga', 'use_tls': False, 'attributes': ['uid', 'carLicense'], } @@ -911,7 +911,7 @@ def test_user_cannot_change_password(slapd, settings, app, db): 'url': [slapd.ldap_url], 'binddn': force_text(slapd.root_bind_dn), 'bindpw': force_text(slapd.root_bind_password), - 'basedn': u'o=ôrga', + 'basedn': 'o=ôrga', 'use_tls': False, 'user_can_change_password': False, } @@ -942,7 +942,7 @@ def test_tls(db, tls_slapd, settings, client): settings.LDAP_AUTH_SETTINGS = [ { 'url': [tls_slapd.ldap_url], - 'basedn': u'o=ôrga', + 'basedn': 'o=ôrga', 'use_tls': False, } ] @@ -957,7 +957,7 @@ def test_tls(db, tls_slapd, settings, client): settings.LDAP_AUTH_SETTINGS = [ { 'url': [tls_slapd.ldap_url], - 'basedn': u'o=ôrga', + 'basedn': 'o=ôrga', 'use_tls': True, 'cacertfile': cert_file, } @@ -973,7 +973,7 @@ def test_tls(db, tls_slapd, settings, client): settings.LDAP_AUTH_SETTINGS = [ { 'url': [tls_slapd.ldap_url], - 'basedn': u'o=ôrga', + 'basedn': 'o=ôrga', 'use_tls': True, 'cacertfile': cert_file, 'certfile': cert_file, @@ -992,7 +992,7 @@ def test_user_attributes(slapd, settings, client, db): settings.LDAP_AUTH_SETTINGS = [ { 'url': [slapd.ldap_url], - 'basedn': u'o=ôrga', + 'basedn': 'o=ôrga', 'use_tls': False, 'user_attributes': [ { @@ -1018,23 +1018,23 @@ def test_user_attributes(slapd, settings, client, db): client.post( '/login/', {'login-password-submit': '1', 'username': USERNAME, 'password': PASS}, follow=True ) - username = u'%s@ldap' % USERNAME + username = '%s@ldap' % USERNAME user = User.objects.get(username=username) - assert user.attributes.locality == u'Paris' + assert user.attributes.locality == 'Paris' client.session.flush() for i in range(5): client.post( '/login/', { 'login-password-submit': '1', - 'username': u'mïchu%s' % i, + 'username': 'mïchu%s' % i, 'password': PASS, }, follow=True, ) - username = u'mïchu%s@ldap' % i + username = 'mïchu%s@ldap' % i user = User.objects.get(username=username) - assert user.attributes.locality == u'locality%s' % i + assert user.attributes.locality == 'locality%s' % i client.session.flush() @@ -1042,7 +1042,7 @@ def test_set_password(slapd, settings, db): settings.LDAP_AUTH_SETTINGS = [ { 'url': [slapd.ldap_url], - 'basedn': u'o=ôrga', + 'basedn': 'o=ôrga', 'use_tls': False, } ] @@ -1059,7 +1059,7 @@ def test_login_ppolicy_pwdMaxFailure(slapd_ppolicy, settings, db, app): settings.LDAP_AUTH_SETTINGS = [ { 'url': [slapd_ppolicy.ldap_url], - 'basedn': u'o=ôrga', + 'basedn': 'o=ôrga', 'use_tls': False, } ] @@ -1148,7 +1148,7 @@ def test_authenticate_ppolicy_pwdMaxFailure(slapd_ppolicy, settings, db, caplog) settings.LDAP_AUTH_SETTINGS = [ { 'url': [slapd_ppolicy.ldap_url], - 'basedn': u'o=ôrga', + 'basedn': 'o=ôrga', 'use_tls': False, } ] @@ -1167,7 +1167,7 @@ def test_do_not_use_controls(slapd_ppolicy, settings, db, caplog): settings.LDAP_AUTH_SETTINGS = [ { 'url': [slapd_ppolicy.ldap_url], - 'basedn': u'o=ôrga', + 'basedn': 'o=ôrga', 'use_tls': False, 'use_controls': False, } @@ -1184,7 +1184,7 @@ def test_authenticate_ppolicy_pwdGraceAuthnLimit(slapd_ppolicy, settings, db, ca settings.LDAP_AUTH_SETTINGS = [ { 'url': [slapd_ppolicy.ldap_url], - 'basedn': u'o=ôrga', + 'basedn': 'o=ôrga', 'use_tls': False, } ] @@ -1222,7 +1222,7 @@ pwdSafeModify: FALSE user = authenticate(username=USERNAME, password=UPASS) assert user.check_password(UPASS) - password = u'ogutOmyetew4' + password = 'ogutOmyetew4' user.set_password(password) time.sleep(pwdMaxAge * 3) @@ -1240,7 +1240,7 @@ def test_authenticate_ppolicy_pwdExpireWarning(slapd_ppolicy, settings, db, capl settings.LDAP_AUTH_SETTINGS = [ { 'url': [slapd_ppolicy.ldap_url], - 'basedn': u'o=ôrga', + 'basedn': 'o=ôrga', 'use_tls': False, } ] @@ -1277,7 +1277,7 @@ pwdSafeModify: FALSE user = authenticate(username=USERNAME, password=UPASS) assert user.check_password(UPASS) - password = u'ogutOmyetew4' + password = 'ogutOmyetew4' user.set_password(password) time.sleep(2) @@ -1293,7 +1293,7 @@ def test_login_ppolicy_pwdExpireWarning(slapd_ppolicy, settings, app, db, caplog 'url': [slapd_ppolicy.ldap_url], 'binddn': force_text(slapd_ppolicy.root_bind_dn), 'bindpw': force_text(slapd_ppolicy.root_bind_password), - 'basedn': u'o=ôrga', + 'basedn': 'o=ôrga', 'use_tls': False, 'attributes': ['carLicense'], } @@ -1344,7 +1344,7 @@ def test_authenticate_ppolicy_pwdAllowUserChange(slapd_ppolicy, settings, db, ca settings.LDAP_AUTH_SETTINGS = [ { 'url': [slapd_ppolicy.ldap_url], - 'basedn': u'o=ôrga', + 'basedn': 'o=ôrga', 'use_tls': False, } ] @@ -1386,7 +1386,7 @@ def test_ou_selector(slapd, settings, app, ou1): 'url': [slapd.ldap_url], 'binddn': force_text(DN), 'bindpw': PASS, - 'basedn': u'o=ôrga', + 'basedn': 'o=ôrga', 'ou_slug': ou1.slug, 'use_tls': False, } @@ -1417,7 +1417,7 @@ def test_ou_selector_default_ou(slapd, settings, app, ou1): 'url': [slapd.ldap_url], 'binddn': force_text(DN), 'bindpw': PASS, - 'basedn': u'o=ôrga', + 'basedn': 'o=ôrga', 'use_tls': False, } ] @@ -1445,7 +1445,7 @@ def test_sync_ldap_users(slapd, settings, app, db, capsys): settings.LDAP_AUTH_SETTINGS = [ { 'url': [slapd.ldap_url], - 'basedn': u'o=ôrga', + 'basedn': 'o=ôrga', 'use_tls': False, 'user_attributes': [ { @@ -1473,12 +1473,12 @@ def test_sync_ldap_users(slapd, settings, app, db, capsys): management.call_command('sync-ldap-users', verbosity=2) assert len(capsys.readouterr().out.splitlines()) == 7 assert User.objects.count() == 6 - assert all(user.first_name == u'Étienne' for user in User.objects.all()) - assert all(user.attributes.first_name == u'Étienne' for user in User.objects.all()) - assert all(user.last_name == u'Michu' for user in User.objects.all()) - assert all(user.attributes.last_name == u'Michu' for user in User.objects.all()) + assert all(user.first_name == 'Étienne' for user in User.objects.all()) + assert all(user.attributes.first_name == 'Étienne' for user in User.objects.all()) + assert all(user.last_name == 'Michu' for user in User.objects.all()) + assert all(user.attributes.last_name == 'Michu' for user in User.objects.all()) assert all( - user.attributes.locality == u'Paris' or user.attributes.locality.startswith('locality') + user.attributes.locality == 'Paris' or user.attributes.locality.startswith('locality') for user in User.objects.all() ) assert all( @@ -1497,7 +1497,7 @@ def test_alert_on_wrong_user_filter(slapd, settings, client, db, caplog): settings.LDAP_AUTH_SETTINGS = [ { 'url': [slapd.ldap_url], - 'basedn': u'o=ôrga', + 'basedn': 'o=ôrga', 'use_tls': False, 'user_filter': '(&(objectClass=user)(sAMAccountName=*)', # wrong } @@ -1512,7 +1512,7 @@ def test_get_attributes(slapd, settings, db, rf): settings.LDAP_AUTH_SETTINGS = [ { 'url': [slapd.ldap_url], - 'basedn': u'o=ôrga', + 'basedn': 'o=ôrga', 'use_tls': False, 'attributes': ['uid', 'carLicense'], } @@ -1530,7 +1530,7 @@ def test_get_attributes(slapd, settings, db, rf): # simulate LDAP down slapd.stop() assert user.get_attributes(object(), {}) == { - 'dn': u'cn=étienne michu,o=\xf4rga', + 'dn': 'cn=étienne michu,o=\xf4rga', 'givenname': [u'\xc9tienne'], 'mail': [u'etienne.michu@example.net'], 'sn': [u'Michu'], @@ -1546,7 +1546,7 @@ def test_get_attributes(slapd, settings, db, rf): ldif = [(ldap.MOD_REPLACE, 'sn', [b'Micho'])] conn.modify_s(DN, ldif) assert user.get_attributes(object(), {}) == { - 'dn': u'cn=étienne michu,o=\xf4rga', + 'dn': 'cn=étienne michu,o=\xf4rga', 'givenname': [u'\xc9tienne'], 'mail': [u'etienne.michu@example.net'], 'sn': [u'Micho'], @@ -1661,7 +1661,7 @@ def test_switch_user_ldap_user(slapd, settings, app, db): 'url': [slapd.ldap_url], 'binddn': force_text(slapd.root_bind_dn), 'bindpw': force_text(slapd.root_bind_password), - 'basedn': u'o=ôrga', + 'basedn': 'o=ôrga', 'use_tls': False, 'attributes': ['carLicense'], } diff --git a/tests/test_login.py b/tests/test_login.py index 40874653..8fb274aa 100644 --- a/tests/test_login.py +++ b/tests/test_login.py @@ -199,7 +199,7 @@ def test_ou_selector(app, settings, simple_user, ou1, ou2, user_ou1, role_ou1): assert response.pyquery.find('select#id_ou') assert len(response.pyquery.find('select#id_ou optgroup')) == 0 assert set([elt.text for elt in response.pyquery.find('select#id_ou option')]) == set( - [u'Default organizational unit', u'OU1', u'OU2', u'---------'] + [u'Default organizational unit', 'OU1', 'OU2', '---------'] ) # Check selector is required response.form.set('username', simple_user.username) @@ -226,39 +226,39 @@ def test_ou_selector(app, settings, simple_user, ou1, ou2, user_ou1, role_ou1): assert response.pyquery.find('select#id_ou') assert len(response.pyquery.find('select#id_ou optgroup')) == 2 assert set([elt.text for elt in response.pyquery.find('select#id_ou option')]) == set( - [u'Default organizational unit', u'OU1', u'OU2', u'---------'] + [u'Default organizational unit', 'OU1', 'OU2', '---------'] ) - assert response.pyquery.find('select#id_ou option[selected]')[0].text == u'Default organizational unit' + assert response.pyquery.find('select#id_ou option[selected]')[0].text == 'Default organizational unit' # Create a service service = models.Service.objects.create(name='Service', slug='service', ou=ou1) response = app.get('/login/') - assert response.pyquery.find('select#id_ou option[selected]')[0].text == u'Default organizational unit' + assert response.pyquery.find('select#id_ou option[selected]')[0].text == 'Default organizational unit' # service is specified but not access-control is defined, default for user is selected response = app.get('/login/?service=service') - assert response.pyquery.find('select#id_ou option[selected]')[0].text == u'Default organizational unit' + assert response.pyquery.find('select#id_ou option[selected]')[0].text == 'Default organizational unit' # service is specified, access control is defined but role is empty, default for user is selected service.authorized_roles.through.objects.create(service=service, role=role_ou1) response = app.get('/login/?service=service') - assert response.pyquery.find('select#id_ou option[selected]')[0].text == u'Default organizational unit' + assert response.pyquery.find('select#id_ou option[selected]')[0].text == 'Default organizational unit' # user is added to role_ou1, default for user is still selected user_ou1.roles.add(role_ou1) response = app.get('/login/?service=service') - assert response.pyquery.find('select#id_ou option[selected]')[0].text == u'Default organizational unit' + assert response.pyquery.find('select#id_ou option[selected]')[0].text == 'Default organizational unit' # Clear cookies, OU1 is selected app.cookiejar.clear() response = app.get('/login/?service=service') - assert response.pyquery.find('select#id_ou option[selected]')[0].text == u'OU1' + assert response.pyquery.find('select#id_ou option[selected]')[0].text == 'OU1' # if we change the user's ou, then default selected OU changes user_ou1.ou = ou2 user_ou1.save() response = app.get('/login/?service=service') - assert response.pyquery.find('select#id_ou option[selected]')[0].text == u'OU2' + assert response.pyquery.find('select#id_ou option[selected]')[0].text == 'OU2' def test_login_test_cookie(app, simple_user): diff --git a/tests/test_manager.py b/tests/test_manager.py index 630f3326..62c7ba08 100644 --- a/tests/test_manager.py +++ b/tests/test_manager.py @@ -373,7 +373,7 @@ def test_manager_one_ou(app, superuser, admin, simple_role, settings): assert 'search-ou' not in form.fields q = response.pyquery.remove_namespaces() assert len(q('table tbody tr')) == 1 - assert q('table tbody tr').text() == u'simple role' + assert q('table tbody tr').text() == 'simple role' assert q('table tbody tr').attr('data-url') == '/manage/roles/%s/' % simple_role.pk form.set('search-internals', True) @@ -392,14 +392,14 @@ def test_manager_one_ou(app, superuser, admin, simple_role, settings): assert 'search-ou' not in response.form.fields q = response.pyquery.remove_namespaces() assert len(q('table tbody tr')) == 1 - assert q('table tbody td.name').text() == u'simple role' + assert q('table tbody td.name').text() == 'simple role' response.form.set('search-internals', True) response = response.form.submit() q = response.pyquery.remove_namespaces() assert len(q('table tbody tr')) == 6 for elt in q('table tbody td.name a'): - assert 'Manager' in elt.text or elt.text == u'simple role' + assert 'Manager' in elt.text or elt.text == 'simple role' test_user_listing(admin) app.session.flush() @@ -436,7 +436,7 @@ def test_manager_many_ou(app, superuser, admin, simple_role, role_ou1, admin_ou1 assert not checked or key == str(get_default_ou().pk) q = response.pyquery.remove_namespaces() assert len(q('table tbody tr')) == 1 - assert q('table tbody tr').text() == u'simple role' + assert q('table tbody tr').text() == 'simple role' response.form.set('search-ou', 'all') response = response.form.submit() @@ -478,7 +478,7 @@ def test_manager_many_ou(app, superuser, admin, simple_role, role_ou1, admin_ou1 q = response.pyquery.remove_namespaces() assert len(q('table tbody tr')) == 2 names = [elt.text for elt in q('table tbody td.name a')] - assert set(names) == {u'simple role', u'role_ou1'} + assert set(names) == {u'simple role', 'role_ou1'} response.form.set('search-ou', 'all') response.form.set('search-internals', True) @@ -490,8 +490,8 @@ def test_manager_many_ou(app, superuser, admin, simple_role, role_ou1, admin_ou1 'OU1' in elt.text or 'Default' in elt.text or 'Manager' in elt.text - or elt.text == u'simple role' - or elt.text == u'role_ou1' + or elt.text == 'simple role' + or elt.text == 'role_ou1' ) response.form.set('search-ou', 'none') @@ -854,10 +854,10 @@ def test_roles_widget(admin, app, db): assert len(response.json['results']) == 3 response = app.get(url, params={'field_id': field_id, 'term': 'Admin cass'}) assert len(response.json['results']) == 1 - assert response.json['results'][0]['text'] == u'Cassis - Administrateur' + assert response.json['results'][0]['text'] == 'Cassis - Administrateur' response = app.get(url, params={'field_id': field_id, 'term': force_str('Admin édou')}) assert len(response.json['results']) == 1 - assert response.json['results'][0]['text'] == u'La Bédoule - Administrateur' + assert response.json['results'][0]['text'] == 'La Bédoule - Administrateur' def test_roles_for_change_widget(admin, app, db): diff --git a/tests/test_registration.py b/tests/test_registration.py index 2673ae8b..87aa0a80 100644 --- a/tests/test_registration.py +++ b/tests/test_registration.py @@ -366,8 +366,8 @@ def test_attribute_model(app, db, settings, mailoutbox): response = app.get(reverse('account_management')) - assert u'Nom' in response.text - assert u'Prénom' not in response.text + assert 'Nom' in response.text + assert 'Prénom' not in response.text response = app.get(reverse('profile_edit')) assert 'profession' in response.form.fields @@ -382,12 +382,12 @@ def test_attribute_model(app, db, settings, mailoutbox): response = response.follow() - assert u'Nom' in response.text - assert u'Doe' in response.text - assert u'Profession' not in response.text - assert u'pompier' not in response.text - assert u'Prénom' not in response.text - assert u'John' not in response.text + assert 'Nom' in response.text + assert 'Doe' in response.text + assert 'Profession' not in response.text + assert 'pompier' not in response.text + assert 'Prénom' not in response.text + assert 'John' not in response.text def test_registration_email_blacklist(app, settings, db): @@ -414,10 +414,10 @@ def test_registration_bad_email(app, db, settings): response = app.post(reverse('registration_register'), params={'email': 'fred@0d..be'}, status=200) assert 'Enter a valid email address.' in response.context['form'].errors['email'] - response = app.post(reverse('registration_register'), params={'email': u'ééééé'}, status=200) + response = app.post(reverse('registration_register'), params={'email': 'ééééé'}, status=200) assert 'Enter a valid email address.' in response.context['form'].errors['email'] - response = app.post(reverse('registration_register'), params={'email': u''}, status=200) + response = app.post(reverse('registration_register'), params={'email': ''}, status=200) assert 'This field is required.' in response.context['form'].errors['email'] diff --git a/tests/test_user_manager.py b/tests/test_user_manager.py index 58783d26..0f9c5f7f 100644 --- a/tests/test_user_manager.py +++ b/tests/test_user_manager.py @@ -744,8 +744,8 @@ John,Doe,test2''' def test_manager_create_user_next(superuser_or_admin, app, ou1): login(app, superuser_or_admin, '/manage/') - next_url = u'/example.nowhere.null/' - url = u'/manage/users/%s/add/?next=%s' % (ou1.pk, next_url) + next_url = '/example.nowhere.null/' + url = '/manage/users/%s/add/?next=%s' % (ou1.pk, next_url) response = app.get(url) # cancel is not handled through form submission, it's a link @@ -753,9 +753,9 @@ def test_manager_create_user_next(superuser_or_admin, app, ou1): assert response.pyquery.remove_namespaces()('a.cancel').attr('href') == '../..' assert response.pyquery.remove_namespaces()('input[name="next"]').attr('value') == next_url - next_url = u'/example.nowhere.null/$UUID/' - cancel_url = u'/example.nowhere.cancel/' - url = u'/manage/users/%s/add/?next=%s&cancel=%s' % (ou1.pk, next_url, cancel_url) + next_url = '/example.nowhere.null/$UUID/' + cancel_url = '/example.nowhere.cancel/' + url = '/manage/users/%s/add/?next=%s&cancel=%s' % (ou1.pk, next_url, cancel_url) response = app.get(url) assert response.pyquery.remove_namespaces()('a.cancel').attr('href') == cancel_url @@ -809,8 +809,8 @@ Elliott,3''' def test_manager_create_user_next_form_error(superuser_or_admin, app, ou1): - next_url = u'/example.nowhere.null/' - url = u'/manage/users/%s/add/?next=%s' % (ou1.pk, next_url) + next_url = '/example.nowhere.null/' + url = '/manage/users/%s/add/?next=%s' % (ou1.pk, next_url) login(app, superuser_or_admin, '/manage/') response = app.get(url) form = response.form @@ -822,8 +822,8 @@ def test_manager_create_user_next_form_error(superuser_or_admin, app, ou1): def test_manager_add_user_querystring(superuser_or_admin, app, ou1): - querystring = u'stay_here=true' - url = u'/manage/users/add/?%s' % querystring + querystring = 'stay_here=true' + url = '/manage/users/add/?%s' % querystring login(app, superuser_or_admin, '/manage/') response = app.get(url) @@ -831,8 +831,8 @@ def test_manager_add_user_querystring(superuser_or_admin, app, ou1): def test_manager_edit_user_next(app, simple_user, superuser_or_admin): - next_url = u'/example.nowhere.null/' - url = u'/manage/users/%s/edit/?next=%s' % (simple_user.pk, next_url) + next_url = '/example.nowhere.null/' + url = '/manage/users/%s/edit/?next=%s' % (simple_user.pk, next_url) login(app, superuser_or_admin, '/manage/') response = app.get(url) @@ -845,8 +845,8 @@ def test_manager_edit_user_next(app, simple_user, superuser_or_admin): def test_manager_edit_user_next_form_error(superuser_or_admin, app, ou1, simple_user): - next_url = u'/example.nowhere.null/' - url = u'/manage/users/%s/edit/?next=%s' % (simple_user.pk, next_url) + next_url = '/example.nowhere.null/' + url = '/manage/users/%s/edit/?next=%s' % (simple_user.pk, next_url) login(app, superuser_or_admin, '/manage/') response = app.get(url) form = response.form @@ -873,7 +873,7 @@ def test_ou_hide_username(admin, app, db): some_ou = OU.objects.create(name=u'Some Ou', show_username=False) login(app, admin, '/manage/') - url = u'/manage/users/%s/add/' % some_ou.pk + url = '/manage/users/%s/add/' % some_ou.pk response = app.get(url) q = response.pyquery.remove_namespaces() assert len(q('p[id="id_username_p"]')) == 0 @@ -893,7 +893,7 @@ def test_manager_edit_user_email_verified(app, simple_user, superuser_or_admin): simple_user.email_verified = True simple_user.save() - url = u'/manage/users/%s/edit/' % simple_user.pk + url = '/manage/users/%s/edit/' % simple_user.pk login(app, superuser_or_admin, '/manage/') user = User.objects.get(id=simple_user.id) @@ -909,7 +909,7 @@ def test_manager_edit_user_email_verified(app, simple_user, superuser_or_admin): def test_manager_edit_user_address_autocomplete(app, simple_user, superuser_or_admin): - url = u'/manage/users/%s/edit/' % simple_user.pk + url = '/manage/users/%s/edit/' % simple_user.pk login(app, superuser_or_admin, '/manage/') Attribute.objects.create( diff --git a/tests/utils.py b/tests/utils.py index 9b415b27..43d18684 100644 --- a/tests/utils.py +++ b/tests/utils.py @@ -261,7 +261,7 @@ def call_command(*args, **kwargs): def text_content(node): """Extract text content from node and all its children. Equivalent to xmlNodeGetContent from libxml.""" - return u''.join(node.itertext()) if node is not None else '' + return ''.join(node.itertext()) if node is not None else '' def assert_event(event_type_name, user=None, session=None, service=None, **data): -- 2.31.1