)]}'
{"ironic/tests/unit/db/sqlalchemy/test_migrations.py":[{"author":{"_account_id":11816,"name":"mike bayer","display_name":"Mike Bayer","email":"mike_mp@zzzcomputing.com","username":"zzzeek","status":"Red Hat"},"change_message_id":"08508036855d549a8be2cca77597446043e9c381","unresolved":true,"context_lines":[{"line_number":216,"context_line":"        self.assertIsInstance(nodes.c.instance_info.type,"},{"line_number":217,"context_line":"                              sqlalchemy.types.TEXT)"},{"line_number":218,"context_line":""},{"line_number":219,"context_line":"    def _check_3bea56f25597(self, engine, data):"},{"line_number":220,"context_line":"        nodes \u003d db_utils.get_table(self.engine, \u0027nodes\u0027)"},{"line_number":221,"context_line":"        instance_uuid \u003d \u0027aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee\u0027"},{"line_number":222,"context_line":"        data \u003d {\u0027driver\u0027: \u0027fake\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"472ea045_d21874be","line":219,"updated":"2021-09-03 13:51:17.000000000","message":"the \".execute\" method/symbol goes away from insert() entirely.  Also, always use the context manager when connecting so that the connection is released at the end of its use.  heres how this function should be written:\n\n    def _check_3bea56f25597(self, engine, data):\n        nodes \u003d db_utils.get_table(self.engine, \u0027nodes\u0027)\n        instance_uuid \u003d \u0027aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee\u0027\n        data \u003d {\u0027driver\u0027: \u0027fake\u0027,\n                \u0027uuid\u0027: uuidutils.generate_uuid(),\n                \u0027instance_uuid\u0027: instance_uuid}\n        with self.engine.begin() as connection:\n            insert_node \u003d nodes.insert().values(data)\n            connection.execute(insert_node)\n            data[\u0027uuid\u0027] \u003d uuidutils.generate_uuid()\n            self.assertRaises(db_exc.DBDuplicateEntry,\n                                connection.execute, nodes.insert(), data)\n\nabove uses begin() because we are executing DML and we will want to avoid a particular SQLAlchemy 2.0 deprecation warning regarding \"autocommit\".   connection.execute is then the only \"execute()\" method so that includes in the assertion.\n\nthis kind of change will need to be made all over the place so it\u0027s not necessarily a trivial migration.","commit_id":"3225e4f88f4b6467ca9fd4a76a5641b1bda98ead"},{"author":{"_account_id":11816,"name":"mike bayer","display_name":"Mike Bayer","email":"mike_mp@zzzcomputing.com","username":"zzzeek","status":"Red Hat"},"change_message_id":"59acc2a2c59428a32846b4ecf1f3ab6586c25af6","unresolved":true,"context_lines":[{"line_number":227,"context_line":"            insert_node \u003d nodes.insert().values(data)"},{"line_number":228,"context_line":"            connection.execute(insert_node)"},{"line_number":229,"context_line":"            data[\u0027uuid\u0027] \u003d uuidutils.generate_uuid()"},{"line_number":230,"context_line":"            self.assertRaises(db_exc.DBDuplicateEntry,"},{"line_number":231,"context_line":"                              nodes.insert().execute, data)"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"    def _check_487deb87cc9d(self, engine, data):"}],"source_content_type":"text/x-python","patch_set":5,"id":"6f16bf36_aad05772","line":230,"updated":"2021-09-03 14:47:31.000000000","message":"this part is still incorrect, should be:\n\n   self.assertRaises(db_exc.DBDuplicateEntry,\n                                connection.execute, nodes.insert(), data)","commit_id":"82e93e9e59d9ade03ae40dc9be8c08e18b3daa54"},{"author":{"_account_id":11816,"name":"mike bayer","display_name":"Mike Bayer","email":"mike_mp@zzzcomputing.com","username":"zzzeek","status":"Red Hat"},"change_message_id":"23812454312dd1822bd913ed6277b5e8671687c3","unresolved":true,"context_lines":[{"line_number":255,"context_line":"            data_node \u003d {\u0027uuid\u0027: uuidutils.generate_uuid(),"},{"line_number":256,"context_line":"                         \u0027conductor_affinity\u0027: conductor[\u0027id\u0027]}"},{"line_number":257,"context_line":"            insert_node \u003d nodes.insert().values(data_node)"},{"line_number":258,"context_line":"            connection.execute(insert_node)"},{"line_number":259,"context_line":"            node_stmt \u003d nodes.select(nodes.c.uuid \u003d\u003d data_node[\u0027uuid\u0027])"},{"line_number":260,"context_line":"            node \u003d connection.execute(node_stmt).first()"},{"line_number":261,"context_line":"            self.assertEqual(conductor[\u0027id\u0027], node[\u0027conductor_affinity\u0027])"}],"source_content_type":"text/x-python","patch_set":20,"id":"9914e862_495aa539","line":258,"updated":"2021-09-07 14:04:23.000000000","message":"just a note, the most direct translation of this from the previous code would be:\n\n   insert_node \u003d nodes.insert()\n   connection.execute(insert_node, data_node)\n\nhowever using .values() explicitly is fine in this case as well, it would have a different execution style if data_node were a list of dictionaries but that\u0027s not the case here.","commit_id":"b7b0dfb14e85c697da96aab93934003842382e8c"}]}
