code: def test_double_dot_no_clobber(self):
      # http://bugs.python.org/issue22966
      # py_compile foo.bar.py -> __pycache__/foo.cpython-34.pyc
      weird_path = os.path.join(self.directory, "foo.bar.py")
      cache_path = importlib.util.cache_from_source(weird_path)
      pyc_path = weird_path + "c"
      head, tail = os.path.split(cache_path)
      penultimate_tail = os.path.basename(head)
      self.assertEqual(
          os.path.join(penultimate_tail, tail),
          os.path.join(
              "__pycache__",
              "foo.bar.{}.pyc".format(sys.implementation.cache_tag),
          ),
      )
      with open(weird_path, "w") as file:
          file.write("x = 123\n")
      py_compile.compile(weird_path)
      self.assertTrue(os.path.exists(cache_path))
      self.assertFalse(os.path.exists(pyc_path))
  
imports: import functools
  import importlib.util
  import os
  import py_compile
  import shutil
  import stat
  import subprocess
  import sys
  import tempfile
  import unittest
  from test import support
  from test.support import os_helper, script_helper
label_desc: Use image node_id 12 for calling the PyCompileTestsBase obj's underlying member method code with example usage: obj.test_double_dot_no_clobber() without return types