Projet

Général

Profil

0004-misc-fix-unused-variable-pylint-error-55505.patch

Lauréline Guérin, 15 juillet 2021 15:04

Télécharger (30,5 ko)

Voir les différences:

Subject: [PATCH 04/23] misc: fix unused-variable pylint error (#55505)

 .../migrations/0017_timeperiod_desk.py        |  4 +-
 chrono/agendas/migrations/0018_event_desk.py  |  2 +-
 ...iodexceptionsource_unique_settings_slug.py |  1 -
 chrono/agendas/models.py                      |  4 +-
 chrono/api/views.py                           |  2 +-
 chrono/manager/views.py                       |  6 +--
 chrono/utils/requests_wrapper.py              |  6 +--
 tests/api/conftest.py                         |  2 +-
 tests/api/test_all.py                         |  4 +-
 tests/api/test_booking.py                     |  2 +-
 tests/api/test_datetimes.py                   |  6 +--
 tests/api/test_fillslot.py                    |  8 ++--
 tests/manager/test_all.py                     | 14 +++----
 tests/manager/test_event.py                   |  6 +--
 tests/test_agendas.py                         | 42 +++++++++----------
 tests/test_import_export.py                   |  2 +-
 tests/test_misc.py                            |  6 +--
 tests/test_requests.py                        | 14 +++----
 18 files changed, 63 insertions(+), 68 deletions(-)
chrono/agendas/migrations/0017_timeperiod_desk.py
8 8
    TimePeriod = apps.get_model('agendas', 'TimePeriod')
9 9
    Desk = apps.get_model('agendas', 'Desk')
10 10
    for time_period in TimePeriod.objects.all():
11
        desk, created = Desk.objects.get_or_create(
12
            label='Guichet 1', slug='guichet-1', agenda=time_period.agenda
13
        )
11
        desk, _ = Desk.objects.get_or_create(label='Guichet 1', slug='guichet-1', agenda=time_period.agenda)
14 12
        time_period.desk = desk
15 13
        time_period.save()
16 14

  
chrono/agendas/migrations/0018_event_desk.py
11 11
        if not event.agenda.kind == 'meetings':
12 12
            continue
13 13

  
14
        desk, created = Desk.objects.get_or_create(label='Guichet 1', slug='guichet-1', agenda=event.agenda)
14
        desk, _ = Desk.objects.get_or_create(label='Guichet 1', slug='guichet-1', agenda=event.agenda)
15 15
        event.desk = desk
16 16
        event.save()
17 17

  
chrono/agendas/migrations/0066_timeperiodexceptionsource_unique_settings_slug.py
15 15

  
16 16
def remove_duplicate_sources(apps, schema_editor):
17 17
    Desk = apps.get_model('agendas', 'Desk')
18
    TimePeriodExceptionSource = apps.get_model('agendas', 'TimePeriodExceptionSource')
19 18
    for desk in Desk.objects.all():
20 19
        duplicate_source_slugs = (
21 20
            desk.timeperiodexceptionsource_set.values('settings_slug')
chrono/agendas/models.py
810 810
        events = recurrences.filter(start_datetime__gt=min_start).exclude(start_datetime__in=datetimes)
811 811
        events.filter(Q(booking__isnull=True) | Q(booking__cancellation_datetime__isnull=False)).delete()
812 812
        # report events that weren't deleted because they have bookings
813
        report, _ = RecurrenceExceptionsReport.objects.get_or_create(agenda=self)
813
        report, dummy = RecurrenceExceptionsReport.objects.get_or_create(agenda=self)
814 814
        report.events.set(events)
815 815

  
816 816
        # add recurrences
......
1949 1949
        sources = data.pop('exception_sources', [])
1950 1950
        unavailability_calendars = data.pop('unavailability_calendars', [])
1951 1951
        data = clean_import_data(cls, data)
1952
        desk, created = cls.objects.update_or_create(slug=data['slug'], agenda=data['agenda'], defaults=data)
1952
        desk, dummy = cls.objects.update_or_create(slug=data['slug'], agenda=data['agenda'], defaults=data)
1953 1953
        for timeperiod in timeperiods:
1954 1954
            timeperiod['desk'] = desk
1955 1955
            TimePeriod.import_json(timeperiod)
chrono/api/views.py
2089 2089
    def increase(self, booking, secondary_bookings, primary_booked_places, primary_wanted_places):
2090 2090
        with transaction.atomic():
2091 2091
            bulk_bookings = []
2092
            for i in range(0, primary_wanted_places - primary_booked_places):
2092
            for dummy in range(0, primary_wanted_places - primary_booked_places):
2093 2093
                bulk_bookings.append(
2094 2094
                    booking.clone(
2095 2095
                        primary_booking=booking,
chrono/manager/views.py
431 431

  
432 432
    def get_week_timetable_infos(self, week_index, week_end_offset=0):
433 433
        date = self.date + datetime.timedelta(week_index * 7)
434
        year, week_number, dow = date.isocalendar()
434
        dow = date.isocalendar()[2]
435 435
        start_date = date - datetime.timedelta(dow)
436 436

  
437 437
        interval = datetime.timedelta(minutes=60)
......
1358 1358

  
1359 1359
    def get_week_timetable_infos(self, week_index, week_end_offset=0):
1360 1360
        date = self.date + datetime.timedelta(week_index * 7)
1361
        year, week_number, dow = date.isocalendar()
1361
        dow = date.isocalendar()[2]
1362 1362
        start_date = date - datetime.timedelta(dow)
1363 1363

  
1364 1364
        interval = datetime.timedelta(minutes=60)
......
1399 1399
        while period <= max_date:
1400 1400
            left = 1
1401 1401
            period_end = period + interval
1402
            for desk_index, desk in enumerate(desks):
1402
            for desk in desks:
1403 1403
                width = (98.0 / desks_len) - 1
1404 1404
                for event in [
1405 1405
                    x
chrono/utils/requests_wrapper.py
64 64
            for services in settings.KNOWN_SERVICES.values():
65 65
                for service in services.values():
66 66
                    remote_url = service.get('url')
67
                    remote_scheme, remote_netloc, r_path, r_params, r_query, r_fragment = urlparse.urlparse(
68
                        remote_url
69
                    )
67
                    remote_scheme, remote_netloc = urlparse.urlparse(remote_url)[:2]
70 68
                    if remote_scheme == scheme and remote_netloc == netloc:
71 69
                        remote_service = service
72 70
                        break
......
104 102
            query_params['orig'] = remote_service.get('orig')
105 103

  
106 104
            remote_service_base_url = remote_service.get('url')
107
            scheme, netloc, old_path, params, old_query, fragment = urlparse.urlparse(remote_service_base_url)
105
            scheme, netloc, dummy, params, old_query, fragment = urlparse.urlparse(remote_service_base_url)
108 106

  
109 107
            query = urlencode(query_params)
110 108
            if '?' in url:
tests/api/conftest.py
74 74
    test_1st_weekday = (localtime(now()).weekday() + 2) % 7
75 75
    test_2nd_weekday = (localtime(now()).weekday() + 3) % 7
76 76

  
77
    default_desk, created = Desk.objects.get_or_create(agenda=agenda, label='Desk 1')
77
    default_desk, _ = Desk.objects.get_or_create(agenda=agenda, label='Desk 1')
78 78

  
79 79
    time_period = TimePeriod(
80 80
        weekday=test_1st_weekday,
tests/api/test_all.py
232 232
    resp = app.get('/api/agenda/', params={'with_open_events': '1'})
233 233
    assert len(resp.json['data']) == 1
234 234

  
235
    for i in range(10):
235
    for _ in range(10):
236 236
        event_agenda = Agenda.objects.create(label='Foo bar', category=category_a)
237 237
        Desk.objects.create(agenda=event_agenda, slug='_exceptions_holder')
238
        event = Event.objects.create(
238
        Event.objects.create(
239 239
            start_datetime=now(), places=10, agenda=event_agenda, recurrence_days=[now().weekday()]
240 240
        )
241 241
        TimePeriodException.objects.create(
tests/api/test_booking.py
187 187
def test_bookings_api_filter_agenda(app, user):
188 188
    bookings = []
189 189
    for label in ['foobar', 'foobaz']:
190
        agenda = Agenda.objects.create(label='foobar')
190
        agenda = Agenda.objects.create(label=label)
191 191
        event = Event.objects.create(agenda=agenda, start_datetime=now(), places=10)
192 192
        bookings.append(Booking.objects.create(event=event, user_external_id='42'))
193 193

  
tests/api/test_datetimes.py
348 348
    assert len([x for x in resp.json['data'] if not x.get('disabled')]) == 3
349 349
    assert event.slug in [x['id'] for x in resp.json['data']]
350 350

  
351
    for i in range(event.places):
351
    for _ in range(event.places):
352 352
        Booking(event=event).save()
353 353

  
354 354
    # all places are booked but all the dates are still displayed as there is a
......
357 357
    assert len([x for x in resp.json['data'] if not x.get('disabled')]) == 3
358 358

  
359 359
    # fill the waiting list
360
    for i in range(event.waiting_list_places):
360
    for _ in range(event.waiting_list_places):
361 361
        Booking(event=event, in_waiting_list=True).save()
362 362

  
363 363
    # the event datetime should no longer be returned
......
512 512
    }
513 513

  
514 514
    def simulate_booking(event, nb_places):
515
        for i in range(nb_places):
515
        for _ in range(nb_places):
516 516
            Booking(event=event, user_external_id='42').save()
517 517

  
518 518
    simulate_booking(events[0], 10)
tests/api/test_fillslot.py
1024 1024
    assert len([x for x in resp.json['data'] if not x.get('disabled')]) == 3
1025 1025
    assert event.slug in [x['id'] for x in resp.json['data']]
1026 1026

  
1027
    for i in range(event.places):
1027
    for _ in range(event.places):
1028 1028
        Booking(event=event).save()
1029 1029

  
1030 1030
    resp = app.get('/api/agenda/%s/datetimes/' % agenda_id)
......
1046 1046
    event.waiting_list_places = 5
1047 1047
    event.save()
1048 1048

  
1049
    for i in range(event.places):
1049
    for _ in range(event.places):
1050 1050
        Booking(event=event).save()
1051 1051

  
1052 1052
    app.authorization = ('Basic', ('john.doe', 'password'))
......
1072 1072
    assert resp.json['in_waiting_list'] is True
1073 1073

  
1074 1074
    # fill the waiting list
1075
    for i in range(event.waiting_list_places):
1075
    for _ in range(event.waiting_list_places):
1076 1076
        Booking(event=event, in_waiting_list=True).save()
1077 1077

  
1078 1078
    app.authorization = ('Basic', ('john.doe', 'password'))
......
1411 1411
    assert resp.json['err_desc'] == 'no more desk available'
1412 1412

  
1413 1413
    # fill the agenda and make sure big O is O(1)
1414
    for idx, event_data in enumerate(resp2.json['data'][2:10]):
1414
    for event_data in resp2.json['data'][2:10]:
1415 1415
        booking_url = event_data['api']['fillslot_url']
1416 1416
        with CaptureQueriesContext(connection) as ctx:
1417 1417
            app.post(booking_url)
tests/manager/test_all.py
397 397

  
398 398
    resp = app.get('/manage/agendas/%s/settings' % agenda.id)
399 399
    resp = resp.click('Configure', href='roles')
400
    role = manager_user.groups.all()[0]
400
    manager_user.groups.all()[0]
401 401
    resp.form['edit_role'] = manager_user.groups.all()[0].pk
402 402
    resp = resp.form.submit().follow()
403 403
    assert 'Edit Role: Managers' in resp.text
......
410 410
    agenda_events = Agenda.objects.create(label=u'Foo bar', kind='events')
411 411
    Desk.objects.create(agenda=agenda_events, slug='_exceptions_holder')
412 412
    agenda_meetings = Agenda.objects.create(label=u'Foo bar', kind='meetings')
413
    agenda_virtual = Agenda.objects.create(label=u'Foo bar', kind='virtual')
413
    Agenda.objects.create(label=u'Foo bar', kind='virtual')
414 414

  
415 415
    app = login(app)
416 416
    resp = app.get('/manage/agendas/%s/edit' % agenda_events.pk)
......
813 813
    agenda = Agenda(label=u'Foo bar', kind='meetings')
814 814
    agenda.save()
815 815
    desk_a = Desk.objects.create(agenda=agenda, label='Desk A')
816
    desk_b = Desk.objects.create(agenda=agenda, label='Desk B')
816
    Desk.objects.create(agenda=agenda, label='Desk B')
817 817

  
818 818
    event = Event(start_datetime=now() + datetime.timedelta(days=10), places=10, agenda=agenda, desk=desk_a)
819 819
    event.save()
......
2769 2769
    assert 'abc' in resp.pyquery.find('.event-info')[3].text
2770 2770
    assert 'abc' in resp.pyquery.find('.event-info')[4].text
2771 2771

  
2772
    time_period_exception = TimePeriodException.objects.create(
2772
    TimePeriodException.objects.create(
2773 2773
        desk=agenda.desk_set.get(),
2774 2774
        start_datetime=start_datetime + datetime.timedelta(days=6),
2775 2775
        end_datetime=start_datetime + datetime.timedelta(days=8),
......
2884 2884
    )
2885 2885
    # weekly recurring event, first recurrence is in the past but second is in range
2886 2886
    start_datetime = now() - datetime.timedelta(days=3)
2887
    event = Event.objects.create(
2887
    Event.objects.create(
2888 2888
        label='event G',
2889 2889
        start_datetime=start_datetime,
2890 2890
        places=10,
......
4369 4369
    resp = app.get('/manage/agendas/%s/settings' % agenda.id)
4370 4370
    resp = resp.click('Configure', href='roles')
4371 4371

  
4372
    role = manager_user.groups.all()[0]
4372
    manager_user.groups.all()[0]
4373 4373
    resp.form['edit_role'] = manager_user.groups.all()[0].pk
4374 4374
    resp = resp.form.submit().follow()
4375 4375

  
......
4404 4404
    desk = Desk.objects.create(agenda=agenda, label='New Desk')
4405 4405
    meetingtype = MeetingType.objects.create(agenda=agenda, label='Bar', duration=30)
4406 4406
    today = datetime.date.today()
4407
    timeperiod = TimePeriod.objects.create(
4407
    TimePeriod.objects.create(
4408 4408
        desk=desk, weekday=today.weekday(), start_time=datetime.time(10, 0), end_time=datetime.time(18, 0)
4409 4409
    )
4410 4410

  
tests/manager/test_event.py
360 360
    Desk.objects.create(agenda=agenda, slug='_exceptions_holder')
361 361
    event = Event(start_datetime=make_aware(datetime.datetime(2016, 2, 15, 17, 0)), places=10, agenda=agenda)
362 362
    event.save()
363
    for i in range(2):
363
    for _ in range(2):
364 364
        Booking(event=event).save()
365 365
    app = login(app)
366 366

  
......
372 372
    resp = app.get('/manage/agendas/%s/events/%s/check' % (agenda.pk, event.pk))
373 373
    assert '<span class="tag">Full</span>' not in resp
374 374

  
375
    for i in range(8):
375
    for _ in range(8):
376 376
        Booking(event=event).save()
377 377

  
378 378
    resp = app.get('/manage/agendas/%s/settings' % agenda.id, status=200)
......
916 916
    def mocked_requests_connection_error(*args, **kwargs):
917 917
        raise requests.exceptions.ConnectionError('unreachable')
918 918

  
919
    for i in range(5):
919
    for _ in range(5):
920 920
        Booking.objects.create(event=event, cancel_callback_url='http://example.org/jump/trigger/')
921 921

  
922 922
    login(app)
tests/test_agendas.py
669 669

  
670 670
    mocked_get.side_effect = mocked_requests_http_forbidden_error
671 671
    call_command('sync_desks_timeperiod_exceptions')
672
    out, err = capsys.readouterr()
672
    err = capsys.readouterr()[1]
673 673
    assert (
674 674
        err
675 675
        == 'unable to create timeperiod exceptions for "Test 11 desk": Failed to retrieve remote calendar (http://example.com/sample.ics, HTTP error 403).\n'
......
960 960

  
961 961
def test_agenda_get_effective_time_periods(db):
962 962
    real_agenda = Agenda.objects.create(label='Real Agenda', kind='meetings')
963
    meeting_type = MeetingType.objects.create(agenda=real_agenda, label='MT1')
963
    MeetingType.objects.create(agenda=real_agenda, label='MT1')
964 964
    desk = Desk.objects.create(label='Real Agenda Desk1', agenda=real_agenda)
965 965
    time_period = TimePeriod.objects.create(
966 966
        weekday=0, start_time=datetime.time(10, 0), end_time=datetime.time(18, 0), desk=desk
......
1450 1450
    agenda = Agenda.objects.create(label='Events', kind='events')
1451 1451
    event = Event.objects.create(agenda=agenda, start_datetime=now(), places=10, label='Event')
1452 1452

  
1453
    for i in range(5):
1453
    for _ in range(5):
1454 1454
        Booking.objects.create(event=event, cancel_callback_url='http://example.org/jump/trigger/')
1455 1455

  
1456 1456
    event.cancellation_scheduled = True
......
1479 1479
        raise requests.exceptions.ConnectionError('unreachable')
1480 1480

  
1481 1481
    booking_good_url = Booking.objects.create(event=event, cancel_callback_url='http://good.org/')
1482
    for i in range(5):
1482
    for _ in range(5):
1483 1483
        Booking.objects.create(event=event, cancel_callback_url='http://example.org/jump/trigger/')
1484 1484

  
1485 1485
    event.cancellation_scheduled = True
......
1541 1541
    settings.save()
1542 1542

  
1543 1543
    # book 9/10 places to reach almost full state
1544
    for i in range(9):
1544
    for _ in range(9):
1545 1545
        Booking.objects.create(event=event)
1546 1546
    event.refresh_from_db()
1547 1547
    assert event.almost_full
......
1568 1568
    settings.full_event_emails = recipients = ['hop@entrouvert.com', 'top@entrouvert.com']
1569 1569
    settings.save()
1570 1570

  
1571
    for i in range(10):
1571
    for _ in range(10):
1572 1572
        Booking.objects.create(event=event)
1573 1573
    event.refresh_from_db()
1574 1574
    assert event.full
......
1633 1633
    start_datetime = now() + datetime.timedelta(days=2)
1634 1634
    event = Event.objects.create(agenda=agenda, start_datetime=start_datetime, places=10, label='Event')
1635 1635

  
1636
    for i in range(5):
1637
        booking = Booking.objects.create(event=event, user_email='t@test.org')
1636
    for _ in range(5):
1637
        Booking.objects.create(event=event, user_email='t@test.org')
1638 1638
    # extra booking with no email, should be ignored
1639
    booking = Booking.objects.create(event=event)
1639
    Booking.objects.create(event=event)
1640 1640

  
1641 1641
    freezer.move_to('2020-01-02 10:00')
1642 1642
    # not time to send reminders yet
......
1656 1656

  
1657 1657
    # booking is placed the day of the event, notfication should no be sent
1658 1658
    freezer.move_to('2020-01-03 08:00')
1659
    booking = Booking.objects.create(event=event, user_email='t@test.org')
1659
    Booking.objects.create(event=event, user_email='t@test.org')
1660 1660
    call_command('send_booking_reminders')
1661 1661
    assert len(mailoutbox) == 0
1662 1662

  
......
1669 1669
    start_datetime = now() + datetime.timedelta(days=2)
1670 1670
    event = Event.objects.create(agenda=agenda, start_datetime=start_datetime, places=10, label='Event')
1671 1671

  
1672
    for i in range(5):
1673
        booking = Booking.objects.create(event=event, user_phone_number='+336123456789')
1674
    booking = Booking.objects.create(event=event)
1672
    for _ in range(5):
1673
        Booking.objects.create(event=event, user_phone_number='+336123456789')
1674
    Booking.objects.create(event=event)
1675 1675

  
1676 1676
    freezer.move_to('2020-01-02 15:00')
1677 1677
    with mock.patch('chrono.utils.requests_wrapper.RequestsSession.send') as mock_send:
......
1770 1770
def test_agenda_reminders_email_content(mailoutbox, freezer):
1771 1771
    freezer.move_to('2020-01-01 14:00')
1772 1772
    agenda = Agenda.objects.create(label='Events', kind='events')
1773
    settings = AgendaReminderSettings.objects.create(
1773
    AgendaReminderSettings.objects.create(
1774 1774
        agenda=agenda, days=1, send_email=True, email_extra_info='Do no forget ID card.'
1775 1775
    )
1776 1776
    start_datetime = now() + datetime.timedelta(days=2)
......
1784 1784
        pricing='10€',
1785 1785
    )
1786 1786

  
1787
    booking = Booking.objects.create(event=event, user_email='t@test.org')
1787
    Booking.objects.create(event=event, user_email='t@test.org')
1788 1788

  
1789 1789
    freezer.move_to('2020-01-02 15:00')
1790 1790
    call_command('send_booking_reminders')
......
1805 1805
    mailoutbox.clear()
1806 1806

  
1807 1807
    freezer.move_to('2020-01-01 14:00')
1808
    booking = Booking.objects.create(event=event, user_email='t@test.org', form_url='https://example.org/')
1808
    Booking.objects.create(event=event, user_email='t@test.org', form_url='https://example.org/')
1809 1809
    freezer.move_to('2020-01-02 15:00')
1810 1810
    call_command('send_booking_reminders')
1811 1811

  
......
1825 1825
    start_datetime = now() + datetime.timedelta(days=2)
1826 1826
    event = Event.objects.create(agenda=agenda, start_datetime=start_datetime, places=10, label='Pool party')
1827 1827

  
1828
    booking = Booking.objects.create(event=event, user_phone_number='+336123456789')
1828
    Booking.objects.create(event=event, user_phone_number='+336123456789')
1829 1829

  
1830 1830
    freezer.move_to('2020-01-02 15:00')
1831 1831
    with mock.patch('chrono.utils.requests_wrapper.RequestsSession.send') as mock_send:
......
1846 1846
    agenda = Agenda.objects.create(label='Events', kind='meetings')
1847 1847
    desk = Desk.objects.create(agenda=agenda, label='Desk')
1848 1848
    meetingtype = MeetingType.objects.create(agenda=agenda, label='Bar', duration=30)
1849
    timeperiod = TimePeriod.objects.create(
1849
    TimePeriod.objects.create(
1850 1850
        desk=desk, weekday=now().weekday(), start_time=datetime.time(10, 0), end_time=datetime.time(18, 0)
1851 1851
    )
1852 1852
    AgendaReminderSettings.objects.create(agenda=agenda, days=2, send_email=True)
......
1877 1877
        agenda=agenda, start_datetime=now() + datetime.timedelta(days=10), places=10, label='Event'
1878 1878
    )
1879 1879

  
1880
    for i in range(5):
1880
    for _ in range(5):
1881 1881
        Booking.objects.create(
1882 1882
            event=event,
1883 1883
            extra_data={'test': True},
......
2113 2113
        places=5,
2114 2114
    )
2115 2115
    event.refresh_from_db()
2116
    start_datetime = localtime(event.start_datetime)
2116
    localtime(event.start_datetime)
2117 2117

  
2118 2118
    recurrences = event.get_recurrences(now(), now() + datetime.timedelta(days=7))
2119 2119
    assert recurrences[0].start_datetime.strftime('%m-%d') == '05-01'
......
2228 2228
    event = daily_event_no_end_date.get_or_create_event_recurrence(
2229 2229
        now() + datetime.timedelta(days=6, hours=2)
2230 2230
    )
2231
    booking = Booking.objects.create(event=event)
2231
    Booking.objects.create(event=event)
2232 2232
    time_period_exception.save()
2233 2233

  
2234 2234
    agenda.update_event_recurrences()
tests/test_import_export.py
224 224
def test_import_export_recurring_event(app, freezer):
225 225
    freezer.move_to('2021-01-12 12:10')
226 226
    agenda = Agenda.objects.create(label='Foo Bar', kind='events')
227
    desk = Desk.objects.create(agenda=agenda, slug='_exceptions_holder')
227
    Desk.objects.create(agenda=agenda, slug='_exceptions_holder')
228 228
    event = Event.objects.create(
229 229
        agenda=agenda,
230 230
        start_datetime=now(),
tests/test_misc.py
225 225
    source_desk = TimePeriodExceptionSource.objects.create(desk=desk, settings_slug='holidays', enabled=True)
226 226
    start_datetime = datetime.datetime(year=2020, month=1, day=2)
227 227
    end_datetime = datetime.datetime(year=2020, month=1, day=3)
228
    for i in range(5):
228
    for _ in range(5):
229 229
        TimePeriodException.objects.create(
230 230
            desk=desk,
231 231
            source=source_desk,
......
241 241
    source_new_desk = TimePeriodExceptionSource.objects.create(
242 242
        desk=new_desk, settings_slug='holidays', enabled=True
243 243
    )
244
    for i in range(5):
244
    for _ in range(5):
245 245
        TimePeriodException.objects.create(
246 246
            desk=new_desk,
247 247
            source=source_new_desk,
......
254 254
    TimePeriodExceptionSource.objects.create(desk=new_desk, settings_slug='holidays', enabled=True)
255 255

  
256 256
    # wrong duplicate of exceptions, referencing original desk source
257
    for i in range(5):
257
    for _ in range(5):
258 258
        TimePeriodException.objects.create(
259 259
            desk=new_desk,
260 260
            source=source_desk,
tests/test_requests.py
34 34
        requests.get('/foo/bar/', remote_service=remote_service)
35 35
        url = send.call_args[0][0].url
36 36
        assert url.startswith('http://example.org/foo/bar/?')
37
        scheme, netloc, path, params, querystring, fragment = urlparse.urlparse(url)
37
        querystring = urlparse.urlparse(url)[4]
38 38
        query = urlparse.parse_qs(querystring, keep_blank_values=True)
39 39
        assert query['orig'][0] == 'myself'
40 40
        assert query['email'][0] == ''
......
44 44
        requests.get('/foo/bar/', remote_service=remote_service, without_user=True)
45 45
        url = send.call_args[0][0].url
46 46
        assert url.startswith('http://example.org/foo/bar/?')
47
        scheme, netloc, path, params, querystring, fragment = urlparse.urlparse(url)
47
        querystring = urlparse.urlparse(url)[4]
48 48
        query = urlparse.parse_qs(querystring, keep_blank_values=True)
49 49
        assert query['orig'][0] == 'myself'
50 50
        assert 'email' not in query
......
57 57
        requests.get('http://example.org/foo/bar/', remote_service='auto')
58 58
        url = send.call_args[0][0].url
59 59
        assert url.startswith('http://example.org/foo/bar/?')
60
        scheme, netloc, path, params, querystring, fragment = urlparse.urlparse(url)
60
        querystring = urlparse.urlparse(url)[4]
61 61
        query = urlparse.parse_qs(querystring, keep_blank_values=True)
62 62
        assert query['orig'][0] == 'chrono'
63 63
        assert check_query(querystring, 'chrono') == True
......
75 75
        requests.get('/foo/bar/', remote_service=remote_service, user=user)
76 76
        url = send.call_args[0][0].url
77 77
        assert url.startswith('http://example.org/foo/bar/?')
78
        scheme, netloc, path, params, querystring, fragment = urlparse.urlparse(url)
78
        querystring = urlparse.urlparse(url)[4]
79 79
        query = urlparse.parse_qs(querystring, keep_blank_values=True)
80 80
        assert query['NameID'][0] == 'r2d2'
81 81
        assert 'email' not in query
......
85 85
        requests.get('/foo/bar/', remote_service=remote_service, user=user, federation_key='email')
86 86
        url = send.call_args[0][0].url
87 87
        assert url.startswith('http://example.org/foo/bar/?')
88
        scheme, netloc, path, params, querystring, fragment = urlparse.urlparse(url)
88
        querystring = urlparse.urlparse(url)[4]
89 89
        query = urlparse.parse_qs(querystring, keep_blank_values=True)
90 90
        assert query['email'][0] == 'foo@example.net'
91 91
        assert 'NameID' not in query
......
97 97
        requests.get('/foo/bar/', remote_service=remote_service, user=user)
98 98
        url = send.call_args[0][0].url
99 99
        assert url.startswith('http://example.org/foo/bar/?')
100
        scheme, netloc, path, params, querystring, fragment = urlparse.urlparse(url)
100
        querystring = urlparse.urlparse(url)[4]
101 101
        query = urlparse.parse_qs(querystring, keep_blank_values=True)
102 102
        assert 'NameID' not in query
103 103
        assert query['email'][0] == 'foo@example.net'
......
114 114
        requests.get('/foo/bar/', remote_service=remote_service, user=user)
115 115
        url = send.call_args[0][0].url
116 116
        assert url.startswith('http://example.org/foo/bar/?')
117
        scheme, netloc, path, params, querystring, fragment = urlparse.urlparse(url)
117
        querystring = urlparse.urlparse(url)[4]
118 118
        query = urlparse.parse_qs(querystring, keep_blank_values=True)
119 119
        assert query['NameID'][0] == ''
120 120
        assert query['email'][0] == ''
121
-