)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7478,"name":"Nadya Shakhat","email":"nadmi4@gmail.com","username":"nprivalova"},"change_message_id":"a3cfd41cebc0fd53380fe10b0735f4b49ffab10a","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2014-05-27 03:31:34 +0300"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Refactor tests to remove direct access to test DBManagers"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This is needed to enable running tests without the need to specify"},{"line_number":10,"context_line":"DBManager explicitly."},{"line_number":11,"context_line":"One will only have to provide an URL for tests to use."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"1ae5cdf2_b69fec02","line":8,"updated":"2014-05-30 10:34:29.000000000","message":"Could you please provide more specific examples to show why the patch is really needed? As I understand, it\u0027s for Jenkins jobs. \"One will only have to provide an URL for tests to use.\" - it\u0027s not clear because now I do the same thing locally, just set variable with url.","commit_id":"e2f39f8707fd8febd54aa06249587d75eb1f8d90"}],"ceilometer/tests/db.py":[{"author":{"_account_id":7478,"name":"Nadya Shakhat","email":"nadmi4@gmail.com","username":"nprivalova"},"change_message_id":"a3cfd41cebc0fd53380fe10b0735f4b49ffab10a","unresolved":false,"context_lines":[{"line_number":67,"context_line":"                \"No DB2 test URL set, \""},{"line_number":68,"context_line":"                \"export CEILOMETER_TEST_DB2_URL environment variable\")"},{"line_number":69,"context_line":"        else:"},{"line_number":70,"context_line":"            # This is to make sure that the db2 driver is used when"},{"line_number":71,"context_line":"            # CEILOMETER_TEST_DB2_URL was not set"},{"line_number":72,"context_line":"            self._url \u003d self._url.replace(\u0027mongodb:\u0027, \u0027db2:\u0027, 1)"},{"line_number":73,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1ae5cdf2_b6b0ccde","line":70,"updated":"2014-05-30 10:34:29.000000000","message":"Could you please check this comment? Did you mean CEILOMETER_TEST_MONGODB_URL?","commit_id":"e2f39f8707fd8febd54aa06249587d75eb1f8d90"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"329eb337ada1cd16dd63cb35d8ccaf22113efa69","unresolved":false,"context_lines":[{"line_number":91,"context_line":"class SQLiteManager(fixtures.Fixture):"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    def __init__(self, url):"},{"line_number":94,"context_line":"        self.url \u003d url"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def setUp(self):"},{"line_number":97,"context_line":"        super(SQLiteManager, self).setUp()"}],"source_content_type":"text/x-python","patch_set":1,"id":"3ae8d1ca_48c1a52d","line":94,"updated":"2014-05-27 14:58:22.000000000","message":"_url","commit_id":"e2f39f8707fd8febd54aa06249587d75eb1f8d90"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"3d1acecb36d1e4ef6cb772677a7eeda63e05ff69","unresolved":false,"context_lines":[{"line_number":91,"context_line":"class SQLiteManager(fixtures.Fixture):"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    def __init__(self, url):"},{"line_number":94,"context_line":"        self.url \u003d url"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def setUp(self):"},{"line_number":97,"context_line":"        super(SQLiteManager, self).setUp()"}],"source_content_type":"text/x-python","patch_set":1,"id":"3ae8d1ca_23555ac6","line":94,"in_reply_to":"3ae8d1ca_482c45ac","updated":"2014-05-27 15:34:32.000000000","message":"ah got it.","commit_id":"e2f39f8707fd8febd54aa06249587d75eb1f8d90"},{"author":{"_account_id":7763,"name":"Alexei Kornienko","email":"akornienko@mirantis.com","username":"akornienko"},"change_message_id":"46169e3fbb9e51a10b850bed3eabb6f8fc1e0cad","unresolved":false,"context_lines":[{"line_number":91,"context_line":"class SQLiteManager(fixtures.Fixture):"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    def __init__(self, url):"},{"line_number":94,"context_line":"        self.url \u003d url"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def setUp(self):"},{"line_number":97,"context_line":"        super(SQLiteManager, self).setUp()"}],"source_content_type":"text/x-python","patch_set":1,"id":"3ae8d1ca_482c45ac","line":94,"in_reply_to":"3ae8d1ca_48c1a52d","updated":"2014-05-27 15:04:38.000000000","message":"url :)..\n\n_url is specific to mongodb since it creates a random url for every test. For sqlite it\u0027s not required","commit_id":"e2f39f8707fd8febd54aa06249587d75eb1f8d90"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"329eb337ada1cd16dd63cb35d8ccaf22113efa69","unresolved":false,"context_lines":[{"line_number":112,"context_line":"    def setUp(self):"},{"line_number":113,"context_line":"        super(TestBase, self).setUp()"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"        engine \u003d urlparse.urlparse(self.db_url).scheme"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"        # NOTE(Alexei_987) Shortcut to skip expensive db setUp"},{"line_number":118,"context_line":"        test_method \u003d self._get_test_method()"}],"source_content_type":"text/x-python","patch_set":1,"id":"3ae8d1ca_889acd12","line":115,"updated":"2014-05-27 14:58:22.000000000","message":"out of curiosity, when does this get set to anything other than sqlite?","commit_id":"e2f39f8707fd8febd54aa06249587d75eb1f8d90"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"3d1acecb36d1e4ef6cb772677a7eeda63e05ff69","unresolved":false,"context_lines":[{"line_number":112,"context_line":"    def setUp(self):"},{"line_number":113,"context_line":"        super(TestBase, self).setUp()"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"        engine \u003d urlparse.urlparse(self.db_url).scheme"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"        # NOTE(Alexei_987) Shortcut to skip expensive db setUp"},{"line_number":118,"context_line":"        test_method \u003d self._get_test_method()"}],"source_content_type":"text/x-python","patch_set":1,"id":"3ae8d1ca_a3588afb","line":115,"in_reply_to":"3ae8d1ca_03acdeec","updated":"2014-05-27 15:34:32.000000000","message":"cool cool","commit_id":"e2f39f8707fd8febd54aa06249587d75eb1f8d90"},{"author":{"_account_id":7763,"name":"Alexei Kornienko","email":"akornienko@mirantis.com","username":"akornienko"},"change_message_id":"46169e3fbb9e51a10b850bed3eabb6f8fc1e0cad","unresolved":false,"context_lines":[{"line_number":112,"context_line":"    def setUp(self):"},{"line_number":113,"context_line":"        super(TestBase, self).setUp()"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"        engine \u003d urlparse.urlparse(self.db_url).scheme"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"        # NOTE(Alexei_987) Shortcut to skip expensive db setUp"},{"line_number":118,"context_line":"        test_method \u003d self._get_test_method()"}],"source_content_type":"text/x-python","patch_set":1,"id":"3ae8d1ca_03acdeec","line":115,"in_reply_to":"3ae8d1ca_889acd12","updated":"2014-05-27 15:04:38.000000000","message":"This is set in MixinTestsWithBackendScenarios (see scenarios list)","commit_id":"e2f39f8707fd8febd54aa06249587d75eb1f8d90"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"3d1acecb36d1e4ef6cb772677a7eeda63e05ff69","unresolved":false,"context_lines":[{"line_number":136,"context_line":"        # Set a default location for the pipeline config file so the"},{"line_number":137,"context_line":"        # tests work even if ceilometer is not installed globally on"},{"line_number":138,"context_line":"        # the system."},{"line_number":139,"context_line":"        self.CONF.import_opt(\u0027pipeline_cfg_file\u0027, \u0027ceilometer.pipeline\u0027)"},{"line_number":140,"context_line":"        self.CONF.set_override("},{"line_number":141,"context_line":"            \u0027pipeline_cfg_file\u0027,"},{"line_number":142,"context_line":"            self.path_get(\u0027etc/ceilometer/pipeline.yaml\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3ae8d1ca_15e7b113","line":139,"updated":"2014-05-27 15:34:32.000000000","message":"one more q, why does this need to be imported?","commit_id":"e2f39f8707fd8febd54aa06249587d75eb1f8d90"},{"author":{"_account_id":7763,"name":"Alexei Kornienko","email":"akornienko@mirantis.com","username":"akornienko"},"change_message_id":"559c9395af838f5d608c1ab08a7617469e390e9f","unresolved":false,"context_lines":[{"line_number":136,"context_line":"        # Set a default location for the pipeline config file so the"},{"line_number":137,"context_line":"        # tests work even if ceilometer is not installed globally on"},{"line_number":138,"context_line":"        # the system."},{"line_number":139,"context_line":"        self.CONF.import_opt(\u0027pipeline_cfg_file\u0027, \u0027ceilometer.pipeline\u0027)"},{"line_number":140,"context_line":"        self.CONF.set_override("},{"line_number":141,"context_line":"            \u0027pipeline_cfg_file\u0027,"},{"line_number":142,"context_line":"            self.path_get(\u0027etc/ceilometer/pipeline.yaml\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3ae8d1ca_55adb987","line":139,"in_reply_to":"3ae8d1ca_15e7b113","updated":"2014-05-27 15:39:21.000000000","message":"Since it\u0027s used one line below.. tests on tox run without failure just because it\u0027s already imported somewhere else but in general it\u0027s an error to use option without importing it. I\u0027ve noticed it during debugging of this patch and the fix is to small to move it to a separate patch.","commit_id":"e2f39f8707fd8febd54aa06249587d75eb1f8d90"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"f50ec6798133b71bd5d2ba19dbad90136db72c76","unresolved":false,"context_lines":[{"line_number":136,"context_line":"        # Set a default location for the pipeline config file so the"},{"line_number":137,"context_line":"        # tests work even if ceilometer is not installed globally on"},{"line_number":138,"context_line":"        # the system."},{"line_number":139,"context_line":"        self.CONF.import_opt(\u0027pipeline_cfg_file\u0027, \u0027ceilometer.pipeline\u0027)"},{"line_number":140,"context_line":"        self.CONF.set_override("},{"line_number":141,"context_line":"            \u0027pipeline_cfg_file\u0027,"},{"line_number":142,"context_line":"            self.path_get(\u0027etc/ceilometer/pipeline.yaml\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3ae8d1ca_18c44891","line":139,"in_reply_to":"3ae8d1ca_55adb987","updated":"2014-05-27 15:55:12.000000000","message":"yeah, that\u0027s what i thought. we actually use set_override without import_opt in more places than just here... maybe we should remove this for a later patch (since it doesn\u0027t actually directly affect this patch)","commit_id":"e2f39f8707fd8febd54aa06249587d75eb1f8d90"},{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"515f94a189052d6cde44468d29cd54bb249096b2","unresolved":false,"context_lines":[{"line_number":156,"context_line":""},{"line_number":157,"context_line":"def run_with(*drivers):"},{"line_number":158,"context_line":"    \"\"\"Used to mark tests that are only applicable for certain db driver."},{"line_number":159,"context_line":"    Skips test if driver is not available"},{"line_number":160,"context_line":"    \"\"\""},{"line_number":161,"context_line":"    def decorator(test):"},{"line_number":162,"context_line":"        if isinstance(test, type) and issubclass(test, TestBase):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1ae5cdf2_2ac7ff13","line":159,"updated":"2014-05-29 23:30:18.000000000","message":"Since this run_with decorator gives us the ability to skip tests based the DB driver, can we also remove this prior approach to per-driver tests?\n\n  https://github.com/openstack/ceilometer/blob/master/ceilometer/tests/api/v2/test_statistics_scenarios.py#L1573","commit_id":"e2f39f8707fd8febd54aa06249587d75eb1f8d90"},{"author":{"_account_id":7763,"name":"Alexei Kornienko","email":"akornienko@mirantis.com","username":"akornienko"},"change_message_id":"5e093f61c086e81874b005c1dcf783d61810568f","unresolved":false,"context_lines":[{"line_number":156,"context_line":""},{"line_number":157,"context_line":"def run_with(*drivers):"},{"line_number":158,"context_line":"    \"\"\"Used to mark tests that are only applicable for certain db driver."},{"line_number":159,"context_line":"    Skips test if driver is not available"},{"line_number":160,"context_line":"    \"\"\""},{"line_number":161,"context_line":"    def decorator(test):"},{"line_number":162,"context_line":"        if isinstance(test, type) and issubclass(test, TestBase):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1ae5cdf2_f0c34636","line":159,"in_reply_to":"1ae5cdf2_2ac7ff13","updated":"2014-05-30 00:34:26.000000000","message":"This is true and it is in my plans. I didn\u0027t do it in this patch cause it\u0027s already quite big and hard to understand. In subsequent patches further refactoring may be applied.","commit_id":"e2f39f8707fd8febd54aa06249587d75eb1f8d90"},{"author":{"_account_id":7478,"name":"Nadya Shakhat","email":"nadmi4@gmail.com","username":"nprivalova"},"change_message_id":"8be29d82f1f68cfa1538cb7f7e7c9901f7f7e61a","unresolved":false,"context_lines":[{"line_number":68,"context_line":"                \"export CEILOMETER_TEST_DB2_URL environment variable\")"},{"line_number":69,"context_line":"        else:"},{"line_number":70,"context_line":"            # This is to make sure that the db2 driver is used when"},{"line_number":71,"context_line":"            # CEILOMETER_TEST_DB2_URL was not set"},{"line_number":72,"context_line":"            self._url \u003d self._url.replace(\u0027mongodb:\u0027, \u0027db2:\u0027, 1)"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_eedf46d4","line":71,"updated":"2014-06-04 11:38:51.000000000","message":"...but MONGODB_URL is set, right? What is the policy, will we use MONGODB for tests if DB2 is not set without notification?","commit_id":"241c5d1b426ecbdf8ef7238d5cd2b0eb68f90389"},{"author":{"_account_id":7763,"name":"Alexei Kornienko","email":"akornienko@mirantis.com","username":"akornienko"},"change_message_id":"991994936d193a760720870c0d41b58a3d044741","unresolved":false,"context_lines":[{"line_number":68,"context_line":"                \"export CEILOMETER_TEST_DB2_URL environment variable\")"},{"line_number":69,"context_line":"        else:"},{"line_number":70,"context_line":"            # This is to make sure that the db2 driver is used when"},{"line_number":71,"context_line":"            # CEILOMETER_TEST_DB2_URL was not set"},{"line_number":72,"context_line":"            self._url \u003d self._url.replace(\u0027mongodb:\u0027, \u0027db2:\u0027, 1)"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_d1d86b20","line":71,"in_reply_to":"1ae5cdf2_eedf46d4","updated":"2014-06-04 12:07:04.000000000","message":"So sorry. forgot to fix this one.. one sec..","commit_id":"241c5d1b426ecbdf8ef7238d5cd2b0eb68f90389"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"746470af89a05a191d922460f241d3eedcff5af9","unresolved":false,"context_lines":[{"line_number":123,"context_line":"        # Set a default location for the pipeline config file so the"},{"line_number":124,"context_line":"        # tests work even if ceilometer is not installed globally on"},{"line_number":125,"context_line":"        # the system."},{"line_number":126,"context_line":"        self.CONF.import_opt(\u0027pipeline_cfg_file\u0027, \u0027ceilometer.pipeline\u0027)"},{"line_number":127,"context_line":"        self.CONF.set_override("},{"line_number":128,"context_line":"            \u0027pipeline_cfg_file\u0027,"},{"line_number":129,"context_line":"            self.path_get(\u0027etc/ceilometer/pipeline.yaml\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"1ae5cdf2_974ace25","line":126,"updated":"2014-06-09 13:36:56.000000000","message":"i still think this shouldn\u0027t be part of this patch but not a blocker","commit_id":"c0052cf6f14527b96f8d69277f414cb2dddcd0fa"}],"ceilometer/tests/storage/test_impl_hbase.py":[{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"329eb337ada1cd16dd63cb35d8ccaf22113efa69","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"class ConnectionTest(tests_db.TestBase,"},{"line_number":35,"context_line":"                     tests_db.MixinTestsWithBackendScenarios):"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    @tests_db.run_with(\u0027hbase\u0027)"},{"line_number":38,"context_line":"    def test_hbase_connection(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3ae8d1ca_28db791c","line":35,"updated":"2014-05-27 14:58:22.000000000","message":"curious why we need MixinTestsWithBackendScenarios? why not something similar to https://review.openstack.org/#/c/95613/1/ceilometer/tests/storage/test_impl_sqlalchemy.py","commit_id":"e2f39f8707fd8febd54aa06249587d75eb1f8d90"},{"author":{"_account_id":7763,"name":"Alexei Kornienko","email":"akornienko@mirantis.com","username":"akornienko"},"change_message_id":"46169e3fbb9e51a10b850bed3eabb6f8fc1e0cad","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"class ConnectionTest(tests_db.TestBase,"},{"line_number":35,"context_line":"                     tests_db.MixinTestsWithBackendScenarios):"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    @tests_db.run_with(\u0027hbase\u0027)"},{"line_number":38,"context_line":"    def test_hbase_connection(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3ae8d1ca_639be2c9","line":35,"in_reply_to":"3ae8d1ca_28db791c","updated":"2014-05-27 15:04:38.000000000","message":"Currently this is needed to provide hbase driver from storage scenarios. Later it can be refactored when we\u0027ll get rid of this mixin (after setting up jenkins jobs)","commit_id":"e2f39f8707fd8febd54aa06249587d75eb1f8d90"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"329eb337ada1cd16dd63cb35d8ccaf22113efa69","unresolved":false,"context_lines":[{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    @tests_db.run_with(\u0027hbase\u0027)"},{"line_number":38,"context_line":"    def test_hbase_connection(self):"},{"line_number":39,"context_line":"        conn \u003d hbase.Connection(self.db_manager.url)"},{"line_number":40,"context_line":"        self.assertIsInstance(conn.conn_pool.connection(), hbase.MConnection)"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        class TestConn(object):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3ae8d1ca_c83a1536","line":39,"updated":"2014-05-27 14:58:22.000000000","message":"i don\u0027t get how this test even passed. HBaseManager doesn\u0027t even have url variable (it has _url).","commit_id":"e2f39f8707fd8febd54aa06249587d75eb1f8d90"},{"author":{"_account_id":7763,"name":"Alexei Kornienko","email":"akornienko@mirantis.com","username":"akornienko"},"change_message_id":"71e49bbfe56e70f03c65ce43bcea7372e33e8b5a","unresolved":false,"context_lines":[{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    @tests_db.run_with(\u0027hbase\u0027)"},{"line_number":38,"context_line":"    def test_hbase_connection(self):"},{"line_number":39,"context_line":"        conn \u003d hbase.Connection(self.db_manager.url)"},{"line_number":40,"context_line":"        self.assertIsInstance(conn.conn_pool.connection(), hbase.MConnection)"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        class TestConn(object):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1ae5cdf2_567ea8af","line":39,"in_reply_to":"1ae5cdf2_36203cf7","updated":"2014-05-30 10:40:05.000000000","message":"We should use .url property in all cases. _url is private and should not be accessed without specific reasons","commit_id":"e2f39f8707fd8febd54aa06249587d75eb1f8d90"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"3d1acecb36d1e4ef6cb772677a7eeda63e05ff69","unresolved":false,"context_lines":[{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    @tests_db.run_with(\u0027hbase\u0027)"},{"line_number":38,"context_line":"    def test_hbase_connection(self):"},{"line_number":39,"context_line":"        conn \u003d hbase.Connection(self.db_manager.url)"},{"line_number":40,"context_line":"        self.assertIsInstance(conn.conn_pool.connection(), hbase.MConnection)"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        class TestConn(object):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3ae8d1ca_4369868a","line":39,"in_reply_to":"3ae8d1ca_23347add","updated":"2014-05-27 15:34:32.000000000","message":"my bad","commit_id":"e2f39f8707fd8febd54aa06249587d75eb1f8d90"},{"author":{"_account_id":7478,"name":"Nadya Shakhat","email":"nadmi4@gmail.com","username":"nprivalova"},"change_message_id":"a3cfd41cebc0fd53380fe10b0735f4b49ffab10a","unresolved":false,"context_lines":[{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    @tests_db.run_with(\u0027hbase\u0027)"},{"line_number":38,"context_line":"    def test_hbase_connection(self):"},{"line_number":39,"context_line":"        conn \u003d hbase.Connection(self.db_manager.url)"},{"line_number":40,"context_line":"        self.assertIsInstance(conn.conn_pool.connection(), hbase.MConnection)"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        class TestConn(object):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1ae5cdf2_36203cf7","line":39,"in_reply_to":"3ae8d1ca_4369868a","updated":"2014-05-30 10:34:29.000000000","message":"Anyway, to get \u0027url\u0027 for mongo we should write self.db_manager.url and for Hbase self.db_manager._url. I\u0027m afraid that it may provide some confusion, because we should always keep it in mind","commit_id":"e2f39f8707fd8febd54aa06249587d75eb1f8d90"},{"author":{"_account_id":7763,"name":"Alexei Kornienko","email":"akornienko@mirantis.com","username":"akornienko"},"change_message_id":"46169e3fbb9e51a10b850bed3eabb6f8fc1e0cad","unresolved":false,"context_lines":[{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    @tests_db.run_with(\u0027hbase\u0027)"},{"line_number":38,"context_line":"    def test_hbase_connection(self):"},{"line_number":39,"context_line":"        conn \u003d hbase.Connection(self.db_manager.url)"},{"line_number":40,"context_line":"        self.assertIsInstance(conn.conn_pool.connection(), hbase.MConnection)"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        class TestConn(object):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3ae8d1ca_23347add","line":39,"in_reply_to":"3ae8d1ca_c83a1536","updated":"2014-05-27 15:04:38.000000000","message":"it has an url property :)","commit_id":"e2f39f8707fd8febd54aa06249587d75eb1f8d90"}]}
