def test_environ_parsing_with_various_separators(self):
     job = BaseJob({
         'name': 'name',
         'plugin': 'plugin',
         'environ': self.parameters_keymap[
             self.parameters.glue].join(['foo', 'bar', 'froz'])})
     expected = set({'foo', 'bar', 'froz'})
     observed = job.get_environ_settings()
     self.assertEqual(expected, observed)
class JobEnvTests(TestCase):

    def setUp(self):
        self.job = BaseJob({'plugin': 'plugin', 'environ': 'foo'})

    def test_checkbox_env(self):
        base_env = {"PATH": "", 'foo': 'bar', 'baz': 'qux'}
        path = '/usr/share/checkbox-lambda'
        with patch.dict('os.environ', {}):
            env = self.job.modify_execution_environment(base_env, [path])
            self.assertEqual(env['CHECKBOX_LAMBDA_SHARE'], path)
            self.assertEqual(env['foo'], 'bar')
            self.assertNotIn('bar', env)

    def test_checkbox_env_with_data_dir(self):
        base_env = {"PATH": "", "CHECKBOX_DATA": "DEADBEEF"}
        path = '/usr/share/checkbox-lambda'
        with patch.dict('os.environ', {"CHECKBOX_DATA": "DEADBEEF"}):
            env = self.job.modify_execution_environment(base_env, [path])
            self.assertEqual(env['CHECKBOX_LAMBDA_SHARE'], path)
            self.assertEqual(env['CHECKBOX_DATA'], "DEADBEEF")
 def test_checksum_smoke(self):
     job1 = BaseJob({'plugin': 'plugin', 'user': '******'})
     identical_to_job1 = BaseJob({'plugin': 'plugin', 'user': '******'})
     # Two distinct but identical jobs have the same checksum
     self.assertEqual(job1.get_checksum(), identical_to_job1.get_checksum())
     job2 = BaseJob({'plugin': 'plugin', 'user': '******'})
     # Two jobs with different definitions have different checksum
     self.assertNotEqual(job1.get_checksum(), job2.get_checksum())
     # The checksum is stable and does not change over time
     self.assertEqual(
         job1.get_checksum(),
         "c47cc3719061e4df0010d061e6f20d3d046071fd467d02d093a03068d2f33400")
 def test_smoke_min_record(self):
     job = BaseJob(self._min_record)
     self.assertEqual(job.plugin, "plugin")
     self.assertEqual(job.command, None)
     self.assertEqual(job.environ, None)
     self.assertEqual(job.user, None)
 def test_smoke_full_record(self):
     job = BaseJob(self._full_record)
     self.assertEqual(job.plugin, "plugin")
     self.assertEqual(job.command, "command")
     self.assertEqual(job.environ, "environ")
     self.assertEqual(job.user, "user")
 def setUp(self):
     self.job = BaseJob({'plugin': 'plugin', 'environ': 'foo'})
 def test_environ_parsing_empty(self):
     job = BaseJob({'plugin': 'plugin'})
     expected = set()
     observed = job.get_environ_settings()
     self.assertEqual(expected, observed)