old_contents: """
  Javascript test tasks
  """
  import sys
  from paver.easy import task, cmdopts, needs
  from pavelib.utils.test.suites import JsTestSuite
  from pavelib.utils.envs import Env
  
  __test__ = False  # do not collect
  
  
  @task
  @needs(
      'pavelib.prereqs.install_node_prereqs',
      'pavelib.utils.test.utils.clean_reports_dir',
  )
  @cmdopts([
      ("suite=", "s", "Test suite to run"),
      ("mode=", "m", "dev or run"),
      ("coverage", "c", "Run test under coverage"),
      ("port=", "p", "Port to run test server on (dev mode only)"),
  ])
  def test_js(options):
      """
      Run the JavaScript tests
      """
      mode = getattr(options, 'mode', 'run')
      port = None
  
      if mode == 'run':
          suite = getattr(options, 'suite', 'all')
          coverage = getattr(options, 'coverage', False)
      elif mode == 'dev':
          suite = getattr(options, 'suite', None)
          coverage = False
          port = getattr(options, 'port')
      else:
          sys.stderr.write("Invalid mode. Please choose 'dev' or 'run'.")
          return
  
      if (suite != 'all') and (suite not in Env.JS_TEST_ID_KEYS):
          sys.stderr.write(
              "Unknown test suite. Please choose from ({suites})\n".format(
                  suites=", ".join(Env.JS_TEST_ID_KEYS)
              )
          )
          return
  
      test_suite = JsTestSuite(suite, mode=mode, with_coverage=coverage, port=port)
      test_suite.run()
  
  
  @task
  @cmdopts([
      ("suite=", "s", "Test suite to run"),
      ("coverage", "c", "Run test under coverage"),
  ])
  def test_js_run(options):
      """
      Run the JavaScript tests and print results to the console
      """
      setattr(options, 'mode', 'run')
      test_js(options)
  
  
  @task
  @cmdopts([
      ("suite=", "s", "Test suite to run"),
      ("port=", "p", "Port to run test server on"),
  ])
  def test_js_dev(options):
      """
      Run the JavaScript tests in your default browsers
      """
      setattr(options, 'mode', 'dev')
      test_js(options)
  
new_contents: """
  Javascript test tasks
  """
  import sys
  from paver.easy import task, cmdopts, needs
  from pavelib.utils.test.suites import JsTestSuite
  from pavelib.utils.envs import Env
  
  __test__ = False  # do not collect
  
  
  @task
  @needs(
      'pavelib.prereqs.install_node_prereqs',
      'pavelib.utils.test.utils.clean_reports_dir',
  )
  @cmdopts([
      ("suite=", "s", "Test suite to run"),
      ("mode=", "m", "dev or run"),
      ("coverage", "c", "Run test under coverage"),
      ("port=", "p", "Port to run test server on (dev mode only)"),
  ])
  def test_js(options):
      """
      Run the JavaScript tests
      """
      mode = getattr(options, 'mode', 'run')
      port = None
  
      if mode == 'run':
          suite = getattr(options, 'suite', 'all')
          coverage = getattr(options, 'coverage', False)
      elif mode == 'dev':
          suite = getattr(options, 'suite', None)
          coverage = False
          port = getattr(options, 'port', None)
      else:
          sys.stderr.write("Invalid mode. Please choose 'dev' or 'run'.")
          return
  
      if (suite != 'all') and (suite not in Env.JS_TEST_ID_KEYS):
          sys.stderr.write(
              "Unknown test suite. Please choose from ({suites})\n".format(
                  suites=", ".join(Env.JS_TEST_ID_KEYS)
              )
          )
          return
  
      test_suite = JsTestSuite(suite, mode=mode, with_coverage=coverage, port=port)
      test_suite.run()
  
  
  @task
  @cmdopts([
      ("suite=", "s", "Test suite to run"),
      ("coverage", "c", "Run test under coverage"),
  ])
  def test_js_run(options):
      """
      Run the JavaScript tests and print results to the console
      """
      setattr(options, 'mode', 'run')
      test_js(options)
  
  
  @task
  @cmdopts([
      ("suite=", "s", "Test suite to run"),
      ("port=", "p", "Port to run test server on"),
  ])
  def test_js_dev(options):
      """
      Run the JavaScript tests in your default browsers
      """
      setattr(options, 'mode', 'dev')
      test_js(options)
  
subject: Fix paver test_js task to work without -p flag