Skip to content

Commit

Permalink
adding test case TestJobTypeGetEnvironment
Browse files Browse the repository at this point in the history
  • Loading branch information
opalmer committed Nov 1, 2015
1 parent 3e3ec41 commit 80c6845
Showing 1 changed file with 60 additions and 1 deletion.
61 changes: 60 additions & 1 deletion tests/test_jobtypes/test_core_jobtype.py
Expand Up @@ -26,7 +26,8 @@
from pyfarm.agent.testutil import TestCase, skipIf
from pyfarm.agent.sysinfo.user import is_administrator
from pyfarm.jobtypes.core.internals import USER_GROUP_TYPES
from pyfarm.jobtypes.core.jobtype import JobType, CommandData
from pyfarm.jobtypes.core.jobtype import (
FROZEN_ENVIRONMENT, JobType, CommandData)

IS_ADMIN = is_administrator()

Expand Down Expand Up @@ -211,3 +212,61 @@ class TestJobTypeLoad(TestCase):
def test_schema(self):
with self.assertRaises(MultipleInvalid):
JobType.load({})


class TestJobTypeGetEnvironment(TestCase):
POP_CONFIG_KEYS = [
"jobtype_default_environment",
"jobtype_include_os_environ"
]

def assertEnvironmentContains(self, target, contains):
for key, value in target.iteritems():
self.assertIn(key, contains)
self.assertEqual(target[key], contains[key])

def assertDoesNotEnvironmentContains(self, target, contains):
for key, value in target.iteritems():
self.assertNotIn(key, contains)

def test_includes_os_environ(self):
config["jobtype_include_os_environ"] = True
jobtype = JobType(fake_assignment())
self.assertEnvironmentContains(
FROZEN_ENVIRONMENT, jobtype.get_environment())

def test_does_not_include_os_environ(self):
config["jobtype_include_os_environ"] = False
jobtype = JobType(fake_assignment())
self.assertDoesNotEnvironmentContains(
FROZEN_ENVIRONMENT, jobtype.get_environment())

def test_include_config_environment(self):
config_env = config["jobtype_default_environment"] = {
"foo": "1", "bar": "2"
}
jobtype = JobType(fake_assignment())
self.assertEnvironmentContains(jobtype.get_environment(), config_env)

def test_bad_config_raises_type_error(self):
config["jobtype_default_environment"] = [""]
jobtype = JobType(fake_assignment())

with self.assertRaises(TypeError):
jobtype.get_environment()

def test_converts_non_string_key_to_string(self):
jobtype = JobType(fake_assignment())
config["jobtype_default_environment"] = {
1: "yes"
}
for key in jobtype.get_environment().keys():
self.assertIsInstance(key, str)

def test_converts_non_string_value_to_string(self):
jobtype = JobType(fake_assignment())
config["jobtype_default_environment"] = {
"yes": 1
}
for value in jobtype.get_environment().values():
self.assertIsInstance(value, str)

0 comments on commit 80c6845

Please sign in to comment.