Feature: "Impersonate user" setting on Datasource (#3404)

* Add "Impersonate user" setting to Datasource

* Add tests

* Use g.user.username for all the sync cases

* use uri.username instead of uri.user

* Small refactoring
This commit is contained in:
Dmitry Goryunov
2017-09-18 19:52:29 +03:00
committed by Maxime Beauchemin
parent a26e65f418
commit c988080990
6 changed files with 50 additions and 8 deletions

View File

@@ -54,3 +54,16 @@ class DatabaseModelTestCase(unittest.TestCase):
db = make_url(model.get_sqla_engine(schema='staging').url).database
self.assertEquals('staging', db)
def test_database_impersonate_user(self):
uri = 'mysql://root@localhost'
example_user = 'giuseppe'
model = Database(sqlalchemy_uri=uri)
model.impersonate_user = True
user_name = make_url(model.get_sqla_engine(user_name=example_user).url).username
self.assertEquals(example_user, user_name)
model.impersonate_user = False
user_name = make_url(model.get_sqla_engine(user_name=example_user).url).username
self.assertNotEquals(example_user, user_name)