예제 #1
0
def test_trailing_slash_redirects_trailing_slash():
    mk('foo')
    response = assert_raises(Response, check_trailing_slash, '/foo')

    expected = 301
    actual = response.code
    assert actual == expected, actual
예제 #2
0
def test_trailing_slash_redirects_trailing_slash_to_the_right_place():
    mk('foo')
    response = assert_raises(Response, check_trailing_slash, '/foo')

    expected = 'http://localhost/foo/'
    actual = response.headers.one('Location')
    assert actual == expected, actual
예제 #3
0
def test_packet_with_odd_frames_tells_you_that():
    Packet_ = lambda s: list(Packet(s)) # assert_raises chokes on generator
    packet = FFFD+'4'+FFFD+'0:::'+FFFD
    exc = assert_raises(SyntaxError, Packet_, packet)
    expected = "There are an odd number of frames in this packet: %s" % packet
    actual = exc.args[0]
    assert actual == expected, actual
예제 #4
0
def test_get_app_doc_example_bar_no_slash():
    mk('__', '__/etc', ('__/etc/apps.conf', EXAMPLE))
    environ = dict()
    environ['wsgi.url_scheme'] = 'http'
    environ['HTTP_HOST'] = 'foo'
    environ['PATH_INFO'] = '/bar'
    err = assert_raises(Response, Website().get_app, environ)
    assert err.code == 301, err.code
예제 #5
0
def test_event_data_without_name_raises_ValueError():
    exc = assert_raises( ValueError
                            , Message.from_bytes
                            , '5:::{"noom": "bar", "args": []}'
                             )
    expected = "An event message must have a 'name' key."
    actual = exc.args[0]
    assert actual == expected, actual
예제 #6
0
def test_raise_response_works():
    expected = 404
    response = assert_raises( Response
                            , check
                            , "from aspen import Response; raise Response(404)"
                             )
    actual = response.code
    assert actual == expected, actual
예제 #7
0
def test_event_data_with_reserved_name_raises_ValueError():
    exc = assert_raises( ValueError
                       , Message.from_bytes
                       , '5:::{"name": "connect", "args": []}'
                        )
    expected = "That event name is reserved: connect."
    actual = exc.args[0]
    assert actual == expected, actual
예제 #8
0
def test_contested_url_path_trailing_second():
    mk('__/etc', ('__/etc/apps.conf', """

        /foo  random:choice
        /foo/ random:sample

        """))
    err = assert_raises(AppsConfError, Loader().load_apps)
    assert err.msg == "URL path is contested: '/foo/'", err.msg
예제 #9
0
def test_section_not_callable():
    mk('__/etc', ('__/etc/handlers.conf', """

        foo random:choice

        [string:digits]
        foo

        """))

    err = assert_raises(HandlersConfError, Loader().load_handlers)
    assert err.msg == "'string:digits' is not callable", err.msg
예제 #10
0
def test_find_default_dir_no_default():
    mk('fsfix')
    err = assert_raises(Response, u.find_default, ['index.htm'], 'fsfix')
    assert err.code == 403, err.code
예제 #11
0
def test_json_doesnt_handle_non_ascii_bytestrings():
    assert_raises( UnicodeDecodeError
                 , check
                 , "response.body = {'Greetings': chr(181)}"
                 , filename="foo.json"
                  )
예제 #12
0
def test_must_be_callable():
    mk('__/etc', ('__/etc/middleware.conf', 'string:digits'))
    err = assert_raises(MiddlewareConfError, Loader().load_middleware)
    assert err.msg == "'string:digits' is not callable"
예제 #13
0
파일: test_hooks.py 프로젝트: dowski/aspen
def test_must_be_callable():
    mk('.aspen', ('.aspen/hooks.conf', 'string:digits'))
    err = assert_raises(ConfFileError, load)
    assert err.msg == ("'string:digits' is not callable. [fsfix/.aspen"
                       "/hooks.conf, line 1]"), err.msg
예제 #14
0
def test_from_bytes_too_few_colons_raises_SyntaxError():
    exc = assert_raises(SyntaxError, Message.from_bytes, '3:')
    expected = "This message has too few colons: 3:."
    actual = exc.args[0]
    assert actual == expected, actual
예제 #15
0
def test_allow_can_handle_lowercase():
    request = StubRequest()
    expected = 405
    actual = assert_raises(Response, request.allow, 'post').code
    assert actual == expected, actual
예제 #16
0
def test_tornado_utf8_breaks_with_whitespace():
    template = Template(u" {{ text }}")
    assert_raises(UnicodeDecodeError, template.generate, text=unichr(1758))
예제 #17
0
def test_section_no_rules_yet():
    mk('__/etc', ('__/etc/handlers.conf', '[foo]'))
    err = assert_raises(HandlersConfError, Loader().load_handlers)
    assert err.msg == "no rules specified yet", err.msg
예제 #18
0
def test_section_bad_section_header():
    mk('__/etc', ('__/etc/handlers.conf', '[foo'))
    err = assert_raises(HandlersConfError, Loader().load_handlers)
    assert err.msg == "missing end-bracket", err.msg
예제 #19
0
def test_anon_not_callable():
    mk('__/etc', ('__/etc/handlers.conf', 'foo string:digits'))
    err = assert_raises(HandlersConfError, Loader().load_handlers)
    assert err.msg == "'string:digits' is not callable", err.msg
예제 #20
0
def test_anon_bad_line():
    mk('__/etc', ('__/etc/handlers.conf', 'foo\n[foo]'))
    err = assert_raises(HandlersConfError, Loader().load_handlers)
    assert err.msg == "malformed line (no space): 'foo'", err.msg
예제 #21
0
파일: test_hooks.py 프로젝트: berryp/aspen
def test_must_be_callable():
    mk('.aspen', ('.aspen/hooks.conf', 'string:digits'))
    err = assert_raises(ConfFileError, load)
    assert err.msg == ("'string:digits' is not callable. [fsfix/.aspen"
                       "/hooks.conf, line 1]"), err.msg
예제 #22
0
def test_callback_root_fails_when_directory_doesnt_exist():
    assert_raises(ConfigurationError, callback_root, None, None, 'fsfix', None)
예제 #23
0
def test_to_diesel_raises_AttributeError():
    # This is because _to_diesel actually pushes bits, but we have no loop
    response = Response()
    assert_raises(AttributeError, response._to_diesel, DieselReq)
예제 #24
0
def test_virtual_path_raises_404_on_bad_typecast():
    mk(('%year.int/foo.html', "Greetings, program!"))
    response = assert_raises(Response, check_virtual_paths, '/I am not a year./foo.html')
    expected = 404
    actual = response.code
    assert actual == expected, actual
예제 #25
0
def test_virtual_path_raises_404_on_direct_access():
    mk()
    response = assert_raises(Response, check_virtual_paths, '/%name/foo.html')
    expected = 404
    actual = response.code
    assert actual == expected, actual
예제 #26
0
def test_virtual_path_raises_on_bad_typecast():
    mk(('%year.int/foo.html', "Greetings, program!"))
    assert_raises(Response, check, '/I am not a year./foo.html')
예제 #27
0
def test_find_root_fails_when_directory_doesnt_exist():
    assert_raises(ConfigurationError, find_root, ["fsfix"])
예제 #28
0
def test_virtual_path_raises_404_on_bad_typecast():
    mk(('%year.int/foo.html', "Greetings, program!"))
    response = assert_raises(Response, check, '/I am not a year./foo.html')
    expected = 404
    actual = response.code
    assert actual == expected, actual
예제 #29
0
def test_ConfigurationError_raised_if_no_cwd():
    mk()
    os.chdir('fsfix')
    os.rmdir(os.getcwd())
    c = Configurable()
    assert_raises(ConfigurationError, c.configure, [])
예제 #30
0
def test_virtual_path_raises_on_direct_access():
    assert_raises(Response, check, '/%name/foo.html')
예제 #31
0
def test_intercept_socket_protects_direct_access():
    request = Request(url="/foo.sock")
    assert_raises(Response, gauntlet.intercept_socket, request)
예제 #32
0
def test_virtual_path_raises_404_on_direct_access():
    response = assert_raises(Response, check, '/%name/foo.html')
    expected = 404
    actual = response.code
    assert actual == expected, actual
예제 #33
0
def test_to_diesel_raises_AttributeError():
    # This is because _to_diesel actually pushes bits, but we have no loop
    response = Response()
    assert_raises(AttributeError, response._to_diesel, DieselReq)
예제 #34
0
def test_bad_line():
    mk('__/etc', ('__/etc/apps.conf', 'godisnowhere'))
    err = assert_raises(AppsConfError, Loader().load_apps)
    assert err.msg == "malformed line (no space): 'godisnowhere'", err.msg
예제 #35
0
def test_json_cant_have_more_than_one_page_break():
    assert_raises(LoadError, check, "", filename="foo.json")
예제 #36
0
def test_bad_urlpath():
    mk('__/etc', ('__/etc/apps.conf', 'foo string:digits'))
    err = assert_raises(AppsConfError, Loader().load_apps)
    assert err.msg == "URL path not specified absolutely: 'foo'", err.msg
예제 #37
0
def test_json_raises_TypeError_on_unknown_types():
    assert_raises( TypeError
                 , check
                 , "class Foo: passresponse.body = Foo()"
                 , filename="foo.json"
                  )
예제 #38
0
def test_not_callable():
    mk('__/etc', ('__/etc/apps.conf', '/ string:digits'))
    err = assert_raises(AppsConfError, Loader().load_apps)
    assert err.msg == "'string:digits' is not callable", err.msg
예제 #39
0
def test_virtual_path_raises_on_bad_typecast():
    mk(('%year.int/foo.html', "Greetings, program!"))
    assert_raises(Response, check_virtual_paths, '/I am not a year./foo.html')
예제 #40
0
def test_from_bytes_non_digit_type_raises_ValueError():
    exc = assert_raises(ValueError, Message.from_bytes, 'foo:::')
    expected = "The message type is not in 0..8: foo."
    actual = exc.args[0]
    assert actual == expected, actual
예제 #41
0
def test_virtual_path_raises_on_direct_access():
    mk()
    assert_raises(Response, check_virtual_paths, '/%name/foo.html')
예제 #42
0
def test_blank_by_default():
    assert_raises(AttributeError, lambda: Request().version)
예제 #43
0
def test_from_bytes_type_too_big_raises_ValueError():
    exc = assert_raises(ValueError, Message.from_bytes, '9:::')
    expected = "The message type is not in 0..8: 9."
    actual = exc.args[0]
    assert actual == expected, actual
예제 #44
0
def test_allow_disallows_disallowed():
    request = make_request()
    expected = 405
    actual = assert_raises(Response, request.allow, 'POST').code
    assert actual == expected, actual
예제 #45
0
def test_response_body_cannot_be_unicode():
    exc = assert_raises(TypeError, Response, body=u"Greetings, program!")
예제 #46
0
def test_allow_can_handle_lowercase():
    request = make_request()
    expected = 405
    actual = assert_raises(Response, request.allow, 'post').code
    assert actual == expected, actual
예제 #47
0
def test_allow_disallows_disallowed():
    request = StubRequest()
    expected = 405
    actual = assert_raises(Response, request.allow, 'POST').code
    assert actual == expected, actual
예제 #48
0
def test_channel_raises_AssertionError_on_double_add():
    mk(('echo.sock', ''))
    socket = make_socket()
    channel = Channel('foo', ThreadedBuffer)
    channel.add(socket)
    assert_raises(AssertionError, channel.add, socket)
예제 #49
0
def test_blank_by_default():
    assert_raises(AttributeError, lambda: Request().version)
예제 #50
0
def test_packet_with_odd_frames_raises_SyntaxError():
    Packet_ = lambda s: list(Packet(s)) # assert_raises chokes on generator
    assert_raises(SyntaxError, Packet_, FFFD+'4'+FFFD+'0:::'+FFFD)