Projet

Général

Profil

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

Lauréline Guérin, 12 juillet 2021 11:23

Télécharger (30,7 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                     | 16 +++----
 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, 64 insertions(+), 69 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
140 140
        duration=1,
141 141
    )
142 142
    try:
143
        event_text = Template(value).render(Context({'event': example_event}))
143
        Template(value).render(Context({'event': example_event}))
144 144
    except (VariableDoesNotExist, TemplateSyntaxError) as e:
145 145
        raise ValidationError(_('syntax error: %s') % e)
146 146

  
......
1944 1944
        sources = data.pop('exception_sources', [])
1945 1945
        unavailability_calendars = data.pop('unavailability_calendars', [])
1946 1946
        data = clean_import_data(cls, data)
1947
        desk, created = cls.objects.update_or_create(slug=data['slug'], agenda=data['agenda'], defaults=data)
1947
        desk = cls.objects.update_or_create(slug=data['slug'], agenda=data['agenda'], defaults=data)[0]
1948 1948
        for timeperiod in timeperiods:
1949 1949
            timeperiod['desk'] = desk
1950 1950
            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)
......
1317 1317

  
1318 1318
    def get_week_timetable_infos(self, week_index, week_end_offset=0):
1319 1319
        date = self.date + datetime.timedelta(week_index * 7)
1320
        year, week_number, dow = date.isocalendar()
1320
        dow = date.isocalendar()[2]
1321 1321
        start_date = date - datetime.timedelta(dow)
1322 1322

  
1323 1323
        interval = datetime.timedelta(minutes=60)
......
1358 1358
        while period <= max_date:
1359 1359
            left = 1
1360 1360
            period_end = period + interval
1361
            for desk_index, desk in enumerate(desks):
1361
            for desk in desks:
1362 1362
                width = (98.0 / desks_len) - 1
1363 1363
                for event in [
1364 1364
                    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
446 446

  
447 447
    resp = app.get('/manage/agendas/%s/settings' % agenda.id)
448 448
    resp = resp.click('Configure', href='roles')
449
    role = manager_user.groups.all()[0]
449
    manager_user.groups.all()[0]
450 450
    resp.form['edit_role'] = manager_user.groups.all()[0].pk
451 451
    resp = resp.form.submit().follow()
452 452
    assert 'Edit Role: Managers' in resp.text
......
459 459
    agenda_events = Agenda.objects.create(label=u'Foo bar', kind='events')
460 460
    Desk.objects.create(agenda=agenda_events, slug='_exceptions_holder')
461 461
    agenda_meetings = Agenda.objects.create(label=u'Foo bar', kind='meetings')
462
    agenda_virtual = Agenda.objects.create(label=u'Foo bar', kind='virtual')
462
    Agenda.objects.create(label=u'Foo bar', kind='virtual')
463 463

  
464 464
    app = login(app)
465 465
    resp = app.get('/manage/agendas/%s/edit' % agenda_events.pk)
......
862 862
    agenda = Agenda(label=u'Foo bar', kind='meetings')
863 863
    agenda.save()
864 864
    desk_a = Desk.objects.create(agenda=agenda, label='Desk A')
865
    desk_b = Desk.objects.create(agenda=agenda, label='Desk B')
865
    Desk.objects.create(agenda=agenda, label='Desk B')
866 866

  
867 867
    event = Event(start_datetime=now() + datetime.timedelta(days=10), places=10, agenda=agenda, desk=desk_a)
868 868
    event.save()
......
2818 2818
    assert 'abc' in resp.pyquery.find('.event-info')[3].text
2819 2819
    assert 'abc' in resp.pyquery.find('.event-info')[4].text
2820 2820

  
2821
    time_period_exception = TimePeriodException.objects.create(
2821
    TimePeriodException.objects.create(
2822 2822
        desk=agenda.desk_set.get(),
2823 2823
        start_datetime=start_datetime + datetime.timedelta(days=6),
2824 2824
        end_datetime=start_datetime + datetime.timedelta(days=8),
......
2933 2933
    )
2934 2934
    # weekly recurring event, first recurrence is in the past but second is in range
2935 2935
    start_datetime = now() - datetime.timedelta(days=3)
2936
    event = Event.objects.create(
2936
    Event.objects.create(
2937 2937
        label='event G',
2938 2938
        start_datetime=start_datetime,
2939 2939
        places=10,
......
4471 4471

  
4472 4472
    agenda = Agenda.objects.create(label=u'Foo Bar', kind='events')
4473 4473
    Desk.objects.create(agenda=agenda, slug='_exceptions_holder')
4474
    unavailability_calendar = UnavailabilityCalendar.objects.create(label='Calendar 1')
4474
    UnavailabilityCalendar.objects.create(label='Calendar 1')
4475 4475
    resp = app.get('/manage/agendas/export/')
4476 4476
    resp = resp.form.submit()
4477 4477

  
......
4496 4496
    resp = app.get('/manage/agendas/%s/settings' % agenda.id)
4497 4497
    resp = resp.click('Configure', href='roles')
4498 4498

  
4499
    role = manager_user.groups.all()[0]
4499
    manager_user.groups.all()[0]
4500 4500
    resp.form['edit_role'] = manager_user.groups.all()[0].pk
4501 4501
    resp = resp.form.submit().follow()
4502 4502

  
......
4531 4531
    desk = Desk.objects.create(agenda=agenda, label='New Desk')
4532 4532
    meetingtype = MeetingType.objects.create(agenda=agenda, label='Bar', duration=30)
4533 4533
    today = datetime.date.today()
4534
    timeperiod = TimePeriod.objects.create(
4534
    TimePeriod.objects.create(
4535 4535
        desk=desk, weekday=today.weekday(), start_time=datetime.time(10, 0), end_time=datetime.time(18, 0)
4536 4536
    )
4537 4537

  
tests/manager/test_event.py
383 383
    Desk.objects.create(agenda=agenda, slug='_exceptions_holder')
384 384
    event = Event(start_datetime=make_aware(datetime.datetime(2016, 2, 15, 17, 0)), places=10, agenda=agenda)
385 385
    event.save()
386
    for i in range(2):
386
    for _ in range(2):
387 387
        Booking(event=event).save()
388 388
    app = login(app)
389 389

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

  
398
    for i in range(8):
398
    for _ in range(8):
399 399
        Booking(event=event).save()
400 400

  
401 401
    resp = app.get('/manage/agendas/%s/settings' % agenda.id, status=200)
......
939 939
    def mocked_requests_connection_error(*args, **kwargs):
940 940
        raise requests.exceptions.ConnectionError('unreachable')
941 941

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

  
945 945
    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
......
1418 1418
    agenda = Agenda.objects.create(label='Events', kind='events')
1419 1419
    event = Event.objects.create(agenda=agenda, start_datetime=now(), places=10, label='Event')
1420 1420

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

  
1424 1424
    event.cancellation_scheduled = True
......
1447 1447
        raise requests.exceptions.ConnectionError('unreachable')
1448 1448

  
1449 1449
    booking_good_url = Booking.objects.create(event=event, cancel_callback_url='http://good.org/')
1450
    for i in range(5):
1450
    for _ in range(5):
1451 1451
        Booking.objects.create(event=event, cancel_callback_url='http://example.org/jump/trigger/')
1452 1452

  
1453 1453
    event.cancellation_scheduled = True
......
1509 1509
    settings.save()
1510 1510

  
1511 1511
    # book 9/10 places to reach almost full state
1512
    for i in range(9):
1512
    for _ in range(9):
1513 1513
        Booking.objects.create(event=event)
1514 1514
    event.refresh_from_db()
1515 1515
    assert event.almost_full
......
1536 1536
    settings.full_event_emails = recipients = ['hop@entrouvert.com', 'top@entrouvert.com']
1537 1537
    settings.save()
1538 1538

  
1539
    for i in range(10):
1539
    for _ in range(10):
1540 1540
        Booking.objects.create(event=event)
1541 1541
    event.refresh_from_db()
1542 1542
    assert event.full
......
1601 1601
    start_datetime = now() + datetime.timedelta(days=2)
1602 1602
    event = Event.objects.create(agenda=agenda, start_datetime=start_datetime, places=10, label='Event')
1603 1603

  
1604
    for i in range(5):
1605
        booking = Booking.objects.create(event=event, user_email='t@test.org')
1604
    for _ in range(5):
1605
        Booking.objects.create(event=event, user_email='t@test.org')
1606 1606
    # extra booking with no email, should be ignored
1607
    booking = Booking.objects.create(event=event)
1607
    Booking.objects.create(event=event)
1608 1608

  
1609 1609
    freezer.move_to('2020-01-02 10:00')
1610 1610
    # not time to send reminders yet
......
1624 1624

  
1625 1625
    # booking is placed the day of the event, notfication should no be sent
1626 1626
    freezer.move_to('2020-01-03 08:00')
1627
    booking = Booking.objects.create(event=event, user_email='t@test.org')
1627
    Booking.objects.create(event=event, user_email='t@test.org')
1628 1628
    call_command('send_booking_reminders')
1629 1629
    assert len(mailoutbox) == 0
1630 1630

  
......
1637 1637
    start_datetime = now() + datetime.timedelta(days=2)
1638 1638
    event = Event.objects.create(agenda=agenda, start_datetime=start_datetime, places=10, label='Event')
1639 1639

  
1640
    for i in range(5):
1641
        booking = Booking.objects.create(event=event, user_phone_number='+336123456789')
1642
    booking = Booking.objects.create(event=event)
1640
    for _ in range(5):
1641
        Booking.objects.create(event=event, user_phone_number='+336123456789')
1642
    Booking.objects.create(event=event)
1643 1643

  
1644 1644
    freezer.move_to('2020-01-02 15:00')
1645 1645
    with mock.patch('chrono.utils.requests_wrapper.RequestsSession.send') as mock_send:
......
1738 1738
def test_agenda_reminders_email_content(mailoutbox, freezer):
1739 1739
    freezer.move_to('2020-01-01 14:00')
1740 1740
    agenda = Agenda.objects.create(label='Events', kind='events')
1741
    settings = AgendaReminderSettings.objects.create(
1741
    AgendaReminderSettings.objects.create(
1742 1742
        agenda=agenda, days=1, send_email=True, email_extra_info='Do no forget ID card.'
1743 1743
    )
1744 1744
    start_datetime = now() + datetime.timedelta(days=2)
......
1752 1752
        pricing='10€',
1753 1753
    )
1754 1754

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

  
1757 1757
    freezer.move_to('2020-01-02 15:00')
1758 1758
    call_command('send_booking_reminders')
......
1773 1773
    mailoutbox.clear()
1774 1774

  
1775 1775
    freezer.move_to('2020-01-01 14:00')
1776
    booking = Booking.objects.create(event=event, user_email='t@test.org', form_url='https://example.org/')
1776
    Booking.objects.create(event=event, user_email='t@test.org', form_url='https://example.org/')
1777 1777
    freezer.move_to('2020-01-02 15:00')
1778 1778
    call_command('send_booking_reminders')
1779 1779

  
......
1793 1793
    start_datetime = now() + datetime.timedelta(days=2)
1794 1794
    event = Event.objects.create(agenda=agenda, start_datetime=start_datetime, places=10, label='Pool party')
1795 1795

  
1796
    booking = Booking.objects.create(event=event, user_phone_number='+336123456789')
1796
    Booking.objects.create(event=event, user_phone_number='+336123456789')
1797 1797

  
1798 1798
    freezer.move_to('2020-01-02 15:00')
1799 1799
    with mock.patch('chrono.utils.requests_wrapper.RequestsSession.send') as mock_send:
......
1814 1814
    agenda = Agenda.objects.create(label='Events', kind='meetings')
1815 1815
    desk = Desk.objects.create(agenda=agenda, label='Desk')
1816 1816
    meetingtype = MeetingType.objects.create(agenda=agenda, label='Bar', duration=30)
1817
    timeperiod = TimePeriod.objects.create(
1817
    TimePeriod.objects.create(
1818 1818
        desk=desk, weekday=now().weekday(), start_time=datetime.time(10, 0), end_time=datetime.time(18, 0)
1819 1819
    )
1820 1820
    AgendaReminderSettings.objects.create(agenda=agenda, days=2, send_email=True)
......
1845 1845
        agenda=agenda, start_datetime=now() + datetime.timedelta(days=10), places=10, label='Event'
1846 1846
    )
1847 1847

  
1848
    for i in range(5):
1848
    for _ in range(5):
1849 1849
        Booking.objects.create(
1850 1850
            event=event,
1851 1851
            extra_data={'test': True},
......
2081 2081
        places=5,
2082 2082
    )
2083 2083
    event.refresh_from_db()
2084
    start_datetime = localtime(event.start_datetime)
2084
    localtime(event.start_datetime)
2085 2085

  
2086 2086
    recurrences = event.get_recurrences(now(), now() + datetime.timedelta(days=7))
2087 2087
    assert recurrences[0].start_datetime.strftime('%m-%d') == '05-01'
......
2196 2196
    event = daily_event_no_end_date.get_or_create_event_recurrence(
2197 2197
        now() + datetime.timedelta(days=6, hours=2)
2198 2198
    )
2199
    booking = Booking.objects.create(event=event)
2199
    Booking.objects.create(event=event)
2200 2200
    time_period_exception.save()
2201 2201

  
2202 2202
    agenda.update_event_recurrences()
tests/test_import_export.py
223 223
def test_import_export_recurring_event(app, freezer):
224 224
    freezer.move_to('2021-01-12 12:10')
225 225
    agenda = Agenda.objects.create(label='Foo Bar', kind='events')
226
    desk = Desk.objects.create(agenda=agenda, slug='_exceptions_holder')
226
    Desk.objects.create(agenda=agenda, slug='_exceptions_holder')
227 227
    event = Event.objects.create(
228 228
        agenda=agenda,
229 229
        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
-