def APIURLSpec(url, *args, **kwargs):
    l = []
    template = string.Template(url)
    for version in API_VERSIONS:
        l.append(template.substitute(apiver=version))
    l = sorted(list(set(l)))
    if len(l) == 1:
        return URLSpec(l[0], *args, **kwargs)
    return [URLSpec(x, *args, **kwargs) for x in l]
Exemple #2
0
def test__get_tuple_from_route():
    """Test shissen.api_doc_gen._get_tuple_from_route"""
    pattern = r"/$"
    handler_class = object
    expected_output = (pattern, handler_class)

    # Test 2-tuple
    assert _get_tuple_from_route((pattern, handler_class)) == expected_output
    # Test 3-tuple (with the extra arg as kwarg(s)
    assert _get_tuple_from_route(
        (pattern, handler_class, None)) == expected_output
    # Test URLSpec
    assert _get_tuple_from_route(URLSpec(pattern,
                                         handler_class)) == expected_output
    # Test invalid type
    with pytest.raises(TypeError):
        _get_tuple_from_route([])
    # Test malformed tuple (i.e., smaller length than 2)
    with pytest.raises(AssertionError):
        _get_tuple_from_route(("foobar", ))
Exemple #3
0
    def test_reverse(self):
        spec = URLSpec("/page", None)
        self.assertEqual(spec.reverse(), "/page")
        self.assertRaises(
            URLReverseError,
            lambda: spec.reverse(42)
        )
        self.assertEqual(
            spec.reverse(name="val ue"),
            "/page?name=val+ue")
        self.assertEqual(
            spec.reverse(name="value", val2=42),
            "/page?name=value&val2=42")

        spec = URLSpec("/page/(d+)", None)
        self.assertRaises(
            URLReverseError,
            lambda: spec.reverse()
        )
        self.assertEqual(spec.reverse(1), "/page/1")
        self.assertEqual(
            spec.reverse(15, name="test"),
            "/page/15?name=test")

        spec = URLSpec("/page/(d+)/(/d+)/(/d+)", None)
        self.assertRaises(
            URLReverseError,
            lambda: spec.reverse()
        )
        self.assertRaises(
            URLReverseError,
            lambda: spec.reverse(1)
        )
        self.assertRaises(
            URLReverseError,
            lambda: spec.reverse(1, 2)
        )
        self.assertEqual(spec.reverse(11, 22, 33), "/page/11/22/33")
        self.assertEqual(
            spec.reverse(11, 22, 33, hello="world"),
            "/page/11/22/33?hello=world")
Exemple #4
0
from cyclone.web import URLSpec
from cyclone_server import views
from cyclone_server import api


def munge_route_list(rl):
    new_l = []
    for item in rl:
        if isinstance(item, list):
            new_l.extend(munge_route_list(item))
        else:
            new_l.append(item)
    return new_l


routes = munge_route_list([
    URLSpec(r'/', views.IndexHandler),
    URLSpec(r'/api/latest/tweets', api.TweetHandler)
])
Exemple #5
0
from cyclone.web import StaticFileHandler


def munge_route_list(rl):
    new_l = []
    for item in rl:
        if isinstance(item, list):
            new_l.extend(munge_route_list(item))
        else:
            new_l.append(item)
    return new_l


routes = munge_route_list([
    #VIEWS
    URLSpec(r'/', views.IndexHandler, name='home'),
    URLSpec(r'/main', views.DeadlinesHandler, name='main'),
    URLSpec(r'/ta_create_assignment', views.newAssignmentHandler),
    URLSpec(r'/statistics/([0-9]+)', views.taStats),
    URLSpec(r'/mainta', views.DeadlinesTAHandler, name='mainta'),
    URLSpec(r'/assignment', views.AssignmentHandler, name='assignment'),
    URLSpec(r'/assignment/([0-9]+)',
            views.AssignmentHandler,
            name='assignment'),
    URLSpec(r'/evaluateAssignment/([0-9]+)', views.EvaluateHandler),
    URLSpec(r'/logout', views.LogoutHandler),

    #APIs
    URLSpec(r'/login', api.LoginHandler),
    URLSpec(r'/courses', api.CoursesHandler),
    URLSpec(r'/deadlines', api.DeadlinesHandler),
from cyclone.web import URLSpec
from cyclone_server import views
from cyclone_server import api


def munge_route_list(rl):
    new_l = []
    for item in rl:
        if isinstance(item, list):
            new_l.extend(munge_route_list(item))
        else:
            new_l.append(item)
    return new_l


routes = munge_route_list([
    URLSpec(r'/', views.IndexHandler),
    URLSpec(r'/home', views.HomeViewHandler),
    URLSpec(r'/document/([0-9]+)', views.DocumentViewHandler),
    URLSpec(r'/search/(.*)', views.SearchViewHandler),
    URLSpec(r'/api/latest/sample', api.SampleHandler)
])
Exemple #7
0
from cyclone.web import URLSpec
from cyclone_server import views
from cyclone_server import api


def munge_route_list(rl):
    new_l = []
    for item in rl:
        if isinstance(item, list):
            new_l.extend(munge_route_list(item))
        else:
            new_l.append(item)
    return new_l


routes = munge_route_list([
    URLSpec(r'/', views.IndexHandler, name='home'),
    URLSpec(r'/stats_home', views.StatsHomeHandler, name='stats_home'),
    URLSpec(r'/stats/(.*)', views.StatsHandler, name="stats"),
    URLSpec(r'/api/latest/path/(.*)', api.PathHandler),
    URLSpec(r'/api/latest/getlayout/(.*)', api.LayoutHandler),
    URLSpec(r'/api/latest/genlayout/(.*)', api.LayoutGenerator),
    URLSpec(r'/api/latest/rmlayout', api.LayoutKiller),
])
    for version in API_VERSIONS:
        l.append(template.substitute(apiver=version))
    l = sorted(list(set(l)))
    if len(l) == 1:
        return URLSpec(l[0], *args, **kwargs)
    return [URLSpec(x, *args, **kwargs) for x in l]


def munge_route_list(rl):
    new_l = []
    for item in rl:
        if isinstance(item, list):
            new_l.extend(munge_route_list(item))
        else:
            new_l.append(item)
    return new_l


routes = munge_route_list([
    URLSpec(r'/', views.IndexHandler, name='home'),
    #Pan recognition
    URLSpec(r'/cam', views.SampleWebcamHandler, name="sample_cam"),
    APIURLSpec(r'/api/$apiver/camupload', api.CamUploadHandler),
    #scheme
    URLSpec(r'/add_scheme', views.Scheme, name='add_scheme'),
    URLSpec(r'/update_scheme/([0-9]+)', views.Scheme, name='update_scheme'),
    APIURLSpec(r'/api/add_scheme', api.UploadScheme),
    #Search
    APIURLSpec(r'/api/$apiver/search', api.SearchHandler)
])