xref: /aosp_15_r20/external/autotest/frontend/urls_common.py (revision 9c5db1993ded3edbeafc8092d69fe5de2ee02df7)
1*9c5db199SXin Liimport os
2*9c5db199SXin Lifrom django.conf import urls
3*9c5db199SXin Lifrom django.views import generic
4*9c5db199SXin Li
5*9c5db199SXin Li
6*9c5db199SXin Lidef generate_patterns(django_name, gwt_name):
7*9c5db199SXin Li    """
8*9c5db199SXin Li    Generates the common URL patterns for the given names
9*9c5db199SXin Li
10*9c5db199SXin Li    @param django_name the full name of the Django application
11*9c5db199SXin Li                       (e.g., frontend.afe)
12*9c5db199SXin Li    @param gwt_name the name of the GWT project (e.g., AfeClient)
13*9c5db199SXin Li    @return the common standard and the debug pattern lists, as a tuple
14*9c5db199SXin Li    """
15*9c5db199SXin Li
16*9c5db199SXin Li    pattern_list = urls.patterns(
17*9c5db199SXin Li            django_name,
18*9c5db199SXin Li            (r'^(?:|noauth/)rpc/', 'views.handle_rpc'),
19*9c5db199SXin Li            (r'^rpc_doc', 'views.rpc_documentation'),
20*9c5db199SXin Li        )
21*9c5db199SXin Li
22*9c5db199SXin Li    debug_pattern_list = urls.patterns('',
23*9c5db199SXin Li            # for GWT hosted mode
24*9c5db199SXin Li            (r'^(?P<forward_addr>autotest.*)',
25*9c5db199SXin Li             'autotest_lib.frontend.afe.views.gwt_forward'),
26*9c5db199SXin Li
27*9c5db199SXin Li            # for GWT compiled files
28*9c5db199SXin Li            (r'^client/(?P<path>.*)$', 'django.views.static.serve',
29*9c5db199SXin Li             {'document_root': os.path.join(os.path.dirname(__file__), '..',
30*9c5db199SXin Li                                            'frontend', 'client', 'www')}),
31*9c5db199SXin Li            # redirect / to compiled client
32*9c5db199SXin Li            (r'^$', generic.RedirectView.as_view(
33*9c5db199SXin Li                    url='client/autotest.%(name)s/%(name)s.html'
34*9c5db199SXin Li                    % dict(name=gwt_name))),
35*9c5db199SXin Li        )
36*9c5db199SXin Li
37*9c5db199SXin Li    return (pattern_list, debug_pattern_list)
38