old_contents: # Copyright 2016 Red Hat, Inc.
  #
  # Licensed under the Apache License, Version 2.0 (the "License");
  # you may not use this file except in compliance with the License.
  # You may obtain a copy of the License at
  #
  #     http://www.apache.org/licenses/LICENSE-2.0
  #
  # Unless required by applicable law or agreed to in writing, software
  # distributed under the License is distributed on an "AS IS" BASIS,
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  # See the License for the specific language governing permissions and
  # limitations under the License.
  """
  Miscellaneous methods to support testing.
  """
  
  import os
  import string
  import subprocess
  import time
  import unittest
  
  from hypothesis import strategies
  
  _STRATISD = os.environ['STRATISD']
  
  
  def _device_list(minimum):
      """
      Get a device generating strategy.
  
      :param int minimum: the minimum number of devices, must be at least 0
      """
      return strategies.lists(
          strategies.text(alphabet=string.ascii_letters + "/", min_size=1),
          min_size=minimum)
  
  
  class Service():
      """
      Handle starting and stopping the Rust service.
      """
  
      def setUp(self):
          """
          Start the stratisd daemon with the simulator.
          """
          self._stratisd = subprocess.Popen([os.path.join(_STRATISD), '--sim'])
          time.sleep(1)
  
      def tearDown(self):
          """
          Stop the stratisd simulator and daemon.
          """
          # pylint: disable=no-member
          self._stratisd.terminate()
          self._stratisd.wait()
  
  
  class SimTestCase(unittest.TestCase):
      """
      A SimTestCase must always start and stop stratisd (simulator vesion).
      """
  
      def setUp(self):
          """
          Start the stratisd daemon with the simulator.
          """
          self._service = Service()
          self._service.setUp()
  
      def tearDown(self):
          """
          Stop the stratisd simulator and daemon.
          """
          self._service.tearDown()
  
new_contents: # Copyright 2016 Red Hat, Inc.
  #
  # Licensed under the Apache License, Version 2.0 (the "License");
  # you may not use this file except in compliance with the License.
  # You may obtain a copy of the License at
  #
  #     http://www.apache.org/licenses/LICENSE-2.0
  #
  # Unless required by applicable law or agreed to in writing, software
  # distributed under the License is distributed on an "AS IS" BASIS,
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  # See the License for the specific language governing permissions and
  # limitations under the License.
  """
  Miscellaneous methods to support testing.
  """
  
  import os
  import string
  import subprocess
  import time
  import unittest
  
  from hypothesis import strategies
  
  _STRATISD = os.environ['STRATISD']
  
  
  def _device_list(minimum):
      """
      Get a device generating strategy.
  
      :param int minimum: the minimum number of devices, must be at least 0
      """
      return strategies.lists(
          strategies.text(alphabet=string.ascii_letters + "/", min_size=1),
          min_size=minimum)
  
  
  class _Service():
      """
      Handle starting and stopping the Rust service.
      """
  
      def setUp(self):
          """
          Start the stratisd daemon with the simulator.
          """
          self._stratisd = subprocess.Popen([os.path.join(_STRATISD), '--sim'])
          time.sleep(1)
  
      def tearDown(self):
          """
          Stop the stratisd simulator and daemon.
          """
          # pylint: disable=no-member
          self._stratisd.terminate()
          self._stratisd.wait()
  
  
  class SimTestCase(unittest.TestCase):
      """
      A SimTestCase must always start and stop stratisd (simulator vesion).
      """
  
      def setUp(self):
          """
          Start the stratisd daemon with the simulator.
          """
          self._service = _Service()
          self._service.setUp()
  
      def tearDown(self):
          """
          Stop the stratisd simulator and daemon.
          """
          self._service.tearDown()
  
subject: Make Service private