blob: d168c05352cb8df4b192a418410c0db7948d1241 [file] [log] [blame]
#!/usr/bin/python
import unittest
import common
from autotest_lib.frontend import setup_django_environment
from autotest_lib.frontend.planner import planner_test_utils
from autotest_lib.frontend.afe import model_logic, models as afe_models
from autotest_lib.frontend.afe import rpc_interface as afe_rpc_interface
from autotest_lib.frontend.planner import models, rpc_utils
from autotest_lib.client.common_lib import utils
class RpcUtilsTest(unittest.TestCase,
planner_test_utils.PlannerTestMixin):
def setUp(self):
self._planner_common_setup()
def tearDown(self):
self._planner_common_teardown()
def test_create_plan_label(self):
label, group = self._create_label_helper()
label.delete()
group.invalid = True
group.save()
label, group = self._create_label_helper()
self.assertRaises(model_logic.ValidationError,
rpc_utils.create_plan_label, self._plan)
def _create_label_helper(self):
label = rpc_utils.create_plan_label(self._plan)
group = afe_models.AtomicGroup.objects.get(
name=rpc_utils.PLANNER_ATOMIC_GROUP_NAME)
self.assertFalse(group.invalid)
self.assertEqual(label.atomic_group, group)
return (label, group)
def test_lazy_load(self):
self.god.stub_function(utils, 'read_file')
DUMMY_PATH_1 = object()
DUMMY_PATH_2 = object()
DUMMY_FILE_1 = object()
DUMMY_FILE_2 = object()
utils.read_file.expect_call(DUMMY_PATH_1).and_return(DUMMY_FILE_1)
self.assertEqual(DUMMY_FILE_1, rpc_utils.lazy_load(DUMMY_PATH_1))
self.god.check_playback()
# read_file should not be called again for this path
self.assertEqual(DUMMY_FILE_1, rpc_utils.lazy_load(DUMMY_PATH_1))
self.god.check_playback()
# new file; read_file must be called again
utils.read_file.expect_call(DUMMY_PATH_2).and_return(DUMMY_FILE_2)
self.assertEqual(DUMMY_FILE_2, rpc_utils.lazy_load(DUMMY_PATH_2))
self.god.check_playback()
if __name__ == '__main__':
unittest.main()