old_contents: # -*- coding: utf-8 -*-
  # vim: tabstop=4 shiftwidth=4 softtabstop=4
  
  # Copyright (c) 2010-2011, GEM Foundation.
  #
  # OpenQuake is free software: you can redistribute it and/or modify
  # it under the terms of the GNU Lesser General Public License version 3
  # only, as published by the Free Software Foundation.
  #
  # OpenQuake is distributed in the hope that it will be useful,
  # but WITHOUT ANY WARRANTY; without even the implied warranty of
  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  # GNU Lesser General Public License version 3 for more details
  # (a copy is included in the LICENSE file that accompanied this code).
  #
  # You should have received a copy of the GNU Lesser General Public License
  # version 3 along with OpenQuake.  If not, see
  # <http://www.gnu.org/licenses/lgpl-3.0.txt> for a copy of the LGPLv3 License.
  
  
  """
  Test related to code in openquake/utils/general.py
  """
  
  
new_contents: # -*- coding: utf-8 -*-
  # vim: tabstop=4 shiftwidth=4 softtabstop=4
  
  # Copyright (c) 2010-2011, GEM Foundation.
  #
  # OpenQuake is free software: you can redistribute it and/or modify
  # it under the terms of the GNU Lesser General Public License version 3
  # only, as published by the Free Software Foundation.
  #
  # OpenQuake is distributed in the hope that it will be useful,
  # but WITHOUT ANY WARRANTY; without even the implied warranty of
  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  # GNU Lesser General Public License version 3 for more details
  # (a copy is included in the LICENSE file that accompanied this code).
  #
  # You should have received a copy of the GNU Lesser General Public License
  # version 3 along with OpenQuake.  If not, see
  # <http://www.gnu.org/licenses/lgpl-3.0.txt> for a copy of the LGPLv3 License.
  
  
  """
  Test related to code in openquake/utils/general.py
  """
  
  
  import unittest
  
  from openquake.utils import general
  
  
  class SingletonTestCase(unittest.TestCase):
      """Tests the behaviour of utils.general.singleton()."""
  
      def test_singleton(self):
          """
          A class decorated with @singleton will always return the same
          instance upon creation.
          """
  
          @general.singleton
          class MySingleton(object):
              pass
  
          instance1 = MySingleton()
          instance2 = MySingleton()
          self.assertTrue(instance2 is instance1)
          instance3 = MySingleton()
          self.assertTrue(instance3 is instance1)
  
subject: add unit tests for the @singleton decorator