class_docstr: Base class for integration tests.
class_docstr_tok: ["Base","class","for","integration","tests","."]
code: def setUp(self):
      super(IntegTestBase, self).setUp()
      prefix = "TabPy_IntegTest_"
      self.tmp_dir = tempfile.mkdtemp(prefix=prefix)
  
      # create temporary state.ini
      orig_state_file_name = os.path.abspath(
          self._get_state_file_path() + "/state.ini"
      )
      self.state_file_name = os.path.abspath(
          self.tmp_dir + "/state.ini"
      )
      if orig_state_file_name != self.state_file_name:
          shutil.copyfile(orig_state_file_name, self.state_file_name)
  
      # create config file
      orig_config_file_name = os.path.abspath(
          self._get_config_file_name()
      )
      self.config_file_name = os.path.abspath(
          self.tmp_dir + "/" + os.path.basename(orig_config_file_name)
      )
      if orig_config_file_name != self.config_file_name:
          shutil.copyfile(orig_config_file_name, self.config_file_name)
  
      # Platform specific - for integration tests we want to engage
      # startup script
      with open(self.tmp_dir + "/output.txt", "w") as outfile:
          cmd = [
              "tabpy",
              "--config=" + self.config_file_name,
              "--disable-auth-warning",
          ]
          preexec_fn = None
          if platform.system() == "Windows":
              self.py = "python"
          else:
              self.py = "python3"
              preexec_fn = os.setsid
  
          coverage.process_startup()
          self.process = subprocess.Popen(
              cmd, preexec_fn=preexec_fn, stdout=outfile, stderr=outfile
          )
  
          # give the app some time to start up...
          time.sleep(5)
  
imports: import coverage
  import http.client
  import os
  import platform
  import shutil
  import signal
  import subprocess
  import tabpy
  import tempfile
  import time
  import unittest
label_desc: Use image node_id 11 for calling the IntegTestBase obj's underlying member method code with example usage: obj.setUp() without return types