Make sql test connection work with saved Database instance (#694)
Fix #596
This commit is contained in:
parent
69d37d8b2a
commit
afa1f0916b
|
|
@ -8,7 +8,11 @@
|
|||
|
||||
var data = {};
|
||||
try{
|
||||
data = JSON.stringify({ uri: $("#sqlalchemy_uri").val(), extras: JSON.parse($("#extra").val()) })
|
||||
data = JSON.stringify({
|
||||
uri: $("#sqlalchemy_uri").val(),
|
||||
name: $('#database_name').val(),
|
||||
extras: JSON.parse($("#extra").val())
|
||||
})
|
||||
} catch(parse_error){
|
||||
alert("Malformed JSON in the extras field: " + parse_error);
|
||||
return false
|
||||
|
|
|
|||
|
|
@ -1251,6 +1251,16 @@ class Caravel(BaseCaravelView):
|
|||
"""Tests a sqla connection"""
|
||||
try:
|
||||
uri = request.json.get('uri')
|
||||
db_name = request.json.get('name')
|
||||
if db_name and ':XXXXXXXXXX@' in uri:
|
||||
database = (
|
||||
db.session()
|
||||
.query(models.Database)
|
||||
.filter_by(database_name=db_name).first()
|
||||
)
|
||||
if database is not None:
|
||||
uri = database.sqlalchemy_uri_decrypted
|
||||
|
||||
connect_args = (
|
||||
request.json
|
||||
.get('extras', {})
|
||||
|
|
|
|||
|
|
@ -114,6 +114,18 @@ class CoreTests(CaravelTestCase):
|
|||
assert self.client.get('/health').data.decode('utf-8') == "OK"
|
||||
assert self.client.get('/ping').data.decode('utf-8') == "OK"
|
||||
|
||||
def test_testconn(self):
|
||||
data = json.dumps({'uri': 'sqlite:////tmp/caravel_unittests.db'})
|
||||
response = self.client.post('/caravel/testconn', data=data, content_type='application/json')
|
||||
assert response.status_code == 200
|
||||
|
||||
data = json.dumps({
|
||||
'uri': 'postgresql+psycopg2://foo:XXXXXXXXXX@127.0.0.1/bar',
|
||||
'name': 'main'
|
||||
})
|
||||
response = self.client.post('/caravel/testconn', data=data, content_type='application/json')
|
||||
assert response.status_code == 200
|
||||
|
||||
def test_warm_up_cache(self):
|
||||
slice = db.session.query(models.Slice).first()
|
||||
resp = self.client.get(
|
||||
|
|
|
|||
Loading…
Reference in New Issue