[autotest] Make rpc_interface_unittest to use django test
The rpc_interface_unittest avoided importing rpc_utils as they need
Django to be set up, otherwise the import would fail. To do that
it contained a lot of code for mocks.
This simplifies this by using the Django unittests.
TEST=Ran suites.
DEPLOY=afe,apache
Change-Id: I63d4b9f2f098b7e10ff5520dcae217da7147cc62
Reviewed-on: https://chromium-review.googlesource.com/212508
Reviewed-by: Alex Miller <milleral@chromium.org>
Tested-by: Jakob Jülich <jakobjuelich@chromium.org>
Commit-Queue: Jakob Jülich <jakobjuelich@chromium.org>
diff --git a/frontend/afe/site_rpc_interface.py b/frontend/afe/site_rpc_interface.py
index cb6a4f7..fa6cb15 100644
--- a/frontend/afe/site_rpc_interface.py
+++ b/frontend/afe/site_rpc_interface.py
@@ -17,6 +17,7 @@
from autotest_lib.client.common_lib import global_config
from autotest_lib.client.common_lib import priorities
from autotest_lib.client.common_lib.cros import dev_server
+from autotest_lib.frontend.afe import rpc_utils
from autotest_lib.server import utils
from autotest_lib.server.cros.dynamic_suite import constants
from autotest_lib.server.cros.dynamic_suite import control_file_getter
@@ -32,19 +33,6 @@
# Relevant CrosDynamicSuiteExceptions are defined in client/common_lib/error.py.
-def _rpc_utils():
- """Returns the rpc_utils module. MUST be mocked for unit tests.
-
- rpc_utils initializes django, which we can't do in unit tests.
- This layer of indirection allows us to only load that module if we're
- not running unit tests.
-
- @return: autotest_lib.frontend.afe.rpc_utils
- """
- from autotest_lib.frontend.afe import rpc_utils
- return rpc_utils
-
-
def canonicalize_suite_name(suite_name):
return 'test_suites/control.%s' % suite_name
@@ -192,7 +180,7 @@
control_file = tools.inject_vars(inject_dict, control_file)
- return _rpc_utils().create_job_common(name,
+ return rpc_utils.create_job_common(name,
priority=priority,
timeout_mins=timeout_mins,
max_runtime_mins=timeout*60,
@@ -224,7 +212,7 @@
config_values = {}
for section in sections:
config_values[section] = _CONFIG.config.items(section)
- return _rpc_utils().prepare_for_serialization(config_values)
+ return rpc_utils.prepare_for_serialization(config_values)
@moblab_only
diff --git a/frontend/afe/site_rpc_interface_unittest.py b/frontend/afe/site_rpc_interface_unittest.py
index 73f56ef..999bad7 100644
--- a/frontend/afe/site_rpc_interface_unittest.py
+++ b/frontend/afe/site_rpc_interface_unittest.py
@@ -15,6 +15,8 @@
import common
+from autotest_lib.frontend import setup_django_environment
+from autotest_lib.frontend.afe import rpc_utils
from autotest_lib.client.common_lib import error
from autotest_lib.client.common_lib import global_config
from autotest_lib.client.common_lib import priorities
@@ -40,17 +42,6 @@
_TIMEOUT = 24
- class rpc_utils(object):
- """Mockable class to fake autotest rpc_utils module."""
- def create_job_common(self, name, **kwargs):
- """Mock method rpc_utils.create_job_common().
-
- @param name: Name of job.
- @param kwargs: Other arguments.
- """
- pass
-
-
def setUp(self):
super(SiteRpcInterfaceTest, self).setUp()
self._SUITE_NAME = site_rpc_interface.canonicalize_suite_name(
@@ -86,8 +77,8 @@
"""
download_started_time = constants.DOWNLOAD_STARTED_TIME
payload_finished_time = constants.PAYLOAD_FINISHED_TIME
- r = self.mox.CreateMock(SiteRpcInterfaceTest.rpc_utils)
- r.create_job_common(mox.And(mox.StrContains(self._NAME),
+ self.mox.StubOutWithMock(rpc_utils, 'create_job_common')
+ rpc_utils.create_job_common(mox.And(mox.StrContains(self._NAME),
mox.StrContains(self._BUILD)),
priority=self._PRIORITY,
timeout_mins=self._TIMEOUT*60,
@@ -101,8 +92,6 @@
keyvals=mox.And(mox.In(download_started_time),
mox.In(payload_finished_time))
).AndReturn(to_return)
- self.mox.StubOutWithMock(site_rpc_interface, '_rpc_utils')
- site_rpc_interface._rpc_utils().AndReturn(r)
def testStageBuildFail(self):
@@ -301,14 +290,11 @@
config_mock.config.items('section2').AndReturn([('item3', 'value3'),
('item4', 'value4')])
- r = self.mox.CreateMock(SiteRpcInterfaceTest.rpc_utils)
- r = mox.MockAnything()
- r.prepare_for_serialization({'section1' : [('item1', 'value1'),
- ('item2', 'value2')],
- 'section2' : [('item3', 'value3'),
- ('item4', 'value4')]})
- self.mox.StubOutWithMock(site_rpc_interface, '_rpc_utils')
- site_rpc_interface._rpc_utils().AndReturn(r)
+ rpc_utils.prepare_for_serialization(
+ {'section1' : [('item1', 'value1'),
+ ('item2', 'value2')],
+ 'section2' : [('item3', 'value3'),
+ ('item4', 'value4')]})
self.mox.ReplayAll()
site_rpc_interface.get_config_values()