From 5d514598bfad18704374b95e371434d309980d37 Mon Sep 17 00:00:00 2001 From: Christian Herdtweck Date: Mon, 29 Oct 2018 09:41:47 +0100 Subject: [PATCH] Create unit tests for cd context manager --- test/test_sysmisc.py | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 57 insertions(+), 0 deletions(-) create mode 100644 test/test_sysmisc.py diff --git a/test/test_sysmisc.py b/test/test_sysmisc.py new file mode 100644 index 0000000..acdd110 --- /dev/null +++ b/test/test_sysmisc.py @@ -0,0 +1,57 @@ +# The software in this package is distributed under the GNU General +# Public License version 2 (with a special exception described below). +# +# A copy of GNU General Public License (GPL) is included in this distribution, +# in the file COPYING.GPL. +# +# As a special exception, if other files instantiate templates or use macros +# or inline functions from this file, or you compile this file and link it +# with other works to produce a work based on this file, this file +# does not by itself cause the resulting work to be covered +# by the GNU General Public License. +# +# However the source code for this file must still be made available +# in accordance with section (3) of the GNU General Public License. +# +# This exception does not invalidate any other reasons why a work based +# on this file might be covered by the GNU General Public License. +# +# Copyright (c) 2016-2018 Intra2net AG + +""" +test_sysmisc.py: unit tests for sysmisc + +Tests classes and functions in sysmisc + +For help see :py:mod:`unittest` +""" + +import unittest +from os import getcwd + +# relative import of tested module ensures we do not test installed version +from src import sysmisc + + +class SysmiscTester(unittest.TestCase): + """only test case in this module, see module doc for more help""" + + def test_cd(self): + orig_dir = getcwd() + with sysmisc.cd('/tmp'): + self.assertEqual(getcwd(), '/tmp') + self.assertEqual(getcwd(), orig_dir) + + def test_cd_error(self): + try: + orig_dir = getcwd() + with sysmisc.cd('/tmp'): + self.assertEqual(getcwd(), '/tmp') + raise RuntimeError('test') + self.assertEqual(getcwd(), orig_dir) + except RuntimeError as re: + self.assertTrue('test' in str(re)) + + +if __name__ == '__main__': + unittest.main() -- 1.7.1