~longsleep/snapcraft/snapcraft-debs-plugin

« back to all changes in this revision

Viewing changes to snapcraft/tests/test_yaml.py

  • Committer: Snappy Tarmac
  • Author(s): Sergio Schvezov
  • Date: 2015-08-28 13:01:40 UTC
  • mfrom: (134.5.13 icon-meta)
  • Revision ID: snappy_tarmac-20150828130140-6wh4ncn75id9ncyk
icon support for snapcraft.yaml by sergiusens approved by chipaca

Show diffs side-by-side

added added

removed removed

Lines of Context:
31
31
 
32
32
class TestYaml(TestCase):
33
33
 
 
34
    def setUp(self):
 
35
        super().setUp()
 
36
        dirs.setup_dirs()
 
37
 
 
38
        patcher = unittest.mock.patch('os.path.exists')
 
39
        mock_wrap_exe = patcher.start()
 
40
        mock_wrap_exe.return_value = True
 
41
        self.addCleanup(patcher.stop)
 
42
 
34
43
    def make_snapcraft_yaml(self, content):
35
44
        tempdirObj = tempfile.TemporaryDirectory()
36
45
        self.addCleanup(tempdirObj.cleanup)
40
49
 
41
50
    @unittest.mock.patch('snapcraft.yaml.Config.load_plugin')
42
51
    def test_config_loads_plugins(self, mock_loadPlugin):
43
 
        dirs.setup_dirs()
44
 
 
45
52
        self.make_snapcraft_yaml("""name: test
46
53
version: "1"
47
54
vendor: me <me@me.com>
48
55
summary: test
49
56
description: test
 
57
icon: my-icon.png
50
58
 
51
59
parts:
52
60
  ubuntu:
72
80
            fake_logger.output)
73
81
 
74
82
    def test_config_loop(self):
75
 
        dirs.setup_dirs()
76
 
 
77
83
        fake_logger = fixtures.FakeLogger(level=logging.ERROR)
78
84
        self.useFixture(fake_logger)
79
85
 
82
88
vendor: me <me@me.com>
83
89
summary: test
84
90
description: test
 
91
icon: my-icon.png
85
92
 
86
93
parts:
87
94
  p1:
99
106
 
100
107
    @unittest.mock.patch('snapcraft.yaml.Config.load_plugin')
101
108
    def test_invalid_yaml_missing_name(self, mock_loadPlugin):
102
 
        dirs.setup_dirs()
103
 
 
104
109
        fake_logger = fixtures.FakeLogger(level=logging.ERROR)
105
110
        self.useFixture(fake_logger)
106
111
 
109
114
vendor: me <me@me.com>
110
115
summary: test
111
116
description: nothing
 
117
icon: my-icon.png
112
118
 
113
119
parts:
114
120
  ubuntu:
124
130
 
125
131
    @unittest.mock.patch('snapcraft.yaml.Config.load_plugin')
126
132
    def test_invalid_yaml_invalid_name_as_number(self, mock_loadPlugin):
127
 
        dirs.setup_dirs()
128
 
 
129
133
        fake_logger = fixtures.FakeLogger(level=logging.ERROR)
130
134
        self.useFixture(fake_logger)
131
135
 
134
138
vendor: me <me@me.com>
135
139
summary: test
136
140
description: nothing
 
141
icon: my-icon.png
137
142
 
138
143
parts:
139
144
  ubuntu:
149
154
 
150
155
    @unittest.mock.patch('snapcraft.yaml.Config.load_plugin')
151
156
    def test_invalid_yaml_invalid_name_chars(self, mock_loadPlugin):
152
 
        dirs.setup_dirs()
153
 
 
154
157
        fake_logger = fixtures.FakeLogger(level=logging.ERROR)
155
158
        self.useFixture(fake_logger)
156
159
 
159
162
vendor: me <me@me.com>
160
163
summary: test
161
164
description: nothing
 
165
icon: my-icon.png
162
166
 
163
167
parts:
164
168
  ubuntu:
174
178
 
175
179
    @unittest.mock.patch('snapcraft.yaml.Config.load_plugin')
176
180
    def test_invalid_yaml_missing_description(self, mock_loadPlugin):
177
 
        dirs.setup_dirs()
178
 
 
179
181
        fake_logger = fixtures.FakeLogger(level=logging.ERROR)
180
182
        self.useFixture(fake_logger)
181
183
 
183
185
version: "1"
184
186
vendor: me <me@me.com>
185
187
summary: test
 
188
icon: my-icon.png
186
189
 
187
190
parts:
188
191
  ubuntu:
203
206
        super().setUp()
204
207
        dirs.setup_dirs()
205
208
 
 
209
        patcher = unittest.mock.patch('os.path.exists')
 
210
        self.mock_path_exists = patcher.start()
 
211
        self.mock_path_exists.return_value = True
 
212
        self.addCleanup(patcher.stop)
 
213
 
206
214
        self.data = {
207
215
            'name': 'my-package-1',
208
216
            'version': '1.0-snapcraft1~ppa1',
209
217
            'vendor': 'Me <me@me.com>',
210
218
            'summary': 'my summary less that 79 chars',
211
219
            'description': 'description which can be pretty long',
 
220
            'icon': 'my-icon.png',
212
221
            'parts': {
213
222
                'part1': {
214
223
                    'type': 'project',
324
333
        mock_the_open.assert_called_once_with(expected_path)
325
334
        expected_message = 'Schema is missing, could not validate snapcraft.yaml, check installation'
326
335
        self.assertEqual(raised.exception.message, expected_message)
 
336
 
 
337
    def test_icon_missing(self):
 
338
        self.mock_path_exists.return_value = False
 
339
 
 
340
        with self.assertRaises(jsonschema.ValidationError) as raised:
 
341
            snapcraft.yaml._validate_snapcraft_yaml(self.data)
 
342
 
 
343
        expected_message = '\'my-icon.png\' is not a \'icon-path\''
 
344
        self.assertEqual(raised.exception.message, expected_message, msg=self.data)