)]}'
{"nova/tests/unit/db/test_models.py":[{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"ed2a04c5fc663aef5956fbeb9f4412c42f866df8","unresolved":false,"context_lines":[{"line_number":79,"context_line":"        # allow soft deletes. No new tables should be added to this whitelist."},{"line_number":80,"context_line":"        tables \u003d []"},{"line_number":81,"context_line":"        for base in [models.BASE, api_models.API_BASE]:"},{"line_number":82,"context_line":"            for table_name in base.metadata.tables:"},{"line_number":83,"context_line":"                table \u003d base.metadata.tables[table_name]"},{"line_number":84,"context_line":"                columns \u003d [column.name for column in table.columns]"},{"line_number":85,"context_line":"                if \u0027deleted\u0027 in columns and \u0027deleted_at\u0027 in columns:"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a5ae5dd_b138c4a1","line":82,"updated":"2016-02-04 13:47:55.000000000","message":"You could avoid the extra step of line 83 by doing\n    for (table_name, table) in base.metadata.tables.items():","commit_id":"f69e426fa68aca23d4c5ac48ab02d73877d8e2aa"},{"author":{"_account_id":16907,"name":"Diana Clarke","email":"diana.joan.clarke@gmail.com","username":"diana-clarke"},"change_message_id":"414d48f29e812f6808d1fb0c057e6c894670d713","unresolved":false,"context_lines":[{"line_number":79,"context_line":"        # allow soft deletes. No new tables should be added to this whitelist."},{"line_number":80,"context_line":"        tables \u003d []"},{"line_number":81,"context_line":"        for base in [models.BASE, api_models.API_BASE]:"},{"line_number":82,"context_line":"            for table_name in base.metadata.tables:"},{"line_number":83,"context_line":"                table \u003d base.metadata.tables[table_name]"},{"line_number":84,"context_line":"                columns \u003d [column.name for column in table.columns]"},{"line_number":85,"context_line":"                if \u0027deleted\u0027 in columns and \u0027deleted_at\u0027 in columns:"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a5ae5dd_f74aacc4","line":82,"in_reply_to":"5a5ae5dd_b138c4a1","updated":"2016-02-04 14:21:18.000000000","message":"I\u0027m embarrassed to admit this: I always forget which dictionary things work in both python 2 \u0026 3, but I knew simple iteration was safe. I\u0027ll fix this in the next patch set.","commit_id":"f69e426fa68aca23d4c5ac48ab02d73877d8e2aa"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"ed2a04c5fc663aef5956fbeb9f4412c42f866df8","unresolved":false,"context_lines":[{"line_number":82,"context_line":"            for table_name in base.metadata.tables:"},{"line_number":83,"context_line":"                table \u003d base.metadata.tables[table_name]"},{"line_number":84,"context_line":"                columns \u003d [column.name for column in table.columns]"},{"line_number":85,"context_line":"                if \u0027deleted\u0027 in columns and \u0027deleted_at\u0027 in columns:"},{"line_number":86,"context_line":"                    tables.append(table_name)"},{"line_number":87,"context_line":"        self.assertEqual(whitelist, sorted(tables))"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a5ae5dd_1169988b","line":85,"updated":"2016-02-04 13:47:55.000000000","message":"I don\u0027t have a strong opinion but s/and/or/ may be better here.","commit_id":"f69e426fa68aca23d4c5ac48ab02d73877d8e2aa"},{"author":{"_account_id":16907,"name":"Diana Clarke","email":"diana.joan.clarke@gmail.com","username":"diana-clarke"},"change_message_id":"414d48f29e812f6808d1fb0c057e6c894670d713","unresolved":false,"context_lines":[{"line_number":82,"context_line":"            for table_name in base.metadata.tables:"},{"line_number":83,"context_line":"                table \u003d base.metadata.tables[table_name]"},{"line_number":84,"context_line":"                columns \u003d [column.name for column in table.columns]"},{"line_number":85,"context_line":"                if \u0027deleted\u0027 in columns and \u0027deleted_at\u0027 in columns:"},{"line_number":86,"context_line":"                    tables.append(table_name)"},{"line_number":87,"context_line":"        self.assertEqual(whitelist, sorted(tables))"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a5ae5dd_3797e449","line":85,"in_reply_to":"5a5ae5dd_1169988b","updated":"2016-02-04 14:21:18.000000000","message":"I wondered this too, and was hoping for feedback. For now, \u0027or\u0027 yields the same tables. It could result in false positives going forward, but I doubt it. I\u0027ll change it to \u0027or\u0027 in the next pat set.","commit_id":"f69e426fa68aca23d4c5ac48ab02d73877d8e2aa"}]}
