Code view:

A painting is a person's account of this edit as text, recorded independently of the node mapping - a rendering often has several equally defensible answers where the mapping has one. Deletions and insertions carry no position on the opposite side in a painting, so that panel draws no caret for them.

Before

…lines 1–21 unchanged (21 lines)
22 )
23
24 def test_insert_returning_non_integer(self):
25 obj = NonIntegerPKReturningModel.objects.create()
26 self.assertTrue(obj.created)
27 self.assertIsInstance(obj.created, datetime.datetime)
28
29 def test_insert_returning_multiple(self):
30 with CaptureQueriesContext(connection) as captured_queries:
31 obj = ReturningModel.objects.create()
32 table_name = connection.ops.quote_name(ReturningModel._meta.db_table)
33 self.assertIn(
34 "RETURNING %s.%s, %s.%s"
…lines 35–66 unchanged (32 lines)

After

…lines 1–22 unchanged (22 lines)
23
24 def test_insert_returning_non_integer(self):
25 obj = NonIntegerPKReturningModel.objects.create()
26 self.assertTrue(obj.created)
27 self.assertIsInstance(obj.created, datetime.datetime)
28
29 def test_insert_returning_non_integer_from_literal_value(self):
30 obj = NonIntegerPKReturningModel.objects.create(pk="2025-01-01")
31 self.assertTrue(obj.created)
32 self.assertIsInstance(obj.created, datetime.datetime)
33
34 def test_insert_returning_multiple(self):
35 with CaptureQueriesContext(connection) as captured_queries:
36 obj = ReturningModel.objects.create()
37 table_name = connection.ops.quote_name(ReturningModel._meta.db_table)
38 self.assertIn(
…lines 39–71 unchanged (33 lines)

Before

module
import_statement
import "import"
dotted_name
identifier "datetime"
import_from_statement
from "from"
dotted_name
identifier "django"
. "."
identifier "db"
import "import"
dotted_name
identifier "connection"
import_from_statement
from "from"
dotted_name
identifier "django"
. "."
identifier "test"
import "import"
dotted_name
identifier "TestCase"
, ","
dotted_name
identifier "skipUnlessDBFeature"
import_from_statement
from "from"
dotted_name
identifier "django"
. "."
identifier "test"
. "."
identifier "utils"
import "import"
dotted_name
identifier "CaptureQueriesContext"
import_from_statement
from "from"
relative_import
import_prefix
. "."
dotted_name
identifier "models"
import "import"
dotted_name
identifier "DumbCategory"
, ","
dotted_name
identifier "NonIntegerPKReturningModel"
, ","
dotted_name
identifier "ReturningModel"
decorated_definition
decorator
@ "@"
call
identifier "skipUnlessDBFeature"
argument_list
( "("
string
string_start "\""
string_content "can_return_columns_from_insert"
string_end "\""
) ")"
class_definition
class "class"
identifier "ReturningValuesTests"
argument_list
( "("
identifier "TestCase"
) ")"
: ":"
block
function_definition (+120 nodes collapsed)
function_definition (+55 nodes collapsed)
function_definition (+269 nodes collapsed)
decorated_definition (+121 nodes collapsed)

After

module
import_statement
import "import"
dotted_name
identifier "datetime"
import_from_statement
from "from"
dotted_name
identifier "django"
. "."
identifier "db"
import "import"
dotted_name
identifier "connection"
import_from_statement
from "from"
dotted_name
identifier "django"
. "."
identifier "test"
import "import"
dotted_name
identifier "TestCase"
, ","
dotted_name
identifier "skipUnlessDBFeature"
import_from_statement
from "from"
dotted_name
identifier "django"
. "."
identifier "test"
. "."
identifier "utils"
import "import"
dotted_name
identifier "CaptureQueriesContext"
import_from_statement
from "from"
relative_import
import_prefix
. "."
dotted_name
identifier "models"
import "import"
dotted_name
identifier "DumbCategory"
, ","
dotted_name
identifier "NonIntegerPKReturningModel"
, ","
dotted_name
identifier "ReturningModel"
decorated_definition
decorator
@ "@"
call
identifier "skipUnlessDBFeature"
argument_list
( "("
string
string_start "\""
string_content "can_return_columns_from_insert"
string_end "\""
) ")"
class_definition
class "class"
identifier "ReturningValuesTests"
argument_list
( "("
identifier "TestCase"
) ")"
: ":"
block
function_definition (+120 nodes collapsed)
function_definition (+55 nodes collapsed)
function_definition
def "def"
identifier "test_insert_returning_non_integer_from_literal_value"
parameters
( "("
identifier "self"
) ")"
: ":"
block
expression_statement
assignment
identifier "obj"
= "="
call
attribute
attribute
identifier "NonIntegerPKReturningModel"
. "."
identifier "objects"
. "."
identifier "create"
argument_list
( "("
keyword_argument
identifier "pk"
= "="
string
string_start "\""
string_content "2025-01-01"
string_end "\""
) ")"
expression_statement
call
attribute
identifier "self"
. "."
identifier "assertTrue"
argument_list
( "("
attribute
identifier "obj"
. "."
identifier "created"
) ")"
expression_statement
call
attribute
identifier "self"
. "."
identifier "assertIsInstance"
argument_list
( "("
attribute
identifier "obj"
. "."
identifier "created"
, ","
attribute
identifier "datetime"
. "."
identifier "datetime"
) ")"
function_definition (+269 nodes collapsed)
decorated_definition (+121 nodes collapsed)