Merged in [13125] from rcross@amsl.com:
Add REST API endpoint to notify Datatracker that new recording files are available.
- Legacy-Id: 13158
Note: SVN reference [13125] has been migrated to Git commit a50b09b152
This commit is contained in:
commit
69c9d25022
|
@ -6,6 +6,7 @@ from importlib import import_module
|
|||
from django.apps import apps
|
||||
from django.test import Client
|
||||
from django.conf import settings
|
||||
from django.urls import reverse as urlreverse
|
||||
|
||||
from tastypie.exceptions import BadRequest
|
||||
from tastypie.test import ResourceTestCaseMixin
|
||||
|
@ -13,6 +14,7 @@ from tastypie.test import ResourceTestCaseMixin
|
|||
import debug # pyflakes:ignore
|
||||
|
||||
from ietf.utils.test_utils import TestCase
|
||||
from ietf.meeting.test_data import make_meeting_test_data
|
||||
|
||||
OMITTED_APPS = (
|
||||
'ietf.secr.meetings',
|
||||
|
@ -20,6 +22,18 @@ OMITTED_APPS = (
|
|||
'ietf.ipr',
|
||||
)
|
||||
|
||||
class CustomApiTestCase(TestCase):
|
||||
def test_notify_meeting_import_audio_files(self):
|
||||
meeting = make_meeting_test_data()
|
||||
client = Client(Accept='application/json')
|
||||
# try invalid method GET
|
||||
url = urlreverse('ietf.meeting.views.api_import_recordings', kwargs={'number':meeting.number})
|
||||
r = client.get(url)
|
||||
self.assertEqual(r.status_code, 405)
|
||||
# try valid method POST
|
||||
r = client.post(url)
|
||||
self.assertEqual(r.status_code, 201)
|
||||
|
||||
class TastypieApiTestCase(ResourceTestCaseMixin, TestCase):
|
||||
def __init__(self, *args, **kwargs):
|
||||
self.apps = {}
|
||||
|
|
|
@ -31,7 +31,7 @@ from django.template.loader import render_to_string
|
|||
from django.utils.functional import curry
|
||||
from django.views.decorators.cache import cache_page
|
||||
from django.utils.text import slugify
|
||||
from django.views.decorators.csrf import ensure_csrf_cookie
|
||||
from django.views.decorators.csrf import ensure_csrf_cookie, csrf_exempt
|
||||
from django.views.generic import RedirectView
|
||||
from django.template.defaultfilters import filesizeformat
|
||||
|
||||
|
@ -58,7 +58,7 @@ from ietf.meeting.helpers import send_interim_approval_request
|
|||
from ietf.meeting.helpers import send_interim_announcement_request
|
||||
from ietf.meeting.utils import finalize
|
||||
from ietf.secr.proceedings.utils import handle_upload_file
|
||||
from ietf.secr.proceedings.proc_utils import get_progress_stats, post_process
|
||||
from ietf.secr.proceedings.proc_utils import get_progress_stats, post_process, import_audio_files
|
||||
from ietf.utils import log
|
||||
from ietf.utils.mail import send_mail_message
|
||||
from ietf.utils.pipe import pipe
|
||||
|
@ -2162,3 +2162,15 @@ def proceedings_progress_report(request, num=None):
|
|||
class OldUploadRedirect(RedirectView):
|
||||
def get_redirect_url(self, **kwargs):
|
||||
return reverse_lazy('ietf.meeting.views.session_details',kwargs=self.kwargs)
|
||||
|
||||
@csrf_exempt
|
||||
def api_import_recordings(request, number):
|
||||
'''REST API to check for recording files and import'''
|
||||
if request.method == 'POST':
|
||||
meeting = get_meeting(number)
|
||||
import_audio_files(meeting)
|
||||
return HttpResponse(status=201)
|
||||
else:
|
||||
return HttpResponse(status=405)
|
||||
|
||||
|
||||
|
|
|
@ -16,6 +16,7 @@ from ietf.doc import views_search
|
|||
from ietf.help import views as help_views
|
||||
from ietf.ipr.sitemaps import IPRMap
|
||||
from ietf.liaisons.sitemaps import LiaisonMap
|
||||
from ietf.meeting import views as meeting_views
|
||||
from ietf.utils.urls import url
|
||||
|
||||
admin.autodiscover()
|
||||
|
@ -82,6 +83,11 @@ for n,a in api._api_list:
|
|||
url(r'^api/v1/', include(a.urls)),
|
||||
]
|
||||
|
||||
# Custom API endpoints
|
||||
urlpatterns += [
|
||||
url(r'^api/notify/meeting/import_recordings/(?P<number>[a-z0-9-]+)/?$', meeting_views.api_import_recordings),
|
||||
]
|
||||
|
||||
# This is needed to serve files during testing
|
||||
if settings.SERVER_MODE in ('development', 'test'):
|
||||
save_debug = settings.DEBUG
|
||||
|
|
Loading…
Reference in a new issue