misc: remove unicode prefixed strings (#53714)

This commit is contained in:
Benjamin Dauvergne 2021-05-04 11:32:22 +02:00
parent adf8bf659b
commit a265c6267e
43 changed files with 211 additions and 211 deletions

View File

@ -80,7 +80,7 @@ must be changed to:::
::
u'auth.user': {
'auth.user': {
'meta': {'object_name': 'User',
must be rewritten like that:::

View File

@ -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',

View File

@ -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):

View File

@ -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

View File

@ -224,7 +224,7 @@ def profile_image_deserialize(name):
def profile_image_html_value(attribute, value):
if value:
fragment = u'<a href="%s"><img class="%s" src="%s"/></a>' % (value.url, attribute.name, value.url)
fragment = '<a href="%s"><img class="%s" src="%s"/></a>' % (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):

View File

@ -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')

View File

@ -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):

View File

@ -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)

View File

@ -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

View File

@ -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)

View File

@ -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):

View File

@ -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)

View File

@ -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())

View File

@ -54,7 +54,7 @@ class CheckPasswordField(CharField):
def __init__(self, *args, **kwargs):
kwargs[
'help_text'
] = u'''
] = '''
<span class="a2-password-check-equality-default">%(default)s</span>
<span class="a2-password-check-equality-matched">%(match)s</span>
<span class="a2-password-check-equality-unmatched">%(nomatch)s</span>

View File

@ -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<script>a2_password_show_last_char(%s);</script>''' % json.dumps(_id)
output += '''\n<script>a2_password_show_last_char(%s);</script>''' % json.dumps(_id)
return output
@ -280,7 +280,7 @@ class NewPasswordInput(PasswordInput):
if attrs:
_id = attrs.get('id')
if _id:
output += u'''\n<script>a2_password_validate(%s);</script>''' % json.dumps(_id)
output += '''\n<script>a2_password_validate(%s);</script>''' % 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<script>a2_password_check_equality(%s, %s)</script>''' % (
output += '''\n<script>a2_password_check_equality(%s, %s)</script>''' % (
json.dumps(other_id),
json.dumps(_id),
)

View File

@ -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'<Session xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"'
u' xmlns="http://www.entrouvert.org/namespaces/lasso/0.0" Version="2">',
'<Session xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"'
' xmlns="http://www.entrouvert.org/namespaces/lasso/0.0" Version="2">',
]
for liberty_session in liberty_sessions:
session.append(
u'<NidAndSessionIndex ProviderID="{0.provider_id}" '
u'AssertionID="xxx" '
u'SessionIndex="{0.session_index}">'.format(liberty_session)
'<NidAndSessionIndex ProviderID="{0.provider_id}" '
'AssertionID="xxx" '
'SessionIndex="{0.session_index}">'.format(liberty_session)
)
session.append(u'<saml:NameID Format="{0.name_id_format}" '.format(liberty_session))
if liberty_session.name_id_qualifier:

View File

@ -347,7 +347,7 @@ class UserAddForm(UserChangePasswordForm, UserEditForm):
)
except smtplib.SMTPException as e:
logger.error(
u'registration mail could not be sent to user %s created through ' u'manager: %s', user, e
'registration mail could not be sent to user %s created through ' 'manager: %s', user, e
)
return user

View File

@ -29,7 +29,7 @@ class ListWidget(Widget):
raise NotImplementedError
def render(self, value, object):
return u', '.join(str(v) for v in value.all())
return ', '.join(str(v) for v in value.all())
class UserResource(ModelResource):

View File

@ -712,7 +712,7 @@ class UserRolesView(HideOUColumnMixin, BaseSubTableView):
def get_search_form_kwargs(self):
kwargs = super(UserRolesView, self).get_search_form_kwargs()
kwargs['all_ou_label'] = u''
kwargs['all_ou_label'] = ''
kwargs['user'] = self.object
kwargs['role_members_from_ou'] = app_settings.ROLE_MEMBERS_FROM_OU
kwargs['show_all_ou'] = app_settings.SHOW_ALL_OU
@ -818,7 +818,7 @@ class UserImportsView(MediaMixin, PermissionMixin, FormView):
)
ctx['help_columns'] = help_columns
example_data = (
u','.join(column['name'] + (' key' if column['key'] else '') for column in help_columns) + '\n'
','.join(column['name'] + (' key' if column['key'] else '') for column in help_columns) + '\n'
)
example_url = 'data:text/csv;base64,%s' % base64.b64encode(example_data.encode('utf-8')).decode(
'ascii'

View File

@ -35,7 +35,7 @@ def label_from_user(user):
if labels:
labels.append(u' - ')
labels.append(user.username)
return u''.join(labels)
return ''.join(labels)
@GlobalCache(timeout=10)

View File

@ -400,7 +400,7 @@ class ModelNameMixin(MediaMixin):
def get_instance_name(self):
if hasattr(self, 'get_object'):
return str(self.get_object())
return u''
return ''
def get_context_data(self, **kwargs):
ctx = super(ModelNameMixin, self).get_context_data(**kwargs)

View File

@ -103,7 +103,7 @@ class SearchRoleWidgetMixin(SplitTermMixin):
def label_from_instance(self, obj):
label = str(obj)
if obj.ou and utils.get_ou_count() > 1:
label = u'{ou} - {obj}'.format(ou=obj.ou, obj=obj)
label = '{ou} - {obj}'.format(ou=obj.ou, obj=obj)
return label

View File

@ -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 (

View File

@ -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

View File

@ -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'):

View File

@ -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)

View File

@ -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')

View File

@ -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')

View File

@ -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):

View File

@ -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

View File

@ -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',
},
}

View File

@ -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()

View File

@ -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'):

View File

@ -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

View File

@ -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))

View File

@ -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',

View File

@ -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"},

View File

@ -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'],
}

View File

@ -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):

View File

@ -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):

View File

@ -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']

View File

@ -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(

View File

@ -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):