)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"d22124c5e94b6335eb51af7e4c9edaaa72d3b220","unresolved":false,"context_lines":[{"line_number":13,"context_line":"using that technique, and instead, everyone is creating"},{"line_number":14,"context_line":"their own ad-hoc _TransactionContextManager objects"},{"line_number":15,"context_line":"and usually establishing it as a module-level global."},{"line_number":16,"context_line":"Nova has two of them."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Additionally, projects add configuration to these"},{"line_number":19,"context_line":"enginefacades (which IS part of the original idea), and"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"bacf61ea_43cea72d","line":16,"updated":"2016-08-05 12:52:36.000000000","message":"... and possibly adding the third in Newton :)","commit_id":"688baa9b8e523d7ac11b26871c609393f93c1174"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"49811e3e8e83ebfc1b688642e730ced9dc625399","unresolved":false,"context_lines":[{"line_number":9,"context_line":"The original idea of enginefacade was that applications"},{"line_number":10,"context_line":"would call upon the global _TransactionContextManager"},{"line_number":11,"context_line":"given in oslo_db.sqlalchemy.enginefacade.  However, as it"},{"line_number":12,"context_line":"turns out, virutually no Openstack projects seem to be"},{"line_number":13,"context_line":"using that technique, and instead, everyone is creating"},{"line_number":14,"context_line":"their own ad-hoc _TransactionContextManager objects"},{"line_number":15,"context_line":"and usually establishing it as a module-level global."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"1ac06dbe_3cd96e84","line":12,"range":{"start_line":12,"start_character":11,"end_line":12,"end_character":21},"updated":"2016-08-22 09:57:56.000000000","message":"typo: virtually","commit_id":"b73341c45df966e49749071ff8b2d2867bec8d0b"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"d3f850269b671fe13cfc97eae3beba61b2c2df0f","unresolved":false,"context_lines":[{"line_number":43,"context_line":"system, but because this attribute is consulted before"},{"line_number":44,"context_line":"setUp(), the \"opportunistic\" fixture must be created"},{"line_number":45,"context_line":"early and stored."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"Change-Id: I0163e637ffef6d45d2573ebe29b5438911d01fce"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"ba5da102_ed24c3b3","line":46,"updated":"2016-11-04 17:58:56.000000000","message":"nit: Closes-Bug: #1548960","commit_id":"b73341c45df966e49749071ff8b2d2867bec8d0b"}],"oslo_db/sqlalchemy/enginefacade.py":[{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"13f1ebeb885fcc8f5daae23f5d147c2a69fcb101","unresolved":false,"context_lines":[{"line_number":704,"context_line":"        a new Session each time get_session() is called."},{"line_number":705,"context_line":"        \"\"\""},{"line_number":706,"context_line":""},{"line_number":707,"context_line":"        return self._factory.get_legacy_facade()"},{"line_number":708,"context_line":""},{"line_number":709,"context_line":"    def get_engine(self):"},{"line_number":710,"context_line":"        \"\"\"Return the Engine in use."}],"source_content_type":"text/x-python","patch_set":5,"id":"ba5da102_ad9f0402","line":707,"updated":"2016-10-28 08:56:40.000000000","message":"Can we have a get_session() here as well?","commit_id":"b73341c45df966e49749071ff8b2d2867bec8d0b"},{"author":{"_account_id":11816,"name":"mike bayer","display_name":"Mike Bayer","email":"mike_mp@zzzcomputing.com","username":"zzzeek","status":"Red Hat"},"change_message_id":"9181f6d6f6c0fb2f991a94a7763825a2b8f7c0d2","unresolved":false,"context_lines":[{"line_number":704,"context_line":"        a new Session each time get_session() is called."},{"line_number":705,"context_line":"        \"\"\""},{"line_number":706,"context_line":""},{"line_number":707,"context_line":"        return self._factory.get_legacy_facade()"},{"line_number":708,"context_line":""},{"line_number":709,"context_line":"    def get_engine(self):"},{"line_number":710,"context_line":"        \"\"\"Return the Engine in use."}],"source_content_type":"text/x-python","patch_set":5,"id":"ba5da102_c6196e7b","line":707,"in_reply_to":"ba5da102_ad9f0402","updated":"2016-10-28 13:37:20.000000000","message":"why not call get_sessionmaker()() ?   This is the factory level, it isn\u0027t mantaining a Session across a block.","commit_id":"b73341c45df966e49749071ff8b2d2867bec8d0b"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"a78b8ff5ecd3c0b7b7f1a24a465993c403327a14","unresolved":false,"context_lines":[{"line_number":704,"context_line":"        a new Session each time get_session() is called."},{"line_number":705,"context_line":"        \"\"\""},{"line_number":706,"context_line":""},{"line_number":707,"context_line":"        return self._factory.get_legacy_facade()"},{"line_number":708,"context_line":""},{"line_number":709,"context_line":"    def get_engine(self):"},{"line_number":710,"context_line":"        \"\"\"Return the Engine in use."}],"source_content_type":"text/x-python","patch_set":5,"id":"ba5da102_047ec5ad","line":707,"in_reply_to":"ba5da102_c6196e7b","updated":"2016-11-01 10:33:14.000000000","message":"OK","commit_id":"b73341c45df966e49749071ff8b2d2867bec8d0b"}],"oslo_db/sqlalchemy/provision.py":[{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"d22124c5e94b6335eb51af7e4c9edaaa72d3b220","unresolved":false,"context_lines":[{"line_number":266,"context_line":""},{"line_number":267,"context_line":"        return self.impl.database_exists(self.engine, ident)"},{"line_number":268,"context_line":""},{"line_number":269,"context_line":"    def provisioned_engine(self, ident):"},{"line_number":270,"context_line":"        \"\"\"Given the URL of a particular database backend and the string"},{"line_number":271,"context_line":""},{"line_number":272,"context_line":"        name of a particular \u0027database\u0027 within that backend, return"}],"source_content_type":"text/x-python","patch_set":1,"id":"bacf61ea_4696b53e","side":"PARENT","line":269,"updated":"2016-08-05 12:52:36.000000000","message":"So according to http://codesearch.openstack.org/?q\u003dprovisioned_engine\u0026i\u003dnope\u0026files\u003d\u0026repos\u003d no one else uses this method, so it should be safe to change its name and signature. But if we were \"playing nice\" we would probably need to keep it and mark for deprecation by the means of debtcollector and a release note.","commit_id":"73b435f1b53fc38a55a232a0cc4c9a8b79148f20"},{"author":{"_account_id":11816,"name":"mike bayer","display_name":"Mike Bayer","email":"mike_mp@zzzcomputing.com","username":"zzzeek","status":"Red Hat"},"change_message_id":"a8a703d8424a1dee1afabe1ab9ae93f4d5f98559","unresolved":false,"context_lines":[{"line_number":266,"context_line":""},{"line_number":267,"context_line":"        return self.impl.database_exists(self.engine, ident)"},{"line_number":268,"context_line":""},{"line_number":269,"context_line":"    def provisioned_engine(self, ident):"},{"line_number":270,"context_line":"        \"\"\"Given the URL of a particular database backend and the string"},{"line_number":271,"context_line":""},{"line_number":272,"context_line":"        name of a particular \u0027database\u0027 within that backend, return"}],"source_content_type":"text/x-python","patch_set":1,"id":"bacf61ea_91873360","side":"PARENT","line":269,"in_reply_to":"bacf61ea_4696b53e","updated":"2016-08-05 18:01:32.000000000","message":"well.  OK, it\u0027s not a big deal to keep.  debtcollector makes it pretty simple to just deprecate stuff.  the whole provision.py was not meant to be \"public\" anyway though I recently made that change to Neutron to use it.","commit_id":"73b435f1b53fc38a55a232a0cc4c9a8b79148f20"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"d22124c5e94b6335eb51af7e4c9edaaa72d3b220","unresolved":false,"context_lines":[{"line_number":421,"context_line":"    def drop_additional_objects(self, conn):"},{"line_number":422,"context_line":"        pass"},{"line_number":423,"context_line":""},{"line_number":424,"context_line":"    def provisioned_engine(self, base_url, ident):"},{"line_number":425,"context_line":"        \"\"\"Return a provisioned engine."},{"line_number":426,"context_line":""},{"line_number":427,"context_line":"        Given the URL of a particular database backend and the string"}],"source_content_type":"text/x-python","patch_set":1,"id":"bacf61ea_06b79dd8","side":"PARENT","line":424,"updated":"2016-08-05 12:52:36.000000000","message":"ditto","commit_id":"73b435f1b53fc38a55a232a0cc4c9a8b79148f20"},{"author":{"_account_id":11816,"name":"mike bayer","display_name":"Mike Bayer","email":"mike_mp@zzzcomputing.com","username":"zzzeek","status":"Red Hat"},"change_message_id":"a8a703d8424a1dee1afabe1ab9ae93f4d5f98559","unresolved":false,"context_lines":[{"line_number":421,"context_line":"    def drop_additional_objects(self, conn):"},{"line_number":422,"context_line":"        pass"},{"line_number":423,"context_line":""},{"line_number":424,"context_line":"    def provisioned_engine(self, base_url, ident):"},{"line_number":425,"context_line":"        \"\"\"Return a provisioned engine."},{"line_number":426,"context_line":""},{"line_number":427,"context_line":"        Given the URL of a particular database backend and the string"}],"source_content_type":"text/x-python","patch_set":1,"id":"bacf61ea_91ee1320","side":"PARENT","line":424,"in_reply_to":"bacf61ea_06b79dd8","updated":"2016-08-05 18:01:32.000000000","message":"well yes this is the impl :)","commit_id":"73b435f1b53fc38a55a232a0cc4c9a8b79148f20"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"d22124c5e94b6335eb51af7e4c9edaaa72d3b220","unresolved":false,"context_lines":[{"line_number":485,"context_line":"            eng \u003d sqlalchemy.create_engine(url)"},{"line_number":486,"context_line":"            eng.connect().close()"},{"line_number":487,"context_line":""},{"line_number":488,"context_line":"    def provisioned_engine(self, base_url, ident):"},{"line_number":489,"context_line":"        return session.create_engine("},{"line_number":490,"context_line":"            self._provisioned_database_url(base_url, ident))"},{"line_number":491,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"bacf61ea_46ad1583","side":"PARENT","line":488,"updated":"2016-08-05 12:52:36.000000000","message":"ditto","commit_id":"73b435f1b53fc38a55a232a0cc4c9a8b79148f20"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"d22124c5e94b6335eb51af7e4c9edaaa72d3b220","unresolved":false,"context_lines":[{"line_number":122,"context_line":"        db_token \u003d _random_ident()"},{"line_number":123,"context_line":"        url \u003d backend.provisioned_database_url(db_token)"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"        # TODO(zzzeek) When logging_name is available"},{"line_number":126,"context_line":"        # _enginefacade.configure("},{"line_number":127,"context_line":"        #    logging_name\u003d\"%s@%s\" % (self.database_type, db_token))"},{"line_number":128,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"bacf61ea_e687e95e","line":125,"updated":"2016-08-05 12:52:36.000000000","message":"Let\u0027s maybe rearrange the patches in the series to fix this TODO? \n\nAlternatively, you could add a \"Depends-On: $changeid\" row to the commit message (I haven\u0027t tried that for two patches within the same project yet, but it should work - I believe the CI will cherry-pick the patch we depend on before running tests, and Zuul won\u0027t let this patch be merged unless the other patch is merged first)","commit_id":"688baa9b8e523d7ac11b26871c609393f93c1174"},{"author":{"_account_id":11816,"name":"mike bayer","display_name":"Mike Bayer","email":"mike_mp@zzzcomputing.com","username":"zzzeek","status":"Red Hat"},"change_message_id":"a8a703d8424a1dee1afabe1ab9ae93f4d5f98559","unresolved":false,"context_lines":[{"line_number":122,"context_line":"        db_token \u003d _random_ident()"},{"line_number":123,"context_line":"        url \u003d backend.provisioned_database_url(db_token)"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"        # TODO(zzzeek) When logging_name is available"},{"line_number":126,"context_line":"        # _enginefacade.configure("},{"line_number":127,"context_line":"        #    logging_name\u003d\"%s@%s\" % (self.database_type, db_token))"},{"line_number":128,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"bacf61ea_d1a6cb0d","line":125,"in_reply_to":"bacf61ea_e687e95e","updated":"2016-08-05 18:01:32.000000000","message":"the logging-name patch is trivial and I\u0027m assuming it will be merged before this patch gets anywhere.","commit_id":"688baa9b8e523d7ac11b26871c609393f93c1174"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"9ba2823830cc58e28e345f3624fe55086b4397c8","unresolved":false,"context_lines":[{"line_number":597,"context_line":"        url \u003d engine.url"},{"line_number":598,"context_line":"        self._drop_url_file(url, True)"},{"line_number":599,"context_line":""},{"line_number":600,"context_line":"    def _drop_url_file(self, url, conditional):"},{"line_number":601,"context_line":"        filename \u003d url.database"},{"line_number":602,"context_line":"        if filename and (not conditional or os.access(filename, os.F_OK)):"},{"line_number":603,"context_line":"            os.remove(filename)"}],"source_content_type":"text/x-python","patch_set":5,"id":"3ac371cc_dee98c80","line":600,"updated":"2016-08-18 16:56:39.000000000","message":"nit: does not use self argument and could be a static method or function","commit_id":"b73341c45df966e49749071ff8b2d2867bec8d0b"}],"oslo_db/sqlalchemy/test_base.py":[{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"d22124c5e94b6335eb51af7e4c9edaaa72d3b220","unresolved":false,"context_lines":[{"line_number":51,"context_line":"    # are referring to them directly."},{"line_number":52,"context_line":"    DBNAME \u003d PASSWORD \u003d USERNAME \u003d \u0027openstack_citest\u0027"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    def __init__(self, test, skip_on_unavailable_db\u003dTrue):"},{"line_number":55,"context_line":"        super(DbFixture, self).__init__()"},{"line_number":56,"context_line":"        self.test \u003d test"},{"line_number":57,"context_line":"        self.skip_on_unavailable_db \u003d skip_on_unavailable_db"}],"source_content_type":"text/x-python","patch_set":1,"id":"bacf61ea_6652d968","side":"PARENT","line":54,"updated":"2016-08-05 12:52:36.000000000","message":"Looks like no one is using the kwarg - http://codesearch.openstack.org/?q\u003dskip_on_unavailable_db\u0026i\u003dnope\u0026files\u003d\u0026repos\u003d\n\nbut still we could try to deprecate it explicitly.","commit_id":"73b435f1b53fc38a55a232a0cc4c9a8b79148f20"},{"author":{"_account_id":11816,"name":"mike bayer","display_name":"Mike Bayer","email":"mike_mp@zzzcomputing.com","username":"zzzeek","status":"Red Hat"},"change_message_id":"a8a703d8424a1dee1afabe1ab9ae93f4d5f98559","unresolved":false,"context_lines":[{"line_number":51,"context_line":"    # are referring to them directly."},{"line_number":52,"context_line":"    DBNAME \u003d PASSWORD \u003d USERNAME \u003d \u0027openstack_citest\u0027"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    def __init__(self, test, skip_on_unavailable_db\u003dTrue):"},{"line_number":55,"context_line":"        super(DbFixture, self).__init__()"},{"line_number":56,"context_line":"        self.test \u003d test"},{"line_number":57,"context_line":"        self.skip_on_unavailable_db \u003d skip_on_unavailable_db"}],"source_content_type":"text/x-python","patch_set":1,"id":"bacf61ea_11706371","side":"PARENT","line":54,"in_reply_to":"bacf61ea_6652d968","updated":"2016-08-05 18:01:32.000000000","message":"OK, well, where i want to go w/ this might make that less convenient but I\u0027ll see what I can do, the whole \"lets see if we have to skip\" thing will occur in the test now, not the fixture.  Because fixtures can\u0027t officially skip, see https://github.com/testing-cabal/fixtures/issues/31\n\nif fixtures wasn\u0027t changing underneath us and making things harder, this would be a little simpler.","commit_id":"73b435f1b53fc38a55a232a0cc4c9a8b79148f20"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"d22124c5e94b6335eb51af7e4c9edaaa72d3b220","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        self.enginefacade \u003d enginefacade"},{"line_number":73,"context_line":"        self.replace_with_enginefacade \u003d replace_with_enginefacade"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    def _setUp(self):"},{"line_number":76,"context_line":"        _reset_facade \u003d self.enginefacade.patch_factory("},{"line_number":77,"context_line":"            self.replace_with_enginefacade._factory"},{"line_number":78,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":1,"id":"bacf61ea_062cbd00","line":75,"updated":"2016-08-05 12:52:36.000000000","message":"Hmm, why is this prefixed with _?","commit_id":"688baa9b8e523d7ac11b26871c609393f93c1174"},{"author":{"_account_id":11816,"name":"mike bayer","display_name":"Mike Bayer","email":"mike_mp@zzzcomputing.com","username":"zzzeek","status":"Red Hat"},"change_message_id":"a8a703d8424a1dee1afabe1ab9ae93f4d5f98559","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        self.enginefacade \u003d enginefacade"},{"line_number":73,"context_line":"        self.replace_with_enginefacade \u003d replace_with_enginefacade"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    def _setUp(self):"},{"line_number":76,"context_line":"        _reset_facade \u003d self.enginefacade.patch_factory("},{"line_number":77,"context_line":"            self.replace_with_enginefacade._factory"},{"line_number":78,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":1,"id":"bacf61ea_71bd5f01","line":75,"in_reply_to":"bacf61ea_062cbd00","updated":"2016-08-05 18:01:32.000000000","message":"welp. bc. that\u0027s what he wants now https://github.com/testing-cabal/fixtures/blob/master/fixtures/fixture.py#L216    https://github.com/testing-cabal/fixtures/blob/master/fixtures/fixture.py#L175  \"This should not be overridden. Concrete fixtures should implement _setUp. Overriding of setUp is still supported, just not recommended.\"","commit_id":"688baa9b8e523d7ac11b26871c609393f93c1174"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"d22124c5e94b6335eb51af7e4c9edaaa72d3b220","unresolved":false,"context_lines":[{"line_number":163,"context_line":"        # (I did a grep).  The replacement concept will be a transaction"},{"line_number":164,"context_line":"        # rollback fixture instead of a testresource. I will gladly remove"},{"line_number":165,"context_line":"        # the SCHEMA_SCOPE idea from this patch if we are OK with that."},{"line_number":166,"context_line":"        schema_scope \u003d self.test.SCHEMA_SCOPE"},{"line_number":167,"context_line":"        if schema_scope:"},{"line_number":168,"context_line":"            key \u003d key + (schema_scope, )"},{"line_number":169,"context_line":"            if key not in self._schema_resources:"}],"source_content_type":"text/x-python","patch_set":1,"id":"bacf61ea_46419562","line":166,"updated":"2016-08-05 12:52:36.000000000","message":"I get that no one is really using it right now, but I actually planned to give it a try in Nova :) So, maybe let\u0027s deprecate it explicitly first?","commit_id":"688baa9b8e523d7ac11b26871c609393f93c1174"},{"author":{"_account_id":11816,"name":"mike bayer","display_name":"Mike Bayer","email":"mike_mp@zzzcomputing.com","username":"zzzeek","status":"Red Hat"},"change_message_id":"a8a703d8424a1dee1afabe1ab9ae93f4d5f98559","unresolved":false,"context_lines":[{"line_number":163,"context_line":"        # (I did a grep).  The replacement concept will be a transaction"},{"line_number":164,"context_line":"        # rollback fixture instead of a testresource. I will gladly remove"},{"line_number":165,"context_line":"        # the SCHEMA_SCOPE idea from this patch if we are OK with that."},{"line_number":166,"context_line":"        schema_scope \u003d self.test.SCHEMA_SCOPE"},{"line_number":167,"context_line":"        if schema_scope:"},{"line_number":168,"context_line":"            key \u003d key + (schema_scope, )"},{"line_number":169,"context_line":"            if key not in self._schema_resources:"}],"source_content_type":"text/x-python","patch_set":1,"id":"bacf61ea_51993b78","line":166,"in_reply_to":"bacf61ea_46419562","updated":"2016-08-05 18:01:32.000000000","message":"OK with this one, I actually tried using it in neutron, and it\u0027s not even working right now, because NonCommittingConnectable is not implementing everything that Session and/or enginefacade is calling.   I\u0027ve backed away a bit from the \"run the test in a transaction\" thing because when you get into savepoints and all the failure modes of MySQL and such, I am not totally confident it can survive every scenario.  What neutron does, and where I go with this in the next patch, is that first of all, you can have different \"clean out the DB\" strategies, one is a transaction fixture that uses this technique (though in a fixture, much simpler), and the other is the \"delete from all the tables\" fixture, which I\u0027m leaning towards right now.\n\nSo SCHEMA_SCOPE isn\u0027t really usable right now anyway.   Again I can try to tack it on w/ debtcollector, but all these debt things are a lot of work for no impact...","commit_id":"688baa9b8e523d7ac11b26871c609393f93c1174"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"d22124c5e94b6335eb51af7e4c9edaaa72d3b220","unresolved":false,"context_lines":[{"line_number":194,"context_line":"                (\u0027db\u0027, database_resource)"},{"line_number":195,"context_line":"            ]"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"    def _setUp(self):"},{"line_number":198,"context_line":"        super(DbFixture, self)._setUp()"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"        if not self._has_db_resource():"}],"source_content_type":"text/x-python","patch_set":1,"id":"bacf61ea_e1d51343","line":197,"updated":"2016-08-05 12:52:36.000000000","message":"shouldn\u0027t this be setUp()?","commit_id":"688baa9b8e523d7ac11b26871c609393f93c1174"},{"author":{"_account_id":11816,"name":"mike bayer","display_name":"Mike Bayer","email":"mike_mp@zzzcomputing.com","username":"zzzeek","status":"Red Hat"},"change_message_id":"a8a703d8424a1dee1afabe1ab9ae93f4d5f98559","unresolved":false,"context_lines":[{"line_number":194,"context_line":"                (\u0027db\u0027, database_resource)"},{"line_number":195,"context_line":"            ]"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"    def _setUp(self):"},{"line_number":198,"context_line":"        super(DbFixture, self)._setUp()"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"        if not self._has_db_resource():"}],"source_content_type":"text/x-python","patch_set":1,"id":"bacf61ea_d1e88bb5","line":197,"in_reply_to":"bacf61ea_e1d51343","updated":"2016-08-05 18:01:32.000000000","message":"same as above...  though if we do use setUp() here, then the self.test.skip() thing works again.  If we\u0027re in the recommended _setUp(), we can\u0027t call skip() here.  Again, this entire approach, e.g. using testresources etc. is all the testtools / lifeless approach so I feel like we should keep sticking with current guidelines :)","commit_id":"688baa9b8e523d7ac11b26871c609393f93c1174"}],"oslo_db/sqlalchemy/test_fixtures.py":[{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"9ba2823830cc58e28e345f3624fe55086b4397c8","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2016 OpenStack Foundation"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":5,"id":"3ac371cc_7e05f811","line":1,"updated":"2016-08-18 16:56:39.000000000","message":"maybe we should just call this module fixtures?","commit_id":"b73341c45df966e49749071ff8b2d2867bec8d0b"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"d3f850269b671fe13cfc97eae3beba61b2c2df0f","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2016 OpenStack Foundation"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba5da102_59764dd9","line":1,"in_reply_to":"1ac06dbe_09bbdb73","updated":"2016-11-04 17:58:56.000000000","message":"Ah, I see now - it\u0027s test_base.py that tries to import fixtures and ends up importing this module. Let\u0027s keep it named test_fixtures.py then.","commit_id":"b73341c45df966e49749071ff8b2d2867bec8d0b"},{"author":{"_account_id":11816,"name":"mike bayer","display_name":"Mike Bayer","email":"mike_mp@zzzcomputing.com","username":"zzzeek","status":"Red Hat"},"change_message_id":"244cfbedd5223818504e60b91f58f55419852917","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2016 OpenStack Foundation"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":5,"id":"1ac06dbe_09bbdb73","line":1,"in_reply_to":"3ac371cc_7e05f811","updated":"2016-08-19 14:49:27.000000000","message":"Yes, although I might have seen some inconvenient things going on with the fact that \"fixtures\" is also a global module.  We always do full imports so I\u0027m not sure why I recall seeing something.  shrugs","commit_id":"b73341c45df966e49749071ff8b2d2867bec8d0b"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"9ba2823830cc58e28e345f3624fe55086b4397c8","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"logging.basicConfig()"},{"line_number":29,"context_line":"LOG.setLevel(logging.DEBUG)"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"3ac371cc_849ea6b6","line":28,"updated":"2016-08-18 16:56:39.000000000","message":"hmm, do we really want to call this at import time, given the fact that consuming projects will have their own logging setups?","commit_id":"b73341c45df966e49749071ff8b2d2867bec8d0b"},{"author":{"_account_id":11816,"name":"mike bayer","display_name":"Mike Bayer","email":"mike_mp@zzzcomputing.com","username":"zzzeek","status":"Red Hat"},"change_message_id":"244cfbedd5223818504e60b91f58f55419852917","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"logging.basicConfig()"},{"line_number":29,"context_line":"LOG.setLevel(logging.DEBUG)"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"1ac06dbe_897eabac","line":28,"in_reply_to":"3ac371cc_849ea6b6","updated":"2016-08-19 14:49:27.000000000","message":"this is a leftover from my testing, should be removed","commit_id":"b73341c45df966e49749071ff8b2d2867bec8d0b"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"49811e3e8e83ebfc1b688642e730ced9dc625399","unresolved":false,"context_lines":[{"line_number":61,"context_line":"    replaced back."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    \"\"\""},{"line_number":64,"context_line":"    def __init__(self, enginefacade, replace_with_enginefacade):"},{"line_number":65,"context_line":"        self.enginefacade \u003d enginefacade"},{"line_number":66,"context_line":"        self.replace_with_enginefacade \u003d replace_with_enginefacade"},{"line_number":67,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"1ac06dbe_df4dac73","line":64,"updated":"2016-08-22 09:57:56.000000000","message":"nit: looks like it\u0027s not important for subclasses of Fixture right now (https://github.com/testing-cabal/fixtures/blob/master/fixtures/fixture.py#L61), but maybe we should add a super() call here just in case (e.g. if they decide to put some initialization logic into Fixture\u0027s __init__() in the future)","commit_id":"b73341c45df966e49749071ff8b2d2867bec8d0b"}]}
