~canonical-ci-engineering/ubuntu-test-cases/boottest

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# Ubuntu Test Cases for Touch
# Copyright 2015 Canonical Ltd.

# This program is free software: you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 3, as published
# by the Free Software Foundation.

# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranties of
# MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
# PURPOSE.  See the GNU General Public License for more details.

# You should have received a copy of the GNU General Public License along
# with this program.  If not, see <http://www.gnu.org/licenses/>.

from mock import patch
import unittest

from boottest import (
    get_binary_package_from_source,
    get_all_package_list,
)


class TestBoottest(unittest.TestCase):
    pass


class TestDeterminePackageList(unittest.TestCase):
    @patch('boottest._adb_shell')
    def test_get_single_binary_from_source(self, adb):
        adb.return_value = 'Binary: foo'
        actual = get_binary_package_from_source('foo_source')
        self.assertEqual(['foo'], actual)

    @patch('boottest._adb_shell')
    def test_get_many_binaries_from_source(self, adb):
        adb.return_value = 'Binary: foo, bar, baz'
        actual = get_binary_package_from_source('foo_source')
        self.assertEqual(['foo', 'bar', 'baz'], actual)

    @patch('boottest._adb_shell')
    def test_get_no_binaries_from_source(self, adb):
        adb.return_value = ''
        actual = get_binary_package_from_source('foo_source')
        self.assertEqual([], actual)


class TestGetAllPackageList(unittest.TestCase):
    @patch('boottest._adb_shell')
    def test_get_all_packages(self, adb):
        adb.return_value = '\n'.join([
            'package1\t1.2.3',
            'package2:armhf 2.3.4',
            'package3       3.4.5',
        ])
        actual = get_all_package_list()
        self.assertEqual(['package1', 'package2', 'package3'], actual)

    @patch('boottest._adb_shell')
    def test_get_all_packages_no_packages(self, adb):
        adb.return_value = ''
        actual = get_all_package_list()
        self.assertEqual([], actual)

if __name__ == '__main__':
    unittest.main()