def testArgsForGCDEmulator(self): gcd_root_mock = self.StartObjectPatch(datastore_util, 'GetGCDRoot') gcd_root_mock.return_value = 'pathtogcdroot' emulator_executable = 'cloud_datastore_emulator' gcd_executable = os.path.join(gcd_root_mock.return_value, emulator_executable) if platforms.OperatingSystem.IsWindows(): gcd_executable += '.cmd' args_tool = execution_utils.ArgsForCMDTool else: args_tool = execution_utils.ArgsForExecutableTool self.assertEqual(args_tool(gcd_executable, 'args'), datastore_util.ArgsForGCDEmulator(['args']))
def _DoTestPrepareGCDDataDir(self): gcd_root_mock = self.StartObjectPatch(datastore_util, 'GetGCDRoot') gcd_root_mock.return_value = 'pathtogcdroot' exec_mock = self.StartObjectPatch(util, 'Exec') process = mock.Mock() process.poll.return_value = 0 exec_mock.return_value.__enter__.return_value = process prefix_mock = self.StartObjectPatch(util, 'PrefixOutput') data_dir = self.CreateTempDir() args = type(str('args_mock'), (object,), dict(data_dir=data_dir)) # Nothing should be done if data-dir is non-empty tmp_file = self.Touch(directory=data_dir) datastore_util.PrepareGCDDataDir(args) self.assertFalse(exec_mock.called) # gcd create should be called if data-dr is empty exec_mock.reset_mock() prefix_mock.reset_mock() os.remove(tmp_file) datastore_util.PrepareGCDDataDir(args) create_args = ['create', '--project_id={0}'.format(self.Project()), data_dir,] exec_args = datastore_util.ArgsForGCDEmulator(create_args) exec_mock.assert_called_once_with(exec_args) prefix_mock.assert_called_once_with(process, 'datastore') # gcd create should be called if data-dir does not exist exec_mock.reset_mock() prefix_mock.reset_mock() os.rmdir(data_dir) datastore_util.PrepareGCDDataDir(args) exec_mock.assert_called_once_with(exec_args) prefix_mock.assert_called_once_with(process, 'datastore') # Should throw exception if PrepareGCDDataDir fails process.poll.return_value = 1 with self.assertRaises(datastore_util.UnableToPrepareDataDir): datastore_util.PrepareGCDDataDir(args)
def _DoTestStartGCDEmulator(self): gcd_root_mock = self.StartObjectPatch(datastore_util, 'GetGCDRoot') gcd_root_mock.return_value = 'pathtogcdroot' exec_mock = self.StartObjectPatch(util, 'Exec') args = type(str('args_mock'), (object,), dict(host_port=arg_parsers.HostPort('localhost', '8080'), store_on_disk=True, data_dir='temp_dir', consistency=0.7)) datastore_util.StartGCDEmulator(args) start_args = ['start', '--host=localhost', '--port=8080', '--store_on_disk=True', '--consistency=0.7', '--allow_remote_shutdown', 'temp_dir',] exec_args = datastore_util.ArgsForGCDEmulator(start_args) exec_mock.assert_called_once_with(exec_args, log_file=None)