code: def test_rename_symbols_attributes(self):
      node = parser.parse("b.c = b.c.d")
      node = qual_names.resolve(node)
  
      node = ast_util.rename_symbols(
          node,
          {qual_names.from_str("b.c"): qual_names.QN("renamed_b_c")},
      )
  
      source = parser.unparse(node, include_encoding_marker=False)
      self.assertEqual(source.strip(), "renamed_b_c = renamed_b_c.d")
  
imports: import ast
  import collections
  import textwrap
  import gast
  from tensorflow.python.autograph.pyct import anno
  from tensorflow.python.autograph.pyct import ast_util
  from tensorflow.python.autograph.pyct import loader
  from tensorflow.python.autograph.pyct import parser
  from tensorflow.python.autograph.pyct import pretty_printer
  from tensorflow.python.autograph.pyct import qual_names
  from tensorflow.python.platform import test
label_desc: Use image node_id 4 for calling the AstUtilTest obj's underlying member method code with example usage: obj.test_rename_symbols_attributes() without return types