~jocave/checkbox/hybrid-amd-gpu-mods

« back to all changes in this revision

Viewing changes to checkbox-ng/checkbox_ng/test_launcher.py

  • Committer: Tarmac
  • Author(s): Brendan Donegan
  • Date: 2013-06-03 11:12:58 UTC
  • mfrom: (2154.2.1 bug1185759)
  • Revision ID: tarmac-20130603111258-1b3m5ydvkf1accts
"[r=zkrynicki][bug=1185759][author=brendan-donegan] automatic merge by tarmac"

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# This file is part of Checkbox.
2
 
#
3
 
# Copyright 2016 Canonical Ltd.
4
 
# Written by:
5
 
#   Maciej Kisielewski <maciej.kisielewski@canonical.com>
6
 
#
7
 
# Checkbox is free software: you can redistribute it and/or modify
8
 
# it under the terms of the GNU General Public License version 3,
9
 
# as published by the Free Software Foundation.
10
 
#
11
 
# Checkbox is distributed in the hope that it will be useful,
12
 
# but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 
# GNU General Public License for more details.
15
 
#
16
 
# You should have received a copy of the GNU General Public License
17
 
# along with Checkbox.  If not, see <http://www.gnu.org/licenses/>.
18
 
 
19
 
"""
20
 
checkbox_ng.test_launcher
21
 
=========================
22
 
 
23
 
Test definitions for checkbox_ng.launcher module
24
 
"""
25
 
 
26
 
from unittest import TestCase
27
 
from textwrap import dedent
28
 
 
29
 
from plainbox.impl.secure.config import Unset
30
 
 
31
 
from launcher import LauncherDefinition
32
 
from launcher import LauncherDefinitionLegacy
33
 
from launcher import LauncherDefinition1
34
 
 
35
 
 
36
 
class LauncherDefinitionTests(TestCase):
37
 
    launcher_version_legacy = dedent("""
38
 
    [launcher]
39
 
    """)
40
 
    launcher_version_1 = dedent("""
41
 
    [launcher]
42
 
    launcher_version = 1
43
 
    """)
44
 
    launcher_version_future = dedent("""
45
 
    [launcher]
46
 
    launcher_version = 2
47
 
    """)
48
 
 
49
 
    def test_get_concrete_launcher_legacy(self):
50
 
        l = LauncherDefinition()
51
 
        l.read_string(self.launcher_version_legacy)
52
 
        cls = l.get_concrete_launcher().__class__
53
 
        self.assertIs(cls, LauncherDefinitionLegacy)
54
 
 
55
 
    def test_get_concrete_launcher_launcher1(self):
56
 
        l = LauncherDefinition()
57
 
        l.read_string(self.launcher_version_1)
58
 
        cls = l.get_concrete_launcher().__class__
59
 
        self.assertIs(cls, LauncherDefinition1)
60
 
 
61
 
    def test_get_concrete_launcher_future_raises(self):
62
 
        l = LauncherDefinition()
63
 
        l.read_string(self.launcher_version_future)
64
 
        with self.assertRaises(KeyError):
65
 
            l.get_concrete_launcher()
66
 
 
67
 
 
68
 
class LauncherDefinitionLegacyTests(TestCase):
69
 
    def test_defaults(self):
70
 
        empty_launcher = ''
71
 
        l = LauncherDefinitionLegacy()
72
 
        l.read_string(empty_launcher)
73
 
        self.assertEqual(l.title, Unset)
74
 
        self.assertEqual(l.api_flags, [])
75
 
        self.assertEqual(l.api_version, '0.99')
76
 
        self.assertEqual(l.text, Unset)
77
 
        self.assertEqual(l.whitelist_filter, Unset)
78
 
        self.assertEqual(l.whitelist_selection, Unset)
79
 
        self.assertEqual(l.skip_whitelist_selection, False)
80
 
        self.assertEqual(l.skip_test_selection, False)
81
 
        self.assertEqual(l.input_type, Unset)
82
 
        self.assertEqual(l.ok_btn_text, Unset)
83
 
        self.assertEqual(l.submit_to_hexr, Unset)
84
 
        self.assertEqual(l.submit_to, Unset)
85
 
        self.assertEqual(l.submit_url, Unset)
86
 
        self.assertEqual(l.secure_id, Unset)
87
 
        self.assertEqual(l.exporter, Unset)
88
 
 
89
 
 
90
 
class LauncherDefinition1Tests(TestCase):
91
 
 
92
 
    def test_defaults(self):
93
 
        empty_launcher = dedent("""
94
 
        [launcher]
95
 
        launcher_version = 1
96
 
        """)
97
 
        l = LauncherDefinition1()
98
 
        l.read_string(empty_launcher)
99
 
        self.assertEqual(l.api_version, '0.99')
100
 
        self.assertEqual(l.app_id, 'checkbox-cli')
101
 
        self.assertEqual(l.api_flags, [])
102
 
        self.assertEqual(l.providers, ['*'])
103
 
        self.assertEqual(l.test_plan_filters, ['*'])
104
 
        self.assertEqual(l.test_plan_default_selection, Unset)
105
 
        self.assertEqual(l.test_plan_forced, False)
106
 
        self.assertEqual(l.test_selection_forced, False)
107
 
        self.assertEqual(l.ui_type, 'interactive')
108
 
        self.assertEqual(l.restart_strategy, Unset)
109
 
 
110
 
    def test_smoke(self):
111
 
        definition = dedent("""
112
 
        [launcher]
113
 
        launcher_version = 1
114
 
        api_version = 0.99
115
 
        api_flags = restartable
116
 
        app_id = FOOBAR
117
 
        [providers]
118
 
        use = foo* bar*, baz
119
 
        [test plan]
120
 
        unit = 2000.the.chosen.one
121
 
        filter = 2000*, 3000* tp_foo*
122
 
        forced = yes
123
 
        [test selection]
124
 
        forced = yes
125
 
        [ui]
126
 
        type = silent
127
 
        [restart]
128
 
        strategy = magic
129
 
        [report:foo_report]
130
 
        exporter = bar_exporter
131
 
        transport = file
132
 
        [exporter:bar_exporter]
133
 
        unit = bar_exporter_unit
134
 
        [transport:file]
135
 
        path = /tmp/path
136
 
        """)
137
 
        l = LauncherDefinition1()
138
 
        l.read_string(definition)
139
 
        self.assertEqual(l.api_version, '0.99')
140
 
        self.assertEqual(l.app_id, 'FOOBAR')
141
 
        self.assertEqual(l.api_flags, ['restartable'])
142
 
        self.assertEqual(l.providers, ['foo*', 'bar*', 'baz'])
143
 
        self.assertEqual(l.test_plan_filters, ['2000*', '3000*', 'tp_foo*'])
144
 
        self.assertEqual(l.test_plan_default_selection, '2000.the.chosen.one')
145
 
        self.assertEqual(l.test_plan_forced, True)
146
 
        self.assertEqual(l.test_selection_forced, True)
147
 
        self.assertEqual(l.ui_type, 'silent')
148
 
        self.assertEqual(l.restart_strategy, 'magic')
149
 
        self.assertEqual(l.reports, {
150
 
            'foo_report': {'exporter': 'bar_exporter', 'transport': 'file'}})
151
 
        self.assertEqual(l.exporters, {
152
 
            'bar_exporter': {'unit': 'bar_exporter_unit'}})
153
 
        self.assertEqual(l.transports, {
154
 
            'file': {'path': '/tmp/path'}})