def test_view_raises_http_error(): app = App() c = setup() c.configurable(app) c.commit() from werkzeug.exceptions import BadRequest def view(request, model): raise BadRequest() register_model(app, Model, 'foo', None, Model) register_view(app, Model, view) response = publish(app.request(get_environ(path='foo')), app.mounted()) assert response.status == '400 BAD REQUEST'
def test_traject_path_with_leading_slash(): app = App() root = Root() def get_model(id): model = Model() model.id = id return model c = setup() c.configurable(app) c.commit() register_root(app, Root, lambda: root) register_model(app, Model, '/foo/{id}', lambda model: {'id': model.id}, get_model) obj, request = consume(app, 'foo/a') assert obj.id == 'a' obj, request = consume(app, '/foo/a') assert obj.id == 'a'
def test_register_model(): app = App() root = Root() lookup = app.lookup() def get_model(id): model = Model() model.id = id return model c = setup() c.configurable(app) c.commit() register_root(app, Root, lambda: root) register_model(app, Model, '{id}', lambda model: {'id': model.id}, get_model) obj, request = consume(app, 'a') assert obj.id == 'a' model = Model() model.id = 'b' assert generic.path(model, lookup=lookup) == 'b' assert generic.base(model, lookup=lookup) is app