old_contents: import sys
  
  has_pytest = False
  #there is the difference between 1.3.4 and 2.0.2 versions
  #Since version 1.4, the testing tool "py.test" is part of its own pytest distribution.
  try:
    import pytest
    has_pytest = True
  except:
    try:
      import py
    except:
      raise NameError("No py.test runner found in selected interpreter")
  
  def get_plugin_manager():
    try:
      from _pytest.config import get_plugin_manager
      return get_plugin_manager()
    except ImportError:
      from _pytest.core import PluginManager
      return PluginManager(load=True)
  
  # "-s" is always required: no test output provided otherwise
  args = sys.argv[1:]
  args.append("-s") if "-s" not in args else None
  
  if has_pytest:
    _preinit = []
    def main():
      _pluginmanager = get_plugin_manager()
      hook = _pluginmanager.hook
      try:
        config = hook.pytest_cmdline_parse(
                pluginmanager=_pluginmanager, args=args)
        exitstatus = hook.pytest_cmdline_main(config=config)
      except pytest.UsageError:
        e = sys.exc_info()[1]
        sys.stderr.write("ERROR: %s\n" %(e.args[0],))
        exitstatus = 3
      return exitstatus
  
  else:
    def main():
      config = py.test.config
      try:
        config.parse(args)
        config.pluginmanager.do_configure(config)
        session = config.initsession()
        colitems = config.getinitialnodes()
        exitstatus = session.main(colitems)
        config.pluginmanager.do_unconfigure(config)
      except config.Error:
        e = sys.exc_info()[1]
        sys.stderr.write("ERROR: %s\n" %(e.args[0],))
        exitstatus = 3
      py.test.config = py.test.config.__class__()
      return exitstatus
  
  if __name__ == "__main__":
    main()
new_contents: import sys
  
  has_pytest = False
  #there is the difference between 1.3.4 and 2.0.2 versions
  #Since version 1.4, the testing tool "py.test" is part of its own pytest distribution.
  try:
    import pytest
    has_pytest = True
  except:
    try:
      import py
    except:
      raise NameError("No py.test runner found in selected interpreter")
  
  def get_plugin_manager():
    try:
      from _pytest.config import get_plugin_manager
      return get_plugin_manager()
    except ImportError:
      from _pytest.core import PluginManager
      return PluginManager(load=True)
  
  # "-s" is always required: no test output provided otherwise (see PY-12621)
  args = sys.argv[1:]
  args.append("-s") if "-s" not in args else None
  
  if has_pytest:
    _preinit = []
    def main():
      _pluginmanager = get_plugin_manager()
      hook = _pluginmanager.hook
      try:
        config = hook.pytest_cmdline_parse(
                pluginmanager=_pluginmanager, args=args)
        exitstatus = hook.pytest_cmdline_main(config=config)
      except pytest.UsageError:
        e = sys.exc_info()[1]
        sys.stderr.write("ERROR: %s\n" %(e.args[0],))
        exitstatus = 3
      return exitstatus
  
  else:
    def main():
      config = py.test.config
      try:
        config.parse(args)
        config.pluginmanager.do_configure(config)
        session = config.initsession()
        colitems = config.getinitialnodes()
        exitstatus = session.main(colitems)
        config.pluginmanager.do_unconfigure(config)
      except config.Error:
        e = sys.exc_info()[1]
        sys.stderr.write("ERROR: %s\n" %(e.args[0],))
        exitstatus = 3
      py.test.config = py.test.config.__class__()
      return exitstatus
  
  if __name__ == "__main__":
    main()
subject: Comment added to prevent questions like PY-19441