def render_with_sql(self, request, query, run_query=True): rows = url_get_rows(request) page = url_get_page(request) fullscreen = url_get_fullscreen(request) template = 'fullscreen' if fullscreen else 'play' form = QueryForm(request.POST if len(request.POST) else None, instance=query) return self.render_template( 'explorer/%s.html' % template, query_viewmodel( request.user, query, title="Playground", run_query=run_query and form.is_valid(), rows=rows, page=page, form=form, ), )
def test_form_is_valid_with_valid_sql(self): q = SimpleQueryFactory(sql="select 1;", created_by_user_id=None) form = QueryForm(model_to_dict(q)) self.assertTrue(form.is_valid())
def test_form_is_invalid_with_non_select_statement(self): q = SimpleQueryFactory(sql="delete $$a$$;", created_by_user_id=None) q.params = {} form = QueryForm(model_to_dict(q)) self.assertFalse(form.is_valid())
def test_form_fails_blacklist(self): q = SimpleQueryFactory(sql="delete $$a$$;", created_by_user_id=None) q.params = {} form = QueryForm(model_to_dict(q)) self.assertFalse(form.is_valid())
def test_form_is_valid_with_valid_sql(self): q = SimpleQueryFactory(sql="select 1;") form = QueryForm(model_to_dict(q)) self.assertTrue(form.is_valid())
def test_form_is_always_valid_with_params(self): q = SimpleQueryFactory(sql="select $$a$$;") q.params = {} form = QueryForm(model_to_dict(q)) self.assertTrue(form.is_valid())
def test_form_fails_blacklist_even_with_params(self): q = SimpleQueryFactory(sql="delete $$a$$;", created_by_user_id=None) q.params = {} form = QueryForm(model_to_dict(q)) self.assertFalse(form.is_valid())
def test_form_is_not_valid_with_invalid_sql(self): q = SimpleQueryFactory(sql="select a;", created_by_user_id=None) form = QueryForm(model_to_dict(q)) self.assertFalse(form.is_valid())
def test_form_is_always_valid_with_params(self): q = SimpleQueryFactory(sql="select $$a$$;") q.params = {} form = QueryForm(model_to_dict(q)) self.assertTrue(form.is_valid())
def test_form_is_not_valid_with_invalid_sql(self): q = SimpleQueryFactory(sql="select a;") form = QueryForm(model_to_dict(q)) self.assertFalse(form.is_valid())