Projet

Général

Profil

0003-django4-replaced-force_text-with-equivalent-force_st.patch

A. Berriot, 31 août 2022 17:41

Télécharger (12 ko)

Voir les différences:

Subject: [PATCH 3/4] django4: replaced force_text with equivalent force_str
 (#68593)

 chrono/agendas/models.py            | 12 ++++++------
 chrono/api/views.py                 |  4 ++--
 chrono/manager/forms.py             |  6 +++---
 chrono/manager/views.py             | 18 +++++++++---------
 tests/manager/test_import_export.py |  6 +++---
 tests/test_time_periods.py          | 10 +++++-----
 6 files changed, 28 insertions(+), 28 deletions(-)
chrono/agendas/models.py
43 43
from django.urls import reverse
44 44
from django.utils import functional
45 45
from django.utils.dates import WEEKDAYS
46
from django.utils.encoding import force_text
46
from django.utils.encoding import force_str
47 47
from django.utils.formats import date_format
48 48
from django.utils.functional import cached_property
49 49
from django.utils.html import escape
......
1088 1088

  
1089 1089
    def __repr__(self):
1090 1090
        return '%s / %s' % (
1091
            force_text(WEEKDAYS[self.weekday]),
1091
            force_str(WEEKDAYS[self.weekday]),
1092 1092
            date_format(self.time, 'TIME_FORMAT'),
1093 1093
        )
1094 1094

  
......
1121 1121
        ordering = ['weekday', 'start_time']
1122 1122

  
1123 1123
    def __str__(self):
1124
        label = force_text(WEEKDAYS[self.weekday])
1124
        label = force_str(WEEKDAYS[self.weekday])
1125 1125
        if self.weekday_indexes:
1126 1126
            label = _('%(weekday)s (%(ordinals)s of the month)') % {
1127 1127
                'weekday': label,
......
1218 1218

  
1219 1219
    def __str__(self):
1220 1220
        return '%s / %s → %s' % (
1221
            force_text(WEEKDAYS[self.weekday]),
1221
            force_str(WEEKDAYS[self.weekday]),
1222 1222
            date_format(self.start_time, 'TIME_FORMAT'),
1223 1223
            date_format(self.end_time, 'TIME_FORMAT'),
1224 1224
        )
......
2480 2480
                pass
2481 2481
            data = response.text
2482 2482
        else:
2483
            data = force_text(self.ics_file.read())
2483
            data = force_str(self.ics_file.read())
2484 2484

  
2485 2485
        try:
2486 2486
            parsed = vobject.readOne(data)
......
2501 2501

  
2502 2502
    def _get_summary_from_vevent(self, vevent):
2503 2503
        if 'summary' in vevent.contents:
2504
            return force_text(vevent.contents['summary'][0].value)
2504
            return force_str(vevent.contents['summary'][0].value)
2505 2505
        return _('Exception')
2506 2506

  
2507 2507
    def refresh_timeperiod_exceptions(self, data=None):
chrono/api/views.py
30 30
from django.template import Context, Template, TemplateSyntaxError, VariableDoesNotExist
31 31
from django.urls import reverse
32 32
from django.utils.dates import WEEKDAYS
33
from django.utils.encoding import force_text
33
from django.utils.encoding import force_str
34 34
from django.utils.formats import date_format
35 35
from django.utils.timezone import localtime, make_aware, now
36 36
from django.utils.translation import gettext
......
450 450

  
451 451

  
452 452
def get_event_text(event, agenda, day=None):
453
    event_text = force_text(event)
453
    event_text = force_str(event)
454 454
    if agenda.event_display_template:
455 455
        try:
456 456
            event_text = Template(agenda.event_display_template).render(
chrono/manager/forms.py
33 33
from django.db.models import DurationField, ExpressionWrapper, F
34 34
from django.forms import ValidationError, formset_factory
35 35
from django.template import Context, Template, TemplateSyntaxError, VariableDoesNotExist
36
from django.utils.encoding import force_text
36
from django.utils.encoding import force_str
37 37
from django.utils.formats import date_format
38 38
from django.utils.timezone import localtime, make_aware, now
39 39
from django.utils.translation import gettext_lazy as _
......
1099 1099
            # label needed to generate a slug
1100 1100
            label = None
1101 1101
            if len(csvline) >= 5:
1102
                label = force_text(csvline[4])
1102
                label = force_str(csvline[4])
1103 1103

  
1104 1104
            # get or create event
1105 1105
            event = None
1106 1106
            slug = None
1107 1107
            if len(csvline) >= 6:
1108
                slug = force_text(csvline[5]) if csvline[5] else None
1108
                slug = force_str(csvline[5]) if csvline[5] else None
1109 1109
                # get existing event if relevant
1110 1110
                if slug and slug in seen_slugs:
1111 1111
                    event = events_by_slug[slug]
chrono/manager/views.py
39 39
from django.urls import reverse, reverse_lazy
40 40
from django.utils import lorem_ipsum
41 41
from django.utils.dates import MONTHS
42
from django.utils.encoding import force_text
42
from django.utils.encoding import force_str
43 43
from django.utils.formats import date_format
44 44
from django.utils.html import format_html
45 45
from django.utils.timezone import localtime, make_aware, make_naive, now
......
794 794

  
795 795
    def form_valid(self, form):
796 796
        try:
797
            agendas_json = json.loads(force_text(self.request.FILES['agendas_json'].read()))
797
            agendas_json = json.loads(force_str(self.request.FILES['agendas_json'].read()))
798 798
        except ValueError:
799 799
            form.add_error('agendas_json', _('File is not in the expected JSON format.'))
800 800
            return self.form_invalid(form)
......
3026 3026
                else:
3027 3027
                    sources.append(self.import_file(desk, form))
3028 3028
        except ICSError as e:
3029
            form.add_error(None, force_text(e))
3029
            form.add_error(None, force_str(e))
3030 3030
            return self.form_invalid(form)
3031 3031

  
3032 3032
        try:
3033 3033
            for source in sources:
3034 3034
                source.refresh_timeperiod_exceptions(data=source._parsed)
3035 3035
        except ICSError as e:
3036
            form.add_error(None, force_text(e))
3036
            form.add_error(None, force_str(e))
3037 3037
            return self.form_invalid(form)
3038 3038

  
3039 3039
        messages.info(self.request, _('Exceptions will be imported in a few minutes.'))
......
3093 3093
            else:
3094 3094
                self.import_file(self.desk or self.unavailability_calendar, form)
3095 3095
        except ICSError as e:
3096
            form.add_error(None, force_text(e))
3096
            form.add_error(None, force_str(e))
3097 3097
            return self.form_invalid(form)
3098 3098

  
3099 3099
        messages.info(self.request, _('Exceptions will be synchronized in a few minutes.'))
......
3124 3124
            else:
3125 3125
                self.import_file(self.desk or self.unavailability_calendar)
3126 3126
        except ICSError as e:
3127
            messages.error(self.request, force_text(e))
3127
            messages.error(self.request, force_str(e))
3128 3128

  
3129 3129
        messages.info(self.request, _('Exceptions will be synchronized in a few minutes.'))
3130 3130
        # redirect to settings
......
3601 3601
            with transaction.atomic():
3602 3602
                source = self.import_file(form)
3603 3603
        except ICSError as e:
3604
            form.add_error(None, force_text(e))
3604
            form.add_error(None, force_str(e))
3605 3605
            return self.form_invalid(form)
3606 3606

  
3607 3607
        try:
3608 3608
            source.refresh_timeperiod_exceptions(data=source._parsed)
3609 3609
        except ICSError as e:
3610
            form.add_error(None, force_text(e))
3610
            form.add_error(None, force_str(e))
3611 3611
            return self.form_invalid(form)
3612 3612

  
3613 3613
        messages.info(self.request, _('Exceptions will be imported in a few minutes.'))
......
3868 3868
    json_str = json.dumps(
3869 3869
        [
3870 3870
            {
3871
                'label': force_text(label),
3871
                'label': force_str(label),
3872 3872
                'slug': 'calendar',
3873 3873
                'url': request.build_absolute_uri(reverse('chrono-manager-homepage')),
3874 3874
            }
tests/manager/test_import_export.py
3 3

  
4 4
import freezegun
5 5
import pytest
6
from django.utils.encoding import force_text
6
from django.utils.encoding import force_str
7 7
from django.utils.timezone import now
8 8
from webtest import Upload
9 9

  
......
154 154
    assert Agenda.objects.count() == 3
155 155

  
156 156
    # reference to unknown group
157
    agenda_export_dict = json.loads(force_text(agenda_export))
157
    agenda_export_dict = json.loads(force_str(agenda_export))
158 158
    agenda_export_dict['agendas'][0]['permissions']['view'] = 'gé1'
159 159
    agenda_export = json.dumps(agenda_export_dict).encode('utf-8')
160 160
    Agenda.objects.all().delete()
......
276 276
    assert UnavailabilityCalendar.objects.count() == 3
277 277

  
278 278
    # reference to unknown group
279
    calendar_export_dict = json.loads(force_text(calendar_export))
279
    calendar_export_dict = json.loads(force_str(calendar_export))
280 280
    calendar_export_dict['unavailability_calendars'][0]['permissions']['view'] = 'gé1'
281 281
    calendar_export = json.dumps(calendar_export_dict).encode('utf-8')
282 282
    UnavailabilityCalendar.objects.all().delete()
tests/test_time_periods.py
3 3
import pytest
4 4
from django.db.models import Q
5 5
from django.test import override_settings
6
from django.utils.encoding import force_text
6
from django.utils.encoding import force_str
7 7
from django.utils.timezone import localtime, make_aware
8 8

  
9 9
from chrono.agendas.models import Agenda, Desk, MeetingType, TimePeriod, TimePeriodException
......
118 118
def test_time_period_exception_as_string():
119 119
    # single day
120 120
    assert (
121
        force_text(
121
        force_str(
122 122
            TimePeriodException(
123 123
                start_datetime=make_aware(datetime.datetime(2018, 1, 18)),
124 124
                end_datetime=make_aware(datetime.datetime(2018, 1, 19)),
......
129 129

  
130 130
    # multiple full days
131 131
    assert (
132
        force_text(
132
        force_str(
133 133
            TimePeriodException(
134 134
                start_datetime=make_aware(datetime.datetime(2018, 1, 18)),
135 135
                end_datetime=make_aware(datetime.datetime(2018, 1, 20)),
......
140 140

  
141 141
    # a few hours in a day
142 142
    assert (
143
        force_text(
143
        force_str(
144 144
            TimePeriodException(
145 145
                start_datetime=make_aware(datetime.datetime(2018, 1, 18, 10, 0)),
146 146
                end_datetime=make_aware(datetime.datetime(2018, 1, 18, 12, 0)),
......
151 151

  
152 152
    # multiple days and different times
153 153
    assert (
154
        force_text(
154
        force_str(
155 155
            TimePeriodException(
156 156
                start_datetime=make_aware(datetime.datetime(2018, 1, 18, 10, 0)),
157 157
                end_datetime=make_aware(datetime.datetime(2018, 1, 20, 12, 0)),
158
-