def test_with_plugins(self): self.monkeypatch.delenv("ERT_SITE_CONFIG", raising=False) # We are comparing two function calls, both of which generate a tmpdir, this makes # sure that the same tmpdir is called on both occasions. self.monkeypatch.setattr(tempfile, "mkdtemp", Mock(return_value=tempfile.mkdtemp())) with ErtPluginContext(plugins=[dummy_plugins]) as c: with self.assertRaises(KeyError): os.environ["ECL100_SITE_CONFIG"] with self.assertRaises(KeyError): os.environ["ECL300_SITE_CONFIG"] with self.assertRaises(KeyError): os.environ["FLOW_SITE_CONFIG"] with self.assertRaises(KeyError): os.environ["RMS_SITE_CONFIG"] self.assertTrue(os.path.isfile(os.environ["ERT_SITE_CONFIG"])) with open(os.environ["ERT_SITE_CONFIG"]) as f: self.assertEqual(f.read(), c.plugin_manager.get_site_config_content()) path = os.environ["ERT_SITE_CONFIG"] with self.assertRaises(KeyError): os.environ["ERT_SITE_CONFIG"] self.assertFalse(os.path.isfile(path))
def test_already_set(self): for var in env_vars: self.monkeypatch.setenv(var, "TEST") with ErtPluginContext(plugins=[dummy_plugins]) as c: for var in env_vars: self.assertEqual("TEST", os.environ[var]) for var in env_vars: self.assertEqual("TEST", os.environ[var])
def test_already_set(self): for var in env_vars: os.environ[var] = "TEST" with ErtPluginContext(plugins=[dummy_plugins]) as c: for var in env_vars: self.assertEqual("TEST", os.environ[var]) for var in env_vars: self.assertEqual("TEST", os.environ[var]) for var in env_vars: del os.environ[var]
def test_with_plugins(self): with ErtPluginContext(plugins=[dummy_plugins]) as c: self.assertEqual("/dummy/path/ecl100_config.yml", os.environ["ECL100_SITE_CONFIG"]) self.assertEqual("/dummy/path/ecl300_config.yml", os.environ["ECL300_SITE_CONFIG"]) self.assertEqual("/dummy/path/flow_config.yml", os.environ["FLOW_SITE_CONFIG"]) self.assertEqual("/dummy/path/rms_config.yml", os.environ["RMS_SITE_CONFIG"]) self.assertTrue(os.path.isfile(os.environ["ERT_SITE_CONFIG"])) with open(os.environ["ERT_SITE_CONFIG"]) as f: self.assertEqual(f.read(), c.plugin_manager.get_site_config_content()) path = os.environ["ERT_SITE_CONFIG"] with self.assertRaises(KeyError): os.environ["ERT_SITE_CONFIG"] self.assertFalse(os.path.isfile(path))
def test_no_plugins(self): with ErtPluginContext(plugins=[]) as c: with self.assertRaises(KeyError): os.environ["ECL100_SITE_CONFIG"] with self.assertRaises(KeyError): os.environ["ECL300_SITE_CONFIG"] with self.assertRaises(KeyError): os.environ["FLOW_SITE_CONFIG"] with self.assertRaises(KeyError): os.environ["RMS_SITE_CONFIG"] self.assertTrue(os.path.isfile(os.environ["ERT_SITE_CONFIG"])) with open(os.environ["ERT_SITE_CONFIG"]) as f: self.assertEqual(f.read(), c.plugin_manager.get_site_config_content()) path = os.environ["ERT_SITE_CONFIG"] with self.assertRaises(KeyError): os.environ["ERT_SITE_CONFIG"] self.assertFalse(os.path.isfile(path))
def test_plugin_context_python_2(self): with ErtPluginContext(plugins=[]): for var in env_vars: with self.assertRaises(KeyError): os.environ[var]
functionality. """ if sys.platform != "linux" or "ERT_COMM_FD" not in os.environ: return from ctypes import CDLL, c_int, c_ulong import signal lib = CDLL(None) # from <sys/prctl.h> # int prctl(int option, ...) prctl = lib.prctl prctl.restype = c_int prctl.argtypes = (c_int, c_ulong) # from <linux/prctl.h> PR_SET_PDEATHSIG = 1 # connect parent death signal to our SIGTERM prctl(PR_SET_PDEATHSIG, signal.SIGTERM) if __name__ == "__main__": # pylint: disable=W0611 import ert_logging terminate_on_parent_death() with ErtPluginContext() as context: run_server(debug=False)