)]}'
{"keystone/tests/ksfixtures/database.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"aa817111918179f7f0df7124cf50901c7c001224","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"def _setup_database(extensions\u003dNone):"},{"line_number":31,"context_line":"    # TODO(dstanek): i don\u0027t think we actually need this"},{"line_number":32,"context_line":"    if CONF.database.connection !\u003d tests.IN_MEM_DB_CONN_STRING:"},{"line_number":33,"context_line":"        db \u003d tests.dirs.tmp(\u0027test.db\u0027)"},{"line_number":34,"context_line":"        pristine \u003d tests.dirs.tmp(\u0027test.db.pristine\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAW3%2F%2FiPs%3D","line":31,"updated":"2014-04-13 15:06:55.000000000","message":"I don\u0027t know what \"this\" is referring to -- the function? the next line? the pristine database?","commit_id":"a988c5f75644e39e254552b1ef55644aec571b99"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"081d9365ff69833ad79a976b19420a31aca652ef","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"def _setup_database(extensions\u003dNone):"},{"line_number":31,"context_line":"    # TODO(dstanek): i don\u0027t think we actually need this"},{"line_number":32,"context_line":"    if CONF.database.connection !\u003d tests.IN_MEM_DB_CONN_STRING:"},{"line_number":33,"context_line":"        db \u003d tests.dirs.tmp(\u0027test.db\u0027)"},{"line_number":34,"context_line":"        pristine \u003d tests.dirs.tmp(\u0027test.db.pristine\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAW3%2F%2FdVo%3D","line":31,"in_reply_to":"AAAAW3%2F%2FiPs%3D","updated":"2014-04-14 16:00:58.000000000","message":"Comment fixed to be more explicit","commit_id":"a988c5f75644e39e254552b1ef55644aec571b99"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"aa817111918179f7f0df7124cf50901c7c001224","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":"def _setup_database(extensions\u003dNone):"},{"line_number":31,"context_line":"    # TODO(dstanek): i don\u0027t think we actually need this"},{"line_number":32,"context_line":"    if CONF.database.connection !\u003d tests.IN_MEM_DB_CONN_STRING:"},{"line_number":33,"context_line":"        db \u003d tests.dirs.tmp(\u0027test.db\u0027)"},{"line_number":34,"context_line":"        pristine \u003d tests.dirs.tmp(\u0027test.db.pristine\u0027)"},{"line_number":35,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAW3%2F%2FiPw%3D","line":32,"updated":"2014-04-13 15:06:55.000000000","message":"suggest return if CONF.database.connection \u003d\u003d tests.IN_MEM_DB_CONN_STRING -- then it will be easier for reviewers to see that in this case there\u0027s nothing to do.","commit_id":"a988c5f75644e39e254552b1ef55644aec571b99"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"081d9365ff69833ad79a976b19420a31aca652ef","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":"def _setup_database(extensions\u003dNone):"},{"line_number":31,"context_line":"    # TODO(dstanek): i don\u0027t think we actually need this"},{"line_number":32,"context_line":"    if CONF.database.connection !\u003d tests.IN_MEM_DB_CONN_STRING:"},{"line_number":33,"context_line":"        db \u003d tests.dirs.tmp(\u0027test.db\u0027)"},{"line_number":34,"context_line":"        pristine \u003d tests.dirs.tmp(\u0027test.db.pristine\u0027)"},{"line_number":35,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAW3%2F%2FdU4%3D","line":32,"in_reply_to":"AAAAW3%2F%2FiPw%3D","updated":"2014-04-14 16:00:58.000000000","message":"I didn\u0027t want to change this since it was just moved from keystone/tests/test_v3.py.","commit_id":"a988c5f75644e39e254552b1ef55644aec571b99"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"17a38b9ed8b07610c494d85ac9571eb1c4b870c3","unresolved":false,"context_lines":[{"line_number":46,"context_line":""},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"def _initialize_sql_session():"},{"line_number":49,"context_line":"    # TODO(dstanek): i don\u0027t think we actually need this"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    # Make sure the DB is located in the correct location, in this case set"},{"line_number":52,"context_line":"    # the default value, as this should be able to be overridden in some"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAW3%2F%2Flt4%3D","line":49,"updated":"2014-04-11 23:05:26.000000000","message":"This one is needed because it overrides the default values so we get in-mem db and allows this to be overridden in other cases.","commit_id":"a988c5f75644e39e254552b1ef55644aec571b99"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"081d9365ff69833ad79a976b19420a31aca652ef","unresolved":false,"context_lines":[{"line_number":46,"context_line":""},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"def _initialize_sql_session():"},{"line_number":49,"context_line":"    # TODO(dstanek): i don\u0027t think we actually need this"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    # Make sure the DB is located in the correct location, in this case set"},{"line_number":52,"context_line":"    # the default value, as this should be able to be overridden in some"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAW3%2F%2FdUQ%3D","line":49,"in_reply_to":"AAAAW3%2F%2Flt4%3D","updated":"2014-04-14 16:00:58.000000000","message":"I removed this comment, but in a future changeset I want to come up with a better way to do this. I don\u0027t like that there is an side effect on import.","commit_id":"a988c5f75644e39e254552b1ef55644aec571b99"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"aa817111918179f7f0df7124cf50901c7c001224","unresolved":false,"context_lines":[{"line_number":72,"context_line":"    for root, dirs, files in os.walk(start):"},{"line_number":73,"context_line":"        if root.endswith(\u0027backends\u0027) and \u0027sql.py\u0027 in files:"},{"line_number":74,"context_line":"            module_name \u003d root.replace(os.sep, \u0027.\u0027) + \u0027.sql\u0027"},{"line_number":75,"context_line":"            __import__(module_name)"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"class Database(fixtures.Fixture):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAW3%2F%2FiP0%3D","line":75,"updated":"2014-04-13 15:06:55.000000000","message":"isn\u0027t this going to import extension models even when the extension isn\u0027t enabled? That would be different than how the server runs.","commit_id":"a988c5f75644e39e254552b1ef55644aec571b99"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"081d9365ff69833ad79a976b19420a31aca652ef","unresolved":false,"context_lines":[{"line_number":72,"context_line":"    for root, dirs, files in os.walk(start):"},{"line_number":73,"context_line":"        if root.endswith(\u0027backends\u0027) and \u0027sql.py\u0027 in files:"},{"line_number":74,"context_line":"            module_name \u003d root.replace(os.sep, \u0027.\u0027) + \u0027.sql\u0027"},{"line_number":75,"context_line":"            __import__(module_name)"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"class Database(fixtures.Fixture):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAW3%2F%2FdR8%3D","line":75,"in_reply_to":"AAAAW3%2F%2FhxM%3D","updated":"2014-04-14 16:00:58.000000000","message":"Yes, the problem is that we have tests that do imported and enable the extensions. So some tests would have the extra tables and some would not. It just depends on the order of execution in many cases.","commit_id":"a988c5f75644e39e254552b1ef55644aec571b99"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"6fb4bed0b4e276664d8e151d929b625c078ae504","unresolved":false,"context_lines":[{"line_number":72,"context_line":"    for root, dirs, files in os.walk(start):"},{"line_number":73,"context_line":"        if root.endswith(\u0027backends\u0027) and \u0027sql.py\u0027 in files:"},{"line_number":74,"context_line":"            module_name \u003d root.replace(os.sep, \u0027.\u0027) + \u0027.sql\u0027"},{"line_number":75,"context_line":"            __import__(module_name)"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"class Database(fixtures.Fixture):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAW3%2F%2FhxM%3D","line":75,"in_reply_to":"AAAAW3%2F%2FiP0%3D","updated":"2014-04-13 19:26:36.000000000","message":"I discussed this on IRC, and with exception of the migration tests it doesn\u0027t really make sense exclude creation the tables for any/all extensions. Due to the way SQLA reflection works, if you import a file that has a table definition, it will create that table, so you will get different db schemas depending on what you import.\n\nSince we don\u0027t care if a table exists/not exists (we want it to exist when we test the extension) except when we\u0027re doing migration specific validation, it makes sense to always include them.","commit_id":"a988c5f75644e39e254552b1ef55644aec571b99"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"bbbedbb92596023f77900f10f7d85d654bd3ee4e","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":"def _setup_database(extensions\u003dNone):"},{"line_number":31,"context_line":"    # TODO(dstanek): i don\u0027t think we actually need this function and it"},{"line_number":32,"context_line":"    # it may be removed in a future changeset"},{"line_number":33,"context_line":"    if CONF.database.connection !\u003d tests.IN_MEM_DB_CONN_STRING:"},{"line_number":34,"context_line":"        db \u003d tests.dirs.tmp(\u0027test.db\u0027)"},{"line_number":35,"context_line":"        pristine \u003d tests.dirs.tmp(\u0027test.db.pristine\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAW3%2F%2FYPU%3D","line":32,"updated":"2014-04-15 01:52:43.000000000","message":"why do you think it\u0027s not needed?","commit_id":"d8ac5ad9d19ef10f7250852d8067b73a91d6c8aa"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"bbbedbb92596023f77900f10f7d85d654bd3ee4e","unresolved":false,"context_lines":[{"line_number":84,"context_line":"        self._extensions \u003d extensions"},{"line_number":85,"context_line":"        keystone_root \u003d os.path.normpath(os.path.join("},{"line_number":86,"context_line":"            os.path.dirname(__file__), \u0027..\u0027, \u0027..\u0027))"},{"line_number":87,"context_line":"        _load_sqlalchemy_models(keystone_root)"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    def setUp(self):"},{"line_number":90,"context_line":"        super(Database, self).setUp()"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAW3%2F%2FYO4%3D","line":87,"updated":"2014-04-15 01:52:43.000000000","message":"do we have to do this every time?","commit_id":"d8ac5ad9d19ef10f7250852d8067b73a91d6c8aa"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"454758ebd42174a03e5e5f908532d2daa129b98e","unresolved":false,"context_lines":[{"line_number":28,"context_line":"CONF \u003d config.CONF"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"def run_once(f):"},{"line_number":32,"context_line":"    @functools.wraps(f)"},{"line_number":33,"context_line":"    def wrapper():"},{"line_number":34,"context_line":"        if not wrapper.already_ran:"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAW3%2F%2FQ1Y%3D","line":31,"updated":"2014-04-15 17:40:32.000000000","message":"a docstring for this wrapper would be useful.","commit_id":"01b0f4cd7da5773e2a8d865a181899ff5b856ff2"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"3d3a18d4878ac2f1fafeb93c7c05eff2ef556b99","unresolved":false,"context_lines":[{"line_number":28,"context_line":"CONF \u003d config.CONF"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"def run_once(f):"},{"line_number":32,"context_line":"    @functools.wraps(f)"},{"line_number":33,"context_line":"    def wrapper():"},{"line_number":34,"context_line":"        if not wrapper.already_ran:"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAW3%2F%2FQv0%3D","line":31,"in_reply_to":"AAAAW3%2F%2FQ1Y%3D","updated":"2014-04-15 17:57:35.000000000","message":"Oh this is cool. I like it.","commit_id":"01b0f4cd7da5773e2a8d865a181899ff5b856ff2"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"3d3a18d4878ac2f1fafeb93c7c05eff2ef556b99","unresolved":false,"context_lines":[{"line_number":73,"context_line":"    database schema will be predictable. The schema is created based on the"},{"line_number":74,"context_line":"    models already imported. This can change during the course of a test run."},{"line_number":75,"context_line":"    If all models are imported ahead of time then the schema will always be"},{"line_number":76,"context_line":"    the same."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    \"\"\""},{"line_number":79,"context_line":"    keystone_root \u003d os.path.normpath(os.path.join("}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAW3%2F%2FQrA%3D","line":76,"updated":"2014-04-15 17:57:35.000000000","message":"Suggest  a comment about the fact that all models are expected in the reflection based DBs regardless of extension(s) being enabled.","commit_id":"01b0f4cd7da5773e2a8d865a181899ff5b856ff2"}],"keystone/tests/test_auth.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"aa817111918179f7f0df7124cf50901c7c001224","unresolved":false,"context_lines":[{"line_number":27,"context_line":"from keystone.openstack.common import timeutils"},{"line_number":28,"context_line":"from keystone import tests"},{"line_number":29,"context_line":"from keystone.tests import default_fixtures"},{"line_number":30,"context_line":"from keystone.tests.ksfixtures import database"},{"line_number":31,"context_line":"from keystone import token"},{"line_number":32,"context_line":"from keystone import trust"},{"line_number":33,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAW3%2F%2FiPo%3D","line":30,"updated":"2014-04-13 15:06:55.000000000","message":"could we have ksfixtures export Database?","commit_id":"a988c5f75644e39e254552b1ef55644aec571b99"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"081d9365ff69833ad79a976b19420a31aca652ef","unresolved":false,"context_lines":[{"line_number":27,"context_line":"from keystone.openstack.common import timeutils"},{"line_number":28,"context_line":"from keystone import tests"},{"line_number":29,"context_line":"from keystone.tests import default_fixtures"},{"line_number":30,"context_line":"from keystone.tests.ksfixtures import database"},{"line_number":31,"context_line":"from keystone import token"},{"line_number":32,"context_line":"from keystone import trust"},{"line_number":33,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAW3%2F%2FdRY%3D","line":30,"in_reply_to":"AAAAW3%2F%2FiPo%3D","updated":"2014-04-14 16:00:58.000000000","message":"I am planning on doing this in a later commit that I\u0027ve already started. It\u0027s not as easy as adding the import to the ksfixture package because that creates a circular import. I\u0027ve been doing a bit of refactoring that will make this possible in the future.","commit_id":"a988c5f75644e39e254552b1ef55644aec571b99"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"6fb4bed0b4e276664d8e151d929b625c078ae504","unresolved":false,"context_lines":[{"line_number":27,"context_line":"from keystone.openstack.common import timeutils"},{"line_number":28,"context_line":"from keystone import tests"},{"line_number":29,"context_line":"from keystone.tests import default_fixtures"},{"line_number":30,"context_line":"from keystone.tests.ksfixtures import database"},{"line_number":31,"context_line":"from keystone import token"},{"line_number":32,"context_line":"from keystone import trust"},{"line_number":33,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAW3%2F%2FhxI%3D","line":30,"in_reply_to":"AAAAW3%2F%2FiPo%3D","updated":"2014-04-13 19:26:36.000000000","message":"I think we should start doing that for all of our fixtures.","commit_id":"a988c5f75644e39e254552b1ef55644aec571b99"}],"keystone/tests/test_backend_kvs.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"bbbedbb92596023f77900f10f7d85d654bd3ee4e","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"class KvsIdentity(tests.TestCase, test_backend.IdentityTests):"},{"line_number":28,"context_line":"    def setUp(self):"},{"line_number":29,"context_line":"        self.useFixture(database.Database())"},{"line_number":30,"context_line":"        super(KvsIdentity, self).setUp()"},{"line_number":31,"context_line":"        self.load_backends()"},{"line_number":32,"context_line":"        self.load_fixtures(default_fixtures)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAW3%2F%2FYOc%3D","line":29,"updated":"2014-04-15 01:52:43.000000000","message":"why does kvs need the database? Add a comment.","commit_id":"d8ac5ad9d19ef10f7250852d8067b73a91d6c8aa"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"454758ebd42174a03e5e5f908532d2daa129b98e","unresolved":false,"context_lines":[{"line_number":27,"context_line":"class KvsIdentity(tests.TestCase, test_backend.IdentityTests):"},{"line_number":28,"context_line":"    def setUp(self):"},{"line_number":29,"context_line":"        # NOTE(dstanek): setup the database for subsystems that do not have a"},{"line_number":30,"context_line":"        # KVS backend (like credentials)"},{"line_number":31,"context_line":"        self.useFixture(database.Database())"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"        super(KvsIdentity, self).setUp()"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAW3%2F%2FQ2w%3D","line":30,"updated":"2014-04-15 17:40:32.000000000","message":"suggest change \"do not have a KVS backend\" to \"only have an SQL backend\"","commit_id":"01b0f4cd7da5773e2a8d865a181899ff5b856ff2"}],"keystone/tests/test_backend_ldap.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"aa817111918179f7f0df7124cf50901c7c001224","unresolved":false,"context_lines":[{"line_number":562,"context_line":"class LDAPIdentity(BaseLDAPIdentity, tests.TestCase):"},{"line_number":563,"context_line":""},{"line_number":564,"context_line":"    def setUp(self):"},{"line_number":565,"context_line":"        self.useFixture(database.Database())"},{"line_number":566,"context_line":"        super(LDAPIdentity, self).setUp()"},{"line_number":567,"context_line":""},{"line_number":568,"context_line":"    def test_configurable_allowed_project_actions(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAW3%2F%2FiPg%3D","line":565,"updated":"2014-04-13 15:06:55.000000000","message":"why do useFixture before super setUp? Add a comment.","commit_id":"a988c5f75644e39e254552b1ef55644aec571b99"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"081d9365ff69833ad79a976b19420a31aca652ef","unresolved":false,"context_lines":[{"line_number":562,"context_line":"class LDAPIdentity(BaseLDAPIdentity, tests.TestCase):"},{"line_number":563,"context_line":""},{"line_number":564,"context_line":"    def setUp(self):"},{"line_number":565,"context_line":"        self.useFixture(database.Database())"},{"line_number":566,"context_line":"        super(LDAPIdentity, self).setUp()"},{"line_number":567,"context_line":""},{"line_number":568,"context_line":"    def test_configurable_allowed_project_actions(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAW3%2F%2FdQU%3D","line":565,"in_reply_to":"AAAAW3%2F%2FiPg%3D","updated":"2014-04-14 16:00:58.000000000","message":"Done","commit_id":"a988c5f75644e39e254552b1ef55644aec571b99"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"aa817111918179f7f0df7124cf50901c7c001224","unresolved":false,"context_lines":[{"line_number":1193,"context_line":""},{"line_number":1194,"context_line":"class LDAPIdentityEnabledEmulation(LDAPIdentity):"},{"line_number":1195,"context_line":"    def setUp(self):"},{"line_number":1196,"context_line":"        self.useFixture(database.Database())"},{"line_number":1197,"context_line":"        super(LDAPIdentityEnabledEmulation, self).setUp()"},{"line_number":1198,"context_line":"        self.clear_database()"},{"line_number":1199,"context_line":"        self.load_backends()"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAW3%2F%2FiPc%3D","line":1196,"updated":"2014-04-13 15:06:55.000000000","message":"the LDAPIdentity does this in its setup -- why does the subclass need to do it?","commit_id":"a988c5f75644e39e254552b1ef55644aec571b99"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"081d9365ff69833ad79a976b19420a31aca652ef","unresolved":false,"context_lines":[{"line_number":1193,"context_line":""},{"line_number":1194,"context_line":"class LDAPIdentityEnabledEmulation(LDAPIdentity):"},{"line_number":1195,"context_line":"    def setUp(self):"},{"line_number":1196,"context_line":"        self.useFixture(database.Database())"},{"line_number":1197,"context_line":"        super(LDAPIdentityEnabledEmulation, self).setUp()"},{"line_number":1198,"context_line":"        self.clear_database()"},{"line_number":1199,"context_line":"        self.load_backends()"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAW3%2F%2FcJA%3D","line":1196,"in_reply_to":"AAAAW3%2F%2FiPc%3D","updated":"2014-04-14 16:00:58.000000000","message":"Done","commit_id":"a988c5f75644e39e254552b1ef55644aec571b99"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"bbbedbb92596023f77900f10f7d85d654bd3ee4e","unresolved":false,"context_lines":[{"line_number":596,"context_line":""},{"line_number":597,"context_line":"    def setUp(self):"},{"line_number":598,"context_line":"        # NOTE(dstanek): the database must be setup prior to calling the"},{"line_number":599,"context_line":"        # parent\u0027s setUp because it expects to use it."},{"line_number":600,"context_line":"        self.useFixture(database.Database())"},{"line_number":601,"context_line":"        super(LDAPIdentity, self).setUp()"},{"line_number":602,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAW3%2F%2FYOo%3D","line":599,"updated":"2014-04-15 01:52:43.000000000","message":"there\u0027s 2 \"it\"s in this sentence that refer to different things. This needs to be clearer.\n\n because the superclass uses the database\n\nalso, could remove the comment since it wasn\u0027t done in test_auth or test_backend_kvs... it just sticks out here because it\u0027s the only thing done in setUp.","commit_id":"d8ac5ad9d19ef10f7250852d8067b73a91d6c8aa"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"3d3a18d4878ac2f1fafeb93c7c05eff2ef556b99","unresolved":false,"context_lines":[{"line_number":1341,"context_line":"        return config_files"},{"line_number":1342,"context_line":""},{"line_number":1343,"context_line":"    def setUp(self):"},{"line_number":1344,"context_line":"        self.useFixture(database.Database())"},{"line_number":1345,"context_line":"        super(LdapIdentitySqlAssignment, self).setUp()"},{"line_number":1346,"context_line":"        self.clear_database()"},{"line_number":1347,"context_line":"        self.load_backends()"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAW3%2F%2FQp4%3D","line":1344,"updated":"2014-04-15 17:57:35.000000000","message":"Could this be moved to BaseLDAPIdentity?","commit_id":"01b0f4cd7da5773e2a8d865a181899ff5b856ff2"}],"keystone/tests/test_backend_sql.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"aa817111918179f7f0df7124cf50901c7c001224","unresolved":false,"context_lines":[{"line_number":40,"context_line":"    def setUp(self):"},{"line_number":41,"context_line":"        super(SqlTests, self).setUp()"},{"line_number":42,"context_line":"        self.load_backends()"},{"line_number":43,"context_line":"        self.useFixture(database.Database())"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"        # populate the engine with tables \u0026 fixtures"},{"line_number":46,"context_line":"        self.load_fixtures(default_fixtures)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAW3%2F%2FiPU%3D","line":43,"updated":"2014-04-13 15:06:55.000000000","message":"shouldn\u0027t we have the database before we load backends? that would be more consistent with how the server runs.","commit_id":"a988c5f75644e39e254552b1ef55644aec571b99"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"081d9365ff69833ad79a976b19420a31aca652ef","unresolved":false,"context_lines":[{"line_number":40,"context_line":"    def setUp(self):"},{"line_number":41,"context_line":"        super(SqlTests, self).setUp()"},{"line_number":42,"context_line":"        self.load_backends()"},{"line_number":43,"context_line":"        self.useFixture(database.Database())"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"        # populate the engine with tables \u0026 fixtures"},{"line_number":46,"context_line":"        self.load_fixtures(default_fixtures)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAW3%2F%2FbyY%3D","line":43,"in_reply_to":"AAAAW3%2F%2FiPU%3D","updated":"2014-04-14 16:00:58.000000000","message":"Done","commit_id":"a988c5f75644e39e254552b1ef55644aec571b99"}],"keystone/tests/test_keystoneclient.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"bbbedbb92596023f77900f10f7d85d654bd3ee4e","unresolved":false,"context_lines":[{"line_number":39,"context_line":"    def setUp(self):"},{"line_number":40,"context_line":"        super(CompatTestCase, self).setUp()"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        self.useFixture(database.Database())"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"        # FIXME(morganfainberg): Since we are running tests through the"},{"line_number":45,"context_line":"        # controllers and some internal api drivers are SQL-only, the correct"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAW3%2F%2FYNQ%3D","line":42,"updated":"2014-04-15 01:52:43.000000000","message":"suggest move this line after the FIXME comment, since I think it\u0027s related.","commit_id":"d8ac5ad9d19ef10f7250852d8067b73a91d6c8aa"}]}
