blob: 9738a2f4a1048f7385b6f9f233f40f236b2e2625 [file] [log] [blame]
#!/usr/bin/python
# Copyright (c) 2011 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.
"""Unit tests for the cb_name_lib module."""
import mox
import sys
import unittest
from cb_constants import IMAGE_GSD_PREFIX, IMAGE_SERVER_PREFIX
import cb_name_lib
class TestGetNameComponents(unittest.TestCase):
"""Tests related to GetNameComponents."""
def setUp(self):
self.board = 'x86-alex'
self.version_string = '0.12.433.269/stable/mp'
def testUseDefaultNaming(self):
"""Verify correct string tuple returned using default naming scheme."""
expected = (IMAGE_SERVER_PREFIX + '/stable-channel/x86-alex/0.12.433.269',
'0.12.433.269', 'stable-channel', 'mp')
actual = cb_name_lib.GetNameComponents(self.board, self.version_string, 0)
self.assertEqual(expected, actual)
def testUseAltNamingOne(self):
"""Verify correct string tuple returned using alt_naming scheme 1."""
expected = (IMAGE_SERVER_PREFIX + '/stable-channel/x86-alex-rc/' +
'0.12.433.269', '0.12.433.269', 'stable-channel', 'mp')
actual = cb_name_lib.GetNameComponents(self.board, self.version_string, 1)
self.assertEqual(expected, actual)
def testUseAltNamingTwo(self):
"""Verify correct string tuple returned using alt_naming scheme 2."""
mod_prefix = '/'.join(IMAGE_SERVER_PREFIX.split('/')[:-1])
expected = (mod_prefix + '/stable-channel/x86-alex/0.12.433.269',
'0.12.433.269', 'stable-channel', 'mp')
actual = cb_name_lib.GetNameComponents(self.board, self.version_string, 2)
self.assertEqual(expected, actual)
def testUseAltNamingThree(self):
"""Verify correct string tuple returned using alt_naming scheme 3."""
expected = (IMAGE_GSD_PREFIX + '/stable-channel/x86-alex/0.12.433.269',
'0.12.433.269', 'stable-channel', 'mp')
actual = cb_name_lib.GetNameComponents(self.board, self.version_string, 3)
self.assertEqual(expected, actual)
class TestGetReleaseName(unittest.TestCase):
"""Tests related to GetReleaseName."""
def setUp(self):
self.board = 'x86-alex'
self.version_string = '0.12.433.269/stable/mp'
def testReleaseUseDefaultNaming(self):
"""Verify correct string tuple returned using default naming scheme."""
expected = (IMAGE_SERVER_PREFIX + '/stable-channel/x86-alex/0.12.433.269',
['chromeos', '0.12.433.269', 'x86-alex', 'ssd',
'stable-channel', 'mp', '.bin'])
actual = cb_name_lib.GetReleaseName(self.board,
self.version_string,
0)
self.assertEqual(expected, actual)
def testReleaseUseAlternativeNaming(self):
"""Verify correct string tuple returned using alternative naming scheme."""
expected = (IMAGE_SERVER_PREFIX + '/stable-channel/x86-alex-rc/' +
'0.12.433.269',
['chromeos', '0.12.433.269', 'x86-alex', 'ssd',
'stable-channel', 'mp', '.bin'])
actual = cb_name_lib.GetReleaseName(self.board,
self.version_string,
1)
self.assertEqual(expected, actual)
class TestGetFactoryName(unittest.TestCase):
"""Tests related to GetFactoryName."""
def setUp(self):
self.board = 'x86-alex'
self.version_string = '0.12.433.269/stable'
def testFactoryUseDefaultNaming(self):
"""Verify correct string tuple returned using default naming scheme."""
expected = (IMAGE_SERVER_PREFIX + '/stable-channel/x86-alex/0.12.433.269',
['chromeos-factory', '0.12.433.269', 'x86-alex', '.zip'])
actual = cb_name_lib.GetFactoryName(self.board, self.version_string, 0)
self.assertEqual(expected, actual)
def testFactoryUseAlternativeNamingOne(self):
"""Verify correct string tuple returned using alt_naming scheme 1."""
expected = (IMAGE_SERVER_PREFIX + '/stable-channel/x86-alex-rc/' +
'0.12.433.269',
['chromeos-factory', '0.12.433.269', 'x86-alex', '.zip'])
actual = cb_name_lib.GetFactoryName(self.board, self.version_string, 1)
self.assertEqual(expected, actual)
def testFactoryUseAlternativeNamingTwo(self):
"""Verify correct string tuple returned using alt_naming scheme 2."""
mod_prefix = '/'.join(IMAGE_SERVER_PREFIX.split('/')[:-1])
expected = (mod_prefix + '/stable-channel/x86-alex/0.12.433.269',
['chromeos-factory', '0.12.433.269', 'x86-alex', '.zip'])
actual = cb_name_lib.GetFactoryName(self.board, self.version_string, 2)
self.assertEqual(expected, actual)
def testFactoryUseAlternativeNamingThree(self):
"""Verify correct string tuple returned using alt_naming scheme 3."""
expected = (IMAGE_GSD_PREFIX + '/stable-channel/x86-alex/0.12.433.269',
['chromeos-factory', '0.12.433.269', 'x86-alex', '.zip'])
actual = cb_name_lib.GetFactoryName(self.board, self.version_string, 3)
self.assertEqual(expected, actual)
class TestGetRecoveryName(unittest.TestCase):
"""Tests related to GetRecoveryName."""
def setUp(self):
self.board = 'x86-alex'
self.version_string = '0.12.433.269/stable/mp'
def testRecoveryUseDefaultNaming(self):
"""Verify correct string tuple returned using default naming scheme."""
expected = (IMAGE_SERVER_PREFIX + '/stable-channel/x86-alex/0.12.433.269',
['chromeos', '0.12.433.269', 'x86-alex', 'recovery',
'stable-channel', 'mp', '.bin'])
actual = cb_name_lib.GetRecoveryName(self.board,
self.version_string,
0)
self.assertEqual(expected, actual)
def testRecoveryUseAlternativeNaming(self):
"""Verify correct string tuple returned using alternative naming scheme."""
expected = (IMAGE_SERVER_PREFIX + '/stable-channel/x86-alex-rc/' +
'0.12.433.269',
['chromeos', '0.12.433.269', 'x86-alex', 'recovery',
'stable-channel', 'mp', '.bin'])
actual = cb_name_lib.GetRecoveryName(self.board,
self.version_string,
1)
self.assertEqual(expected, actual)
class TestResolveRecoveryUrl(mox.MoxTestBase):
"""Unit tests related to ResolveRecoveryUrl."""
def setUp(self):
self.mox = mox.Mox()
self.image_name = '/abs/path/to/image_name'
self.board = 'board-name'
self.recovery = 'rec_no/rec_channel/rec_key'
self.index_page = 'index_page'
self.rec_pat = 'recovery_image_name_pattern'
self.rec_url = 'recovery_image_url'
self.mox.StubOutWithMock(cb_name_lib, 'GetRecoveryName')
self.mox.StubOutWithMock(cb_name_lib, 'DetermineUrl')
def testDefaultNamingSucceeds(self):
"""Verify return value when default naming resolution works."""
cb_name_lib.GetRecoveryName(self.board, self.recovery, 0).AndReturn(
(self.index_page, self.rec_pat))
cb_name_lib.DetermineUrl(self.index_page, self.rec_pat).AndReturn(
self.rec_url)
self.mox.ReplayAll()
expected = (self.rec_url, self.index_page)
actual = cb_name_lib.ResolveRecoveryUrl(self.board, self.recovery)
self.assertEqual(expected, actual)
def testAlternativeNamingSucceeds(self):
"""Verify return value when alternative naming resolution works."""
cb_name_lib.GetRecoveryName(self.board,
self.recovery,
1).AndReturn((self.index_page, self.rec_pat))
cb_name_lib.DetermineUrl(self.index_page,
self.rec_pat).AndReturn(self.rec_url)
self.mox.ReplayAll()
expected = (self.rec_url, self.index_page)
actual = cb_name_lib.ResolveRecoveryUrl(self.board, self.recovery,
alt_naming=1)
self.assertEqual(expected, actual)
if __name__ == '__main__':
unittest.main()