def test_run_external_clean_env(self): """Unit test for clean_env parameter to run_external()""" def run(args, clean_env): (rc, stdout, stderr) = run_external(args, clean_env=clean_env) self.assertEqual(rc, 0) return stdout.rstrip('\n') # clean_env should set language to C run(['sh', '-c', '[ "x$LANG" = "xC" ]'], clean_env=True) run(['sh', '-c', '[ "x$LC_ALL" = "xC" ]'], clean_env=True) # clean_env parameter should not alter the PATH, and the PATH # should not be empty path_clean = run(['bash', '-c', 'echo $PATH'], clean_env=True) self.assertEqual(common.get_env('PATH'), path_clean) self.assertGreater(len(path_clean), 10) path_unclean = run(['bash', '-c', 'echo $PATH'], clean_env=False) self.assertEqual(path_clean, path_unclean) # With parent environment set to English and parameter clean_env=False, # expect English import copy old_environ = copy.deepcopy(os.environ) lc_all_old = common.get_env('LC_ALL') lang_old = common.get_env('LANG') common.put_env('LC_ALL', 'C') (rc, stdout, stderr) = run_external( ['ls', '/doesnotexist'], clean_env=False) self.assertEqual(rc, 2) self.assertIn('No such file', stderr) # Set parent environment to Spanish. common.put_env('LC_ALL', 'es_MX.UTF-8') (rc, stdout, stderr) = run_external( ['ls', '/doesnotexist'], clean_env=False) self.assertEqual(rc, 2) if os.path.exists('/usr/share/locale-langpack/es/LC_MESSAGES/coreutils.mo'): # Spanish language pack is installed. self.assertIn('No existe el archivo', stderr) # Here the parent environment has Spanish, but the child process # should use English. (rc, stdout, stderr) = run_external( ['ls', '/doesnotexist'], clean_env=True) self.assertEqual(rc, 2) self.assertIn('No such file', stderr) # Reset environment self.assertNotEqual(old_environ, copy.deepcopy(os.environ)) common.put_env('LC_ALL', lc_all_old) common.put_env('LANG', lang_old) self.assertEqual(old_environ, copy.deepcopy(os.environ))
def setUpClass(cls): bleachbit.online_update_notification_enabled = False cls.old_language = common.get_env('LANGUAGE') common.put_env('LANGUAGE', 'en') super(ExternalCommandTestCase, ExternalCommandTestCase).setUpClass() options.set('first_start', False) options.set('check_online_updates', False) # avoid pop-up window
def test_invalid_locale(self): """Unit test for invalid locales""" old_lang = common.get_env('LANG') common.put_env('LANG', 'blahfoo') # tests are run from the parent directory args = [sys.executable, '-m', 'bleachbit.CLI', '--version'] output = run_external(args) self.assertNotEqual(output[1].find('Copyright'), -1, str(output)) common.put_env('LANG', old_lang)
def setUpClass(cls): cls.old_language = common.get_env('LANGUAGE') common.put_env('LANGUAGE', 'en') super(GUITestCase, GUITestCase).setUpClass() options.set('first_start', False) options.set('check_online_updates', False) # avoid pop-up window options.get_tree = types.MethodType(lambda self, parent, child: False, options) cls.app.register() cls.app.activate() cls.refresh_gui()