api: anchor routes at the start of strings (#39618)
This commit is contained in:
parent
d38f62ed1b
commit
b2b1b82591
|
@ -19,34 +19,34 @@ from django.conf.urls import url
|
|||
from . import views
|
||||
|
||||
urlpatterns = [
|
||||
url(r'agenda/$', views.agendas),
|
||||
url(r'agenda/(?P<agenda_identifier>[\w-]+)/$', views.agenda_detail),
|
||||
url(r'agenda/(?P<agenda_identifier>[\w-]+)/datetimes/$', views.datetimes, name='api-agenda-datetimes'),
|
||||
url(r'^agenda/$', views.agendas),
|
||||
url(r'^agenda/(?P<agenda_identifier>[\w-]+)/$', views.agenda_detail),
|
||||
url(r'^agenda/(?P<agenda_identifier>[\w-]+)/datetimes/$', views.datetimes, name='api-agenda-datetimes'),
|
||||
url(
|
||||
r'agenda/(?P<agenda_identifier>[\w-]+)/fillslot/(?P<event_identifier>[\w:-]+)/$',
|
||||
r'^agenda/(?P<agenda_identifier>[\w-]+)/fillslot/(?P<event_identifier>[\w:-]+)/$',
|
||||
views.fillslot,
|
||||
name='api-fillslot',
|
||||
),
|
||||
url(r'agenda/(?P<agenda_identifier>[\w-]+)/fillslots/$', views.fillslots, name='api-agenda-fillslots'),
|
||||
url(r'^agenda/(?P<agenda_identifier>[\w-]+)/fillslots/$', views.fillslots, name='api-agenda-fillslots'),
|
||||
url(
|
||||
r'agenda/(?P<agenda_identifier>[\w-]+)/status/(?P<event_identifier>[\w-]+)/$',
|
||||
r'^agenda/(?P<agenda_identifier>[\w-]+)/status/(?P<event_identifier>[\w-]+)/$',
|
||||
views.slot_status,
|
||||
name='api-event-status',
|
||||
),
|
||||
url(
|
||||
r'agenda/meetings/(?P<meeting_identifier>[\w-]+)/datetimes/$',
|
||||
r'^agenda/meetings/(?P<meeting_identifier>[\w-]+)/datetimes/$',
|
||||
views.meeting_datetimes,
|
||||
name='api-agenda-meeting-datetimes-legacy',
|
||||
),
|
||||
url(r'agenda/(?P<agenda_identifier>[\w-]+)/meetings/$', views.meeting_list, name='api-agenda-meetings'),
|
||||
url(r'agenda/(?P<agenda_identifier>[\w-]+)/desks/$', views.agenda_desk_list, name='api-agenda-desks'),
|
||||
url(r'^agenda/(?P<agenda_identifier>[\w-]+)/meetings/$', views.meeting_list, name='api-agenda-meetings'),
|
||||
url(r'^agenda/(?P<agenda_identifier>[\w-]+)/desks/$', views.agenda_desk_list, name='api-agenda-desks'),
|
||||
url(
|
||||
r'agenda/(?P<agenda_identifier>[\w-]+)/meetings/(?P<meeting_identifier>[\w-]+)/datetimes/$',
|
||||
r'^agenda/(?P<agenda_identifier>[\w-]+)/meetings/(?P<meeting_identifier>[\w-]+)/datetimes/$',
|
||||
views.meeting_datetimes,
|
||||
name='api-agenda-meeting-datetimes',
|
||||
),
|
||||
url(r'booking/(?P<booking_pk>\w+)/$', views.booking),
|
||||
url(r'booking/(?P<booking_pk>\w+)/cancel/$', views.cancel_booking, name='api-cancel-booking'),
|
||||
url(r'booking/(?P<booking_pk>\w+)/accept/$', views.accept_booking, name='api-accept-booking'),
|
||||
url(r'booking/(?P<booking_pk>\w+)/ics/$', views.booking_ics, name='api-booking-ics'),
|
||||
url(r'^booking/(?P<booking_pk>\w+)/$', views.booking),
|
||||
url(r'^booking/(?P<booking_pk>\w+)/cancel/$', views.cancel_booking, name='api-cancel-booking'),
|
||||
url(r'^booking/(?P<booking_pk>\w+)/accept/$', views.accept_booking, name='api-accept-booking'),
|
||||
url(r'^booking/(?P<booking_pk>\w+)/ics/$', views.booking_ics, name='api-booking-ics'),
|
||||
]
|
||||
|
|
|
@ -2123,3 +2123,18 @@ def test_datetimes_api_meetings_agenda_start_hour_change(app, meetings_agenda):
|
|||
# them.
|
||||
resp = app.get(api_url)
|
||||
assert len([x for x in resp.json['data'] if x['disabled']]) == 2
|
||||
|
||||
|
||||
def test_agenda_detail_routing(app, meetings_agenda):
|
||||
api_url = '/api/agenda/%s/' % meetings_agenda.slug
|
||||
resp = app.get(api_url)
|
||||
assert type(resp.json['data']) is dict
|
||||
|
||||
# check it doesn't get confused with an agenda with "agenda" in its slug
|
||||
agenda = Agenda(
|
||||
label=u'Foo bar Agenda', kind='meetings', minimal_booking_delay=1, maximal_booking_delay=56
|
||||
)
|
||||
agenda.save()
|
||||
api_url = '/api/agenda/%s/' % agenda.slug
|
||||
resp = app.get(api_url)
|
||||
assert type(resp.json['data']) is dict
|
||||
|
|
Loading…
Reference in New Issue