Regression

test.demonstrator_test.DemonstratorTestCase.test_render_index (from pytest)

Failing for the past 1 build (Since #481 )
Took 14 ms.

Error Message

werkzeug.routing.BuildError: Could not build url for endpoint 'help'. Did you mean 'modeling' instead?

Stacktrace

self = <demonstrator_test.DemonstratorTestCase testMethod=test_render_index>

    def test_render_index(self):
>       rv = self.app.get('/')

test/demonstrator_test.py:47: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
../../shiningpanda/jobs/62c67c92/virtualenvs/d41d8cd9/lib/python3.5/site-packages/werkzeug/test.py:830: in get
    return self.open(*args, **kw)
../../shiningpanda/jobs/62c67c92/virtualenvs/d41d8cd9/lib/python3.5/site-packages/flask/testing.py:127: in open
    follow_redirects=follow_redirects)
../../shiningpanda/jobs/62c67c92/virtualenvs/d41d8cd9/lib/python3.5/site-packages/werkzeug/test.py:803: in open
    response = self.run_wsgi_app(environ, buffered=buffered)
../../shiningpanda/jobs/62c67c92/virtualenvs/d41d8cd9/lib/python3.5/site-packages/werkzeug/test.py:716: in run_wsgi_app
    rv = run_wsgi_app(self.application, environ, buffered=buffered)
../../shiningpanda/jobs/62c67c92/virtualenvs/d41d8cd9/lib/python3.5/site-packages/werkzeug/test.py:923: in run_wsgi_app
    app_rv = app(environ, start_response)
../../shiningpanda/jobs/62c67c92/virtualenvs/d41d8cd9/lib/python3.5/site-packages/flask/app.py:1997: in __call__
    return self.wsgi_app(environ, start_response)
../../shiningpanda/jobs/62c67c92/virtualenvs/d41d8cd9/lib/python3.5/site-packages/flask/app.py:1985: in wsgi_app
    response = self.handle_exception(e)
../../shiningpanda/jobs/62c67c92/virtualenvs/d41d8cd9/lib/python3.5/site-packages/flask/app.py:1540: in handle_exception
    reraise(exc_type, exc_value, tb)
../../shiningpanda/jobs/62c67c92/virtualenvs/d41d8cd9/lib/python3.5/site-packages/flask/_compat.py:33: in reraise
    raise value
../../shiningpanda/jobs/62c67c92/virtualenvs/d41d8cd9/lib/python3.5/site-packages/flask/app.py:1982: in wsgi_app
    response = self.full_dispatch_request()
../../shiningpanda/jobs/62c67c92/virtualenvs/d41d8cd9/lib/python3.5/site-packages/flask/app.py:1614: in full_dispatch_request
    rv = self.handle_user_exception(e)
../../shiningpanda/jobs/62c67c92/virtualenvs/d41d8cd9/lib/python3.5/site-packages/flask/app.py:1517: in handle_user_exception
    reraise(exc_type, exc_value, tb)
../../shiningpanda/jobs/62c67c92/virtualenvs/d41d8cd9/lib/python3.5/site-packages/flask/_compat.py:33: in reraise
    raise value
../../shiningpanda/jobs/62c67c92/virtualenvs/d41d8cd9/lib/python3.5/site-packages/flask/app.py:1612: in full_dispatch_request
    rv = self.dispatch_request()
../../shiningpanda/jobs/62c67c92/virtualenvs/d41d8cd9/lib/python3.5/site-packages/flask/app.py:1598: in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
demonstrator/webapp.py:59: in index
    return render_template('index.html')
../../shiningpanda/jobs/62c67c92/virtualenvs/d41d8cd9/lib/python3.5/site-packages/flask/templating.py:134: in render_template
    context, ctx.app)
../../shiningpanda/jobs/62c67c92/virtualenvs/d41d8cd9/lib/python3.5/site-packages/flask/templating.py:116: in _render
    rv = template.render(context)
../../shiningpanda/jobs/62c67c92/virtualenvs/d41d8cd9/lib/python3.5/site-packages/jinja2/environment.py:1008: in render
    return self.environment.handle_exception(exc_info, True)
../../shiningpanda/jobs/62c67c92/virtualenvs/d41d8cd9/lib/python3.5/site-packages/jinja2/environment.py:780: in handle_exception
    reraise(exc_type, exc_value, tb)
../../shiningpanda/jobs/62c67c92/virtualenvs/d41d8cd9/lib/python3.5/site-packages/jinja2/_compat.py:37: in reraise
    raise value.with_traceback(tb)
demonstrator/templates/index.html:41: in top-level template code
    <a href="{{ url_for('help') }}"><i class="icon-question-sign icon-white"></i> Help</a>
../../shiningpanda/jobs/62c67c92/virtualenvs/d41d8cd9/lib/python3.5/site-packages/flask/helpers.py:333: in url_for
    return appctx.app.handle_url_build_error(error, endpoint, values)
../../shiningpanda/jobs/62c67c92/virtualenvs/d41d8cd9/lib/python3.5/site-packages/flask/app.py:1805: in handle_url_build_error
    reraise(exc_type, exc_value, tb)
../../shiningpanda/jobs/62c67c92/virtualenvs/d41d8cd9/lib/python3.5/site-packages/flask/_compat.py:33: in reraise
    raise value
../../shiningpanda/jobs/62c67c92/virtualenvs/d41d8cd9/lib/python3.5/site-packages/flask/helpers.py:323: in url_for
    force_external=external)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <werkzeug.routing.MapAdapter object at 0x7f21dc080e10>, endpoint = 'help'
values = {}, method = None, force_external = False, append_unknown = True

    def build(self, endpoint, values=None, method=None, force_external=False,
              append_unknown=True):
        """Building URLs works pretty much the other way round.  Instead of
            `match` you call `build` and pass it the endpoint and a dict of
            arguments for the placeholders.
    
            The `build` function also accepts an argument called `force_external`
            which, if you set it to `True` will force external URLs. Per default
            external URLs (include the server name) will only be used if the
            target URL is on a different subdomain.
    
            >>> m = Map([
            ...     Rule('/', endpoint='index'),
            ...     Rule('/downloads/', endpoint='downloads/index'),
            ...     Rule('/downloads/<int:id>', endpoint='downloads/show')
            ... ])
            >>> urls = m.bind("example.com", "/")
            >>> urls.build("index", {})
            '/'
            >>> urls.build("downloads/show", {'id': 42})
            '/downloads/42'
            >>> urls.build("downloads/show", {'id': 42}, force_external=True)
            'http://example.com/downloads/42'
    
            Because URLs cannot contain non ASCII data you will always get
            bytestrings back.  Non ASCII characters are urlencoded with the
            charset defined on the map instance.
    
            Additional values are converted to unicode and appended to the URL as
            URL querystring parameters:
    
            >>> urls.build("index", {'q': 'My Searchstring'})
            '/?q=My+Searchstring'
    
            When processing those additional values, lists are furthermore
            interpreted as multiple values (as per
            :py:class:`werkzeug.datastructures.MultiDict`):
    
            >>> urls.build("index", {'q': ['a', 'b', 'c']})
            '/?q=a&q=b&q=c'
    
            If a rule does not exist when building a `BuildError` exception is
            raised.
    
            The build method accepts an argument called `method` which allows you
            to specify the method you want to have an URL built for if you have
            different methods for the same endpoint specified.
    
            .. versionadded:: 0.6
               the `append_unknown` parameter was added.
    
            :param endpoint: the endpoint of the URL to build.
            :param values: the values for the URL to build.  Unhandled values are
                           appended to the URL as query parameters.
            :param method: the HTTP method for the rule if there are different
                           URLs for different methods on the same endpoint.
            :param force_external: enforce full canonical external URLs. If the URL
                                   scheme is not provided, this will generate
                                   a protocol-relative URL.
            :param append_unknown: unknown parameters are appended to the generated
                                   URL as query string argument.  Disable this
                                   if you want the builder to ignore those.
            """
        self.map.update()
        if values:
            if isinstance(values, MultiDict):
                valueiter = iteritems(values, multi=True)
            else:
                valueiter = iteritems(values)
            values = dict((k, v) for k, v in valueiter if v is not None)
        else:
            values = {}
    
        rv = self._partial_build(endpoint, values, method, append_unknown)
        if rv is None:
>           raise BuildError(endpoint, values, method, self)
E           werkzeug.routing.BuildError: Could not build url for endpoint 'help'. Did you mean 'modeling' instead?

../../shiningpanda/jobs/62c67c92/virtualenvs/d41d8cd9/lib/python3.5/site-packages/werkzeug/routing.py:1776: BuildError

Standard Error

INFO webapp: Rendering index.html ...