blob: 47da4ae6970536d3060fef357f0db4406c7bf007 [file] [log] [blame]
# -*- coding: utf-8 -*-
# Copyright 2015 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""This module tests helpers in devserver_wrapper."""
from __future__ import print_function
import mock
import os
from chromite.lib import constants
from chromite.lib import cros_test_lib
from chromite.lib import dev_server_wrapper
# pylint: disable=protected-access
class TestXbuddyHelpers(cros_test_lib.MockTempDirTestCase):
"""Test xbuddy helper functions."""
def testGenerateXbuddyRequestForUpdate(self):
"""Test we generate correct xbuddy requests."""
# Use the latest build when 'latest' is given.
req = 'xbuddy/latest?for_update=true&return_dir=true'
self.assertEqual(
dev_server_wrapper.GenerateXbuddyRequest('latest', 'update'), req)
# Convert the path starting with 'xbuddy://' to 'xbuddy/'
path = 'xbuddy://remote/stumpy/version'
req = 'xbuddy/remote/stumpy/version?for_update=true&return_dir=true'
self.assertEqual(
dev_server_wrapper.GenerateXbuddyRequest(path, 'update'), req)
def testGenerateXbuddyRequestForImage(self):
"""Tests that we generate correct requests to get images."""
image_path = 'foo/bar/taco'
self.assertEqual(dev_server_wrapper.GenerateXbuddyRequest(image_path,
'image'),
'xbuddy/foo/bar/taco?return_dir=true')
image_path = 'xbuddy://foo/bar/taco'
self.assertEqual(dev_server_wrapper.GenerateXbuddyRequest(image_path,
'image'),
'xbuddy/foo/bar/taco?return_dir=true')
def testGenerateXbuddyRequestForTranslate(self):
"""Tests that we generate correct requests for translation."""
image_path = 'foo/bar/taco'
self.assertEqual(dev_server_wrapper.GenerateXbuddyRequest(image_path,
'translate'),
'xbuddy_translate/foo/bar/taco')
image_path = 'xbuddy://foo/bar/taco'
self.assertEqual(dev_server_wrapper.GenerateXbuddyRequest(image_path,
'translate'),
'xbuddy_translate/foo/bar/taco')
def testConvertTranslatedPath(self):
"""Tests that we convert a translated path to a usable xbuddy path."""
path = 'remote/latest-canary'
translated_path = 'taco-release/R36-5761.0.0/chromiumos_test_image.bin'
self.assertEqual(dev_server_wrapper.ConvertTranslatedPath(path,
translated_path),
'remote/taco-release/R36-5761.0.0/test')
path = 'latest'
translated_path = 'taco/R36-5600.0.0/chromiumos_image.bin'
self.assertEqual(dev_server_wrapper.ConvertTranslatedPath(path,
translated_path),
'local/taco/R36-5600.0.0/dev')
@mock.patch('chromite.lib.cros_build_lib.IsInsideChroot', return_value=True)
def testTranslatedPathToLocalPath(self, _mock1):
"""Tests that we convert a translated path to a local path correctly."""
translated_path = 'peppy-release/R33-5116.87.0/chromiumos_image.bin'
base_path = os.path.join(self.tempdir, 'peppy-release/R33-5116.87.0')
local_path = os.path.join(base_path, 'chromiumos_image.bin')
self.assertEqual(
dev_server_wrapper.TranslatedPathToLocalPath(translated_path,
self.tempdir),
local_path)
@mock.patch('chromite.lib.cros_build_lib.IsInsideChroot', return_value=False)
def testTranslatedPathToLocalPathOutsideChroot(self, _mock1):
"""Tests that we convert a translated path when outside the chroot."""
translated_path = 'peppy-release/R33-5116.87.0/chromiumos_image.bin'
chroot_dir = os.path.join(constants.SOURCE_ROOT,
constants.DEFAULT_CHROOT_DIR)
static_dir = os.path.join('devserver', 'static')
chroot_static_dir = os.path.join('/', static_dir)
local_path = os.path.join(chroot_dir, static_dir, translated_path)
self.assertEqual(
dev_server_wrapper.TranslatedPathToLocalPath(
translated_path, chroot_static_dir),
local_path)