blob: 0aab62f7038af6957e4e73cd1054167c6c05a0c7 [file] [log] [blame]
#!/usr/bin/env python2
# Copyright 2017 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 test for build_component"""
from __future__ import print_function
import unittest
from build_component import ParseVersion
from build_component import GetCurrentVersion
from build_component import DecideVersion
from build_component import IsPackage
from build_component import GetCurrentPackageVersion
class TestBuildComponent(unittest.TestCase):
"""Tests for build_component"""
def test_ParseVersion(self):
self.assertEqual(ParseVersion('1.2.3.4.5'), [1, 2, 3, 4])
self.assertEqual(ParseVersion('1.2.3.4'), [1, 2, 3, 4])
self.assertEqual(ParseVersion('1.2.3'), [1, 2, 3])
self.assertEqual(ParseVersion('1.2'), [])
self.assertEqual(ParseVersion('1.2.3.a'), [1, 2, 3])
def test_GetCurrentVersion(self):
paths = ['gs://1.0.0.1/',
'gs://1.0.1/',
'gs://1.1.0/']
self.assertEqual(GetCurrentVersion(paths), ('1.1.0', 'gs://1.1.0/'))
paths = ['gs://1.0.0.1/',
'gs://1.0.1/',
'gs://1.1.0']
self.assertEqual(GetCurrentVersion(paths), ('1.0.1', 'gs://1.0.1/'))
paths = ['gs://1.0.0.1/',
'gs://1.0.1/',
'gs://1.1/', # invalid version
'gs://invalidpath/']
self.assertEqual(GetCurrentVersion(paths), ('1.0.1', 'gs://1.0.1/'))
paths = []
self.assertEqual(GetCurrentVersion(paths), ('0.0.0.0', ''))
paths = ['/invalid/path/',
'gs://1.1.0']
self.assertEqual(GetCurrentVersion(paths), ('0.0.0.0', ''))
def test_DecideVersion(self):
self.assertEqual(DecideVersion('1.0.0.3', '1.0.0.1'), '1.0.0.2')
self.assertEqual(DecideVersion('1.0.0.3', '1.0.0.4'), '1.0.0.5')
self.assertEqual(DecideVersion('1.0.0.r-1', '1.0.0'), '1.0.0.1')
self.assertEqual(DecideVersion('1.0.0.r-1', '1.0.0.1'), '1.0.0.2')
self.assertEqual(DecideVersion('1.1.0.r-1', '1.0.0'), '1.1.0.1')
def test_IsPackage(self):
self.assertEqual(IsPackage('abc-1.2.3-r0', 'abc'), True)
self.assertEqual(IsPackage('abc-def-1.2.3-r0', 'abc-def'), True)
self.assertEqual(IsPackage('abc-1.2.3-r0', 'abc-def'), False)
self.assertEqual(IsPackage('abc-def-1.2.3-r0', 'abc'), False)
self.assertEqual(IsPackage('abc-def-1.2.3', 'abc-def'), True)
def test_GetCurrentPackageVersion(self):
self.assertEqual(GetCurrentPackageVersion('', '[platform]'), '0.0.0.0')
if __name__ == '__main__':
unittest.main()