'The backend\'s FOR UPDATE OF variant appears in the generated SQL when
select_for_update() is invoked.'

@skipUnlessDBFeature('has_select_for_update_of')
def test_for_update_sql_generated_of(self):

    with transaction.atomic():
        with CaptureQueriesContext(connection) as ctx:
            list(Person.objects.select_related('born__country').select_for_update(of=('born__country',)).select_for_update(of=('self', 'born__country')))
    features = connections['default'].features
    if features.select_for_update_of_column:
        expected = ['"select_for_update_person"."id"', '"select_for_update_country"."id"']
    else:
        expected = ['"select_for_update_person"', '"select_for_update_country"']
    if features.uppercases_column_names:
        expected = [value.upper() for value in expected]
    self.assertTrue(self.has_for_update_sql(ctx.captured_queries, of=expected))
