Merge lp:~elopio/snapcraft/fix-pep8-and-doc-indentation into lp:~snappy-dev/snapcraft/core

Proposed by Leo Arias
Status: Merged
Approved by: Leo Arias
Approved revision: 240
Merged at revision: 232
Proposed branch: lp:~elopio/snapcraft/fix-pep8-and-doc-indentation
Merge into: lp:~snappy-dev/snapcraft/core
Diff against target: 1630 lines (+401/-193)
33 files modified
docs/snapcraft-advanced-features.md (+2/-2)
examples/py2-project/sha3sum.py (+0/-1)
examples/py3-project/sha3sum.py (+0/-1)
examples/webcam-webui/config.py (+6/-3)
integration-tests/data/pypi-config/config.py (+7/-3)
runtests.sh (+1/-1)
setup.py (+4/-2)
snapcraft/__init__.py (+24/-9)
snapcraft/cmds.py (+35/-15)
snapcraft/common.py (+7/-3)
snapcraft/main.py (+34/-16)
snapcraft/meta.py (+16/-8)
snapcraft/plugin.py (+29/-13)
snapcraft/plugins/ant.py (+2/-1)
snapcraft/plugins/autotools.py (+2/-2)
snapcraft/plugins/cmake.py (+2/-2)
snapcraft/plugins/copy.py (+2/-1)
snapcraft/plugins/go.py (+2/-1)
snapcraft/plugins/maven.py (+2/-1)
snapcraft/plugins/python2.py (+4/-2)
snapcraft/plugins/python3.py (+2/-1)
snapcraft/plugins/qml.py (+10/-5)
snapcraft/repo.py (+8/-4)
snapcraft/sources.py (+37/-17)
snapcraft/tests/test_base_plugin.py (+2/-1)
snapcraft/tests/test_cmds.py (+2/-1)
snapcraft/tests/test_copy_plugin.py (+2/-1)
snapcraft/tests/test_meta.py (+26/-13)
snapcraft/tests/test_plugin.py (+4/-2)
snapcraft/tests/test_repo.py (+4/-2)
snapcraft/tests/test_sources.py (+45/-22)
snapcraft/tests/test_yaml.py (+60/-28)
snapcraft/yaml.py (+18/-9)
To merge this branch: bzr merge lp:~elopio/snapcraft/fix-pep8-and-doc-indentation
Reviewer Review Type Date Requested Status
Leo Arias (community) Approve
Daniel Holbach Pending
Sergio Schvezov Pending
John Lenton Pending
Review via email: mp+273446@code.launchpad.net

This proposal supersedes a proposal from 2015-10-02.

Commit message

Fix markdown indentation, make pep8 and pyflakes3 happy.

To post a comment you must log in.
Revision history for this message
Sergio Schvezov (sergiusens) wrote : Posted in a previous version of this proposal

If we are going to do this, maybe also remove the pep8 exception

review: Needs Fixing
Revision history for this message
Daniel Holbach (dholbach) wrote : Posted in a previous version of this proposal

Done.

Revision history for this message
John Lenton (chipaca) wrote : Posted in a previous version of this proposal

LGTM :)

review: Approve
Revision history for this message
Snappy Tarmac (snappydevtarmac) wrote : Posted in a previous version of this proposal

Attempt to merge into lp:snapcraft failed due to conflicts:

text conflict in snapcraft/cmds.py

Revision history for this message
Snappy Tarmac (snappydevtarmac) wrote : Posted in a previous version of this proposal

The attempt to merge lp:~dholbach/snapcraft/fix-pep8-and-doc-indentation into lp:snapcraft failed. Below is the output from the failed tests.

snapcraft/meta.py:115:49: E126 continuation line over-indented for hanging indent
snapcraft/meta.py:116:49: E126 continuation line over-indented for hanging indent
snapcraft/meta.py:118:49: E126 continuation line over-indented for hanging indent
snapcraft/meta.py:119:49: E126 continuation line over-indented for hanging indent
snapcraft/meta.py:149:37: E126 continuation line over-indented for hanging indent
snapcraft/meta.py:150:37: E126 continuation line over-indented for hanging indent
snapcraft/meta.py:156:37: E126 continuation line over-indented for hanging indent
snapcraft/meta.py:157:37: E126 continuation line over-indented for hanging indent
snapcraft/meta.py:172:17: E126 continuation line over-indented for hanging indent
snapcraft/plugin.py:187:17: E126 continuation line over-indented for hanging indent
snapcraft/repo.py:31:80: E501 line too long (91 > 79 characters)
snapcraft/sources.py:68:21: E126 continuation line over-indented for hanging indent
snapcraft/yaml.py:157:25: E126 continuation line over-indented for hanging indent
snapcraft/tests/test_repo.py:34:80: E501 line too long (97 > 79 characters)
snapcraft/tests/test_repo.py:51:80: E501 line too long (99 > 79 characters)
snapcraft/tests/test_repo.py:34:80: E501 line too long (97 > 79 characters)
snapcraft/tests/test_repo.py:51:80: E501 line too long (99 > 79 characters)

Revision history for this message
Daniel Holbach (dholbach) wrote : Posted in a previous version of this proposal

Could this be tarmac is using an old pep8?

review: Needs Information
Revision history for this message
Daniel Holbach (dholbach) wrote : Posted in a previous version of this proposal

<dholbach> elopio, do you know which version of pep8 is running on the tarmac instance? (https://code.launchpad.net/~dholbach/snapcraft/fix-pep8-and-doc-indentation/+merge/273195)
<elopio> dholbach: let me check.
<elopio> dholbach: 1.4.6-1.1build1
<dholbach> ah, ok, so that's trusty's pep8...
<elopio> dholbach: yes, tarmac is trusty.

Revision history for this message
Snappy Tarmac (snappydevtarmac) wrote : Posted in a previous version of this proposal

The attempt to merge lp:~dholbach/snapcraft/fix-pep8-and-doc-indentation into lp:snapcraft failed. Below is the output from the failed tests.

snapcraft/common.py:81: undefined name 'decode'

Revision history for this message
Leo Arias (elopio) wrote :

Sorry for stealing your branch, but it had a small typo and we need to land this asap to avoid big conflicts. Approving again.

review: Approve
Revision history for this message
Snappy Tarmac (snappydevtarmac) wrote :

The attempt to merge lp:~elopio/snapcraft/fix-pep8-and-doc-indentation into lp:snapcraft failed. Below is the output from the failed tests.

snapcraft/common.py:81:17: E126 continuation line over-indented for hanging indent

Revision history for this message
Snappy Tarmac (snappydevtarmac) wrote :

The attempt to merge lp:~elopio/snapcraft/fix-pep8-and-doc-indentation into lp:snapcraft failed. Below is the output from the failed tests.

snapcraft/common.py:81:17: E126 continuation line over-indented for hanging indent

Revision history for this message
Snappy Tarmac (snappydevtarmac) wrote :

The attempt to merge lp:~elopio/snapcraft/fix-pep8-and-doc-indentation into lp:snapcraft failed. Below is the output from the failed tests.

snapcraft/common.py:81:17: E126 continuation line over-indented for hanging indent

Revision history for this message
Snappy Tarmac (snappydevtarmac) wrote :

The attempt to merge lp:~elopio/snapcraft/fix-pep8-and-doc-indentation into lp:snapcraft failed. Below is the output from the failed tests.

snapcraft/common.py:81:17: E126 continuation line over-indented for hanging indent

Revision history for this message
Snappy Tarmac (snappydevtarmac) wrote :
Download full text (4.1 KiB)

The attempt to merge lp:~elopio/snapcraft/fix-pep8-and-doc-indentation into lp:snapcraft failed. Below is the output from the failed tests.

name: # the name of the snap
version: # the version of the snap
# The vendor for the snap (replace 'Vendor <email address hidden>')
vendor: Vendor <email address hidden>
summary: # 79 char long summary
description: # A longer description for the snap
icon: # A path to an icon for the package
cp --preserve=all -R zzz /tmp/tmpu9u848ie/parts/copy/install/zzz
cp --preserve=all -R src /tmp/tmp79huuwcn/parts/copy/install/dst
cp --preserve=all -R src /tmp/tmps1vpx7b4/parts/copy/install/dir/dst

...................................Warning: unable to find "test_relexepath" in the path
.................................F.................................
======================================================================
FAIL: test_init_with_source_branch_and_tag_raises_exception (snapcraft.tests.test_sources.TestMercurial)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/tmp/tarmac/branch.DenRbR/snapcraft/tests/test_sources.py", line 275, in test_init_with_source_branch_and_tag_raises_exception
    self.assertEqual(raised.exception.message, expected_message)
AssertionError: "can't specify both source-tag and source-branch for a mercurial source" != "can't specify both source-tag and source-branch "
- can't specify both source-tag and source-branch for a mercurial source
? ----------------------
+ can't specify both source-tag and source-branch

======================================================================
FAIL: test_invalid_names (snapcraft.tests.test_yaml.TestValidation) (key='package@awesome')
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/tmp/tarmac/branch.DenRbR/snapcraft/tests/test_yaml.py", line 373, in test_invalid_names
    msg=data)
AssertionError: "'package@awesome' does not match '^[a-z0-9][a-z0-9+-]*$'" != "'{}' does not match "
- 'package@awesome' does not match '^[a-z0-9][a-z0-9+-]*$'
+ '{}' does not match
 : {'description': 'description which can be pretty long', 'version': '1.0-snapcraft1~ppa1', 'icon': 'my-icon.png', 'vendor': 'Me <email address hidden>', 'summary': 'my summary less that 79 chars', 'name': 'package@awesome', 'parts': {'part1': {'plugin': 'project'}}}

======================================================================
FAIL: test_invalid_names (snapcraft.tests.test_yaml.TestValidation) (key='something.another')
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/tmp/tarmac/branch.DenRbR/snapcraft/tests/test_yaml.py", line 373, in test_invalid_names
    msg=data)
AssertionError: "'something.another' does not match '^[a-z0-9][a-z0-9+-]*$'" != "'{}' does not match "
- 'something.another' does not match '^[a-z0-9][a-z0-9+-]*$'
+ '{}' does not match
 : {'description': 'description which can be pretty long', 'version': '1.0-snapcraft1~ppa1', 'icon': 'my-icon.png', 'vendor': 'Me <email address hidden>', 'summary': 'my summary less that 79 chars', 'name': 'so...

Read more...

Revision history for this message
Snappy Tarmac (snappydevtarmac) wrote :

There are additional revisions which have not been approved in review. Please seek review and approval of these new revisions.

Revision history for this message
Leo Arias (elopio) wrote :

oh come on!

Revision history for this message
Leo Arias (elopio) :
review: Approve
Revision history for this message
Snappy Tarmac (snappydevtarmac) wrote :

The attempt to merge lp:~elopio/snapcraft/fix-pep8-and-doc-indentation into lp:snapcraft failed. Below is the output from the failed tests.

snapcraft/tests/test_yaml.py:372:25: E126 continuation line over-indented for hanging indent
snapcraft/tests/test_yaml.py:372:25: E126 continuation line over-indented for hanging indent

Revision history for this message
Snappy Tarmac (snappydevtarmac) wrote :

There are additional revisions which have not been approved in review. Please seek review and approval of these new revisions.

Revision history for this message
Leo Arias (elopio) :
review: Approve
Revision history for this message
Leo Arias (elopio) wrote :

spam spam spam spam.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'docs/snapcraft-advanced-features.md'
2--- docs/snapcraft-advanced-features.md 2015-10-01 08:54:15 +0000
3+++ docs/snapcraft-advanced-features.md 2015-10-05 19:37:43 +0000
4@@ -74,11 +74,11 @@
5 assemble and build the snap:
6
7 parts:
8- spongeshaker:
9+ spongeshaker:
10 plugin: python2
11 source: git://github.com/markokr/spongeshaker.git
12 make-project:
13- plugin: make
14+ plugin: make
15 source: .
16
17 The example above mixes and matches parts of different origin. Locally it
18
19=== modified file 'examples/py2-project/sha3sum.py'
20--- examples/py2-project/sha3sum.py 2015-07-17 14:44:45 +0000
21+++ examples/py2-project/sha3sum.py 2015-10-05 19:37:43 +0000
22@@ -12,4 +12,3 @@
23 data = fp.read()
24 h.update(data)
25 print(h.hexdigest())
26-
27
28=== modified file 'examples/py3-project/sha3sum.py'
29--- examples/py3-project/sha3sum.py 2015-07-15 09:55:27 +0000
30+++ examples/py3-project/sha3sum.py 2015-10-05 19:37:43 +0000
31@@ -12,4 +12,3 @@
32 data = fp.read()
33 h.update(data)
34 print(h.hexdigest())
35-
36
37=== modified file 'examples/webcam-webui/config.py'
38--- examples/webcam-webui/config.py 2015-09-15 20:53:36 +0000
39+++ examples/webcam-webui/config.py 2015-10-05 19:37:43 +0000
40@@ -17,7 +17,8 @@
41 if config_yaml:
42 set_config(config_file, config_yaml)
43
44- yaml.dump(get_config(config_file), stream=sys.stdout, default_flow_style=False)
45+ yaml.dump(get_config(config_file), stream=sys.stdout,
46+ default_flow_style=False)
47
48
49 def set_config(config_file, config_yaml={}):
50@@ -37,9 +38,11 @@
51
52 def _config(config_yaml={}):
53 try:
54- interval_value = config_yaml['config'][os.environ['SNAP_NAME']]['interval']
55+ interval_value = config_yaml['config'][
56+ os.environ['SNAP_NAME']]['interval']
57 if not isinstance(interval_value, int):
58- config_yaml['config'][os.environ['SNAP_NAME']]['interval'] = _DEFAULT_INTERVAL
59+ config_yaml['config'][
60+ os.environ['SNAP_NAME']]['interval'] = _DEFAULT_INTERVAL
61 except KeyError:
62 interval = {
63 'config': {
64
65=== modified file 'integration-tests/data/pypi-config/config.py'
66--- integration-tests/data/pypi-config/config.py 2015-09-17 19:05:20 +0000
67+++ integration-tests/data/pypi-config/config.py 2015-10-05 19:37:43 +0000
68@@ -17,7 +17,9 @@
69 if config_yaml:
70 set_config(config_file, config_yaml)
71
72- yaml.dump(get_config(config_file), stream=sys.stdout, default_flow_style=False)
73+ yaml.dump(get_config(config_file),
74+ stream=sys.stdout,
75+ default_flow_style=False)
76
77
78 def set_config(config_file, config_yaml={}):
79@@ -37,9 +39,11 @@
80
81 def _config(config_yaml={}):
82 try:
83- interval_value = config_yaml['config'][os.environ['SNAP_NAME']]['interval']
84+ interval_value = config_yaml['config'][
85+ os.environ['SNAP_NAME']]['interval']
86 if not isinstance(interval_value, int):
87- config_yaml['config'][os.environ['SNAP_NAME']]['interval'] = _DEFAULT_INTERVAL
88+ config_yaml['config'][
89+ os.environ['SNAP_NAME']]['interval'] = _DEFAULT_INTERVAL
90 except KeyError:
91 interval = {
92 'config': {
93
94=== modified file 'runtests.sh'
95--- runtests.sh 2015-10-02 02:24:13 +0000
96+++ runtests.sh 2015-10-05 19:37:43 +0000
97@@ -48,7 +48,7 @@
98 # These three checks could easily be done with flake8 in one shot if
99 # we had python3-flake8 provide flake8
100 # Ignore 501 (line-too-long)
101- pep8 $SRC_PATHS --ignore=E501
102+ pep8 $SRC_PATHS
103
104 pyflakes3 $SRC_PATHS
105
106
107=== modified file 'setup.py'
108--- setup.py 2015-09-02 15:10:58 +0000
109+++ setup.py 2015-10-05 19:37:43 +0000
110@@ -37,8 +37,10 @@
111 package_data={'snapcraft': ['manifest.txt']},
112 scripts=['bin/snapcraft'],
113 data_files=[
114- ('share/snapcraft/plugins', ['plugins/' + x for x in os.listdir('plugins')]),
115- ('share/snapcraft/schema', ['schema/' + x for x in os.listdir('schema')]),
116+ ('share/snapcraft/plugins',
117+ ['plugins/' + x for x in os.listdir('plugins')]),
118+ ('share/snapcraft/schema',
119+ ['schema/' + x for x in os.listdir('schema')]),
120 ],
121 cmdclass={'test': TestCommand},
122 )
123
124=== modified file 'snapcraft/__init__.py'
125--- snapcraft/__init__.py 2015-09-29 08:37:47 +0000
126+++ snapcraft/__init__.py 2015-10-05 19:37:43 +0000
127@@ -42,8 +42,10 @@
128 self.partdir = os.path.join(os.getcwd(), "parts", self.name)
129 self.sourcedir = os.path.join(os.getcwd(), "parts", self.name, "src")
130 self.builddir = os.path.join(os.getcwd(), "parts", self.name, "build")
131- self.ubuntudir = os.path.join(os.getcwd(), "parts", self.name, 'ubuntu')
132- self.installdir = os.path.join(os.getcwd(), "parts", self.name, "install")
133+ self.ubuntudir = os.path.join(os.getcwd(), "parts", self.name,
134+ 'ubuntu')
135+ self.installdir = os.path.join(os.getcwd(), "parts", self.name,
136+ "install")
137 self.stagedir = os.path.join(os.getcwd(), "stage")
138 self.snapdir = os.path.join(os.getcwd(), "snap")
139
140@@ -84,17 +86,23 @@
141 def isurl(self, url):
142 return snapcraft.common.isurl(url)
143
144- def get_source(self, source, source_type=None, source_tag=None, source_branch=None):
145+ def get_source(self, source, source_type=None, source_tag=None,
146+ source_branch=None):
147 try:
148 handler_class = _get_source_handler(source_type, source)
149 except ValueError:
150- logger.error("Unrecognized source '%s' for part '%s'.", source, self.name)
151+ logger.error("Unrecognized source '%s' for part '%s'.", source,
152+ self.name)
153 snapcraft.common.fatal()
154
155 try:
156- handler = handler_class(source, self.sourcedir, source_tag, source_branch)
157+ handler = handler_class(source, self.sourcedir, source_tag,
158+ source_branch)
159 except snapcraft.sources.IncompatibleOptionsError as e:
160- logger.error('Issues while setting up sources for part \'%s\': %s.', self.name, e.message)
161+ logger.error(
162+ 'Issues while setting up sources for part \'%s\': %s.',
163+ self.name,
164+ e.message)
165 snapcraft.common.fatal()
166 if not handler.pull():
167 return False
168@@ -115,16 +123,23 @@
169 def setup_stage_packages(self):
170 part_stage_packages = getattr(self.options, 'stage_packages', []) or []
171 if self.PLUGIN_STAGE_PACKAGES or part_stage_packages:
172- ubuntu = snapcraft.repo.Ubuntu(self.ubuntudir, sources=self.PLUGIN_STAGE_SOURCES)
173+ ubuntu = snapcraft.repo.Ubuntu(self.ubuntudir,
174+ sources=self.PLUGIN_STAGE_SOURCES)
175 ubuntu.get(self.PLUGIN_STAGE_PACKAGES + part_stage_packages)
176 ubuntu.unpack(self.installdir)
177 self._fixup(self.installdir)
178
179 def _fixup(self, root):
180 if os.path.isfile(os.path.join(root, 'usr', 'bin', 'xml2-config')):
181- self.run(['sed', '-i', '-e', 's|prefix=/usr|prefix={}/usr|'.format(root), os.path.join(root, 'usr', 'bin', 'xml2-config')])
182+ self.run(
183+ ['sed', '-i', '-e', 's|prefix=/usr|prefix={}/usr|'.
184+ format(root),
185+ os.path.join(root, 'usr', 'bin', 'xml2-config')])
186 if os.path.isfile(os.path.join(root, 'usr', 'bin', 'xslt-config')):
187- self.run(['sed', '-i', '-e', 's|prefix=/usr|prefix={}/usr|'.format(root), os.path.join(root, 'usr', 'bin', 'xslt-config')])
188+ self.run(
189+ ['sed', '-i', '-e', 's|prefix=/usr|prefix={}/usr|'.
190+ format(root),
191+ os.path.join(root, 'usr', 'bin', 'xslt-config')])
192
193
194 def _get_source_handler(source_type, source):
195
196=== modified file 'snapcraft/cmds.py'
197--- snapcraft/cmds.py 2015-10-04 20:03:23 +0000
198+++ snapcraft/cmds.py 2015-10-05 19:37:43 +0000
199@@ -54,7 +54,8 @@
200 if args.part:
201 yaml += 'parts:\n'
202 for part_name in args.part:
203- part = snapcraft.plugin.load_plugin(part_name, part_name, load_code=False)
204+ part = snapcraft.plugin.load_plugin(part_name, part_name,
205+ load_code=False)
206 yaml += ' ' + part.names()[0] + ':\n'
207 for opt in part.config.get('options', []):
208 if part.config['options'][opt].get('required', False):
209@@ -73,7 +74,10 @@
210 common.env = config.stage_env()
211 userCommand = args.userCommand
212 if not userCommand:
213- userCommand = ['/usr/bin/env', 'PS1=\[\e[1;32m\]snapcraft:\w\$\[\e[0m\] ', '/bin/bash', '--norc']
214+ userCommand = ['/usr/bin/env',
215+ 'PS1=\[\e[1;32m\]snapcraft:\w\$\[\e[0m\] ',
216+ '/bin/bash',
217+ '--norc']
218 common.run(userCommand)
219
220
221@@ -168,7 +172,8 @@
222 qemu_img = os.path.join(qemudir, "15.04.img")
223 if not os.path.exists(qemu_img):
224 os.makedirs(qemudir, exist_ok=True)
225- logger.info('Setting up virtual snappy environment, root access required')
226+ logger.info(
227+ 'Setting up virtual snappy environment, root access required')
228 common.run([
229 'sudo', 'ubuntu-device-flash', 'core', '15.04', '--developer-mode',
230 '--enable-ssh', '-o', os.path.relpath(qemu_img, qemudir)],
231@@ -181,7 +186,8 @@
232 # the snapcraft run workflow.
233 #
234 # For example:
235- # $ export SNAPCRAFT_RUN_QEMU_ARGS="-usb -device usb-host,hostbus=1,hostaddr=10"
236+ # $ export SNAPCRAFT_RUN_QEMU_ARGS=\
237+ # "-usb -device usb-host,hostbus=1,hostaddr=10"
238 # $ snapcraft run
239 qemu_args = os.getenv("SNAPCRAFT_RUN_QEMU_ARGS")
240 if qemu_args is not None:
241@@ -258,7 +264,9 @@
242 for part in parts:
243 # Gather our own files up
244 fileset = getattr(part.code.options, 'stage', ['*']) or ['*']
245- part_files, _ = snapcraft.plugin.migratable_filesets(fileset, part.installdir)
246+ part_files, _ = snapcraft.plugin.migratable_filesets(
247+ fileset,
248+ part.installdir)
249
250 # Scan previous parts for collisions
251 for other_part_name in parts_files:
252@@ -266,19 +274,27 @@
253 conflict_files = []
254 for f in common:
255 this = os.path.join(part.installdir, f)
256- other = os.path.join(parts_files[other_part_name]['installdir'], f)
257+ other = os.path.join(
258+ parts_files[other_part_name]['installdir'],
259+ f)
260 if os.path.islink(this) and os.path.islink(other):
261 continue
262 if not filecmp.cmp(this, other, shallow=False):
263 conflict_files.append(f)
264
265 if conflict_files:
266- logger.error('Error: parts %s and %s have the following file paths in common which have different contents:\n %s', other_part_name, part.names()[0], '\n '.join(sorted(conflict_files)))
267+ logger.error('Error: parts %s and %s have the following file '
268+ 'paths in common which have different '
269+ 'contents:\n %s',
270+ other_part_name,
271+ part.names()[0],
272+ '\n '.join(sorted(conflict_files)))
273
274 return False
275
276 # And add our files to the list
277- parts_files[part.names()[0]] = {'files': part_files, 'installdir': part.installdir}
278+ parts_files[part.names()[0]] = {'files': part_files,
279+ 'installdir': part.installdir}
280
281 return True
282
283@@ -305,9 +321,9 @@
284 # This ends up running multiple times, as each part gets to its
285 # staging cmd. That's inefficient, but largely OK.
286 # FIXME: fix the above by iterating over cmds before iterating
287- # all_parts. But then we need to make sure we continue to handle
288- # cases like go, where you want go built before trying to pull
289- # a go project.
290+ # all_parts. But then we need to make sure we continue to
291+ # handle cases like go, where you want go built before trying
292+ # to pull a go project.
293 if not _check_for_collisions(config.all_parts):
294 sys.exit(1)
295
296@@ -337,7 +353,9 @@
297 def _install_build_packages(packages):
298 new_packages = []
299 for check_pkg in packages:
300- if subprocess.call(['dpkg-query', '-s', check_pkg], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL) != 0:
301+ if subprocess.call(['dpkg-query', '-s', check_pkg],
302+ stdout=subprocess.DEVNULL,
303+ stderr=subprocess.DEVNULL) != 0:
304 new_packages.append(check_pkg)
305 if new_packages:
306 logger.info('Installing required packages on the host system')
307@@ -361,8 +379,9 @@
308 return _config
309 except snapcraft.yaml.SnapcraftYamlFileError as e:
310 logger.error(
311- 'Could not find {}. Are you sure you are in the right directory?\n'
312- 'To start a new project, use \'snapcraft init\''.format(e.file))
313+ 'Could not find {}. Are you sure you are in the right '
314+ 'directory?\nTo start a new project, use \'snapcraft '
315+ 'init\''.format(e.file))
316 sys.exit(1)
317 except snapcraft.yaml.SnapcraftSchemaError as e:
318 msg = "Issues while validating snapcraft.yaml: {}".format(e.message)
319@@ -374,5 +393,6 @@
320 'missing for the "{}" part.'.format(e.part))
321 sys.exit(1)
322 except snapcraft.yaml.SnapcraftLogicError as e:
323- logger.error('Issue detected while analyzing snapcraft.yaml: {}'.format(e.message))
324+ logger.error('Issue detected while analyzing '
325+ 'snapcraft.yaml: {}'.format(e.message))
326 sys.exit(1)
327
328=== modified file 'snapcraft/common.py'
329--- snapcraft/common.py 2015-09-18 21:23:40 +0000
330+++ snapcraft/common.py 2015-10-05 19:37:43 +0000
331@@ -57,7 +57,8 @@
332 f.write('\n')
333 f.write('exec $*')
334 f.flush()
335- return subprocess.check_output(['/bin/sh', f.name] + cmd, **kwargs).decode('utf8').strip()
336+ return subprocess.check_output(['/bin/sh', f.name] + cmd,
337+ **kwargs).decode('utf8').strip()
338
339
340 def fatal():
341@@ -67,14 +68,17 @@
342 def get_arch():
343 global _arch
344 if _arch is None:
345- _arch = subprocess.check_output(['dpkg-architecture', '-qDEB_BUILD_ARCH']).decode('utf8').strip()
346+ _arch = subprocess.check_output(
347+ ['dpkg-architecture', '-qDEB_BUILD_ARCH']).decode('utf8').strip()
348 return _arch
349
350
351 def get_arch_triplet():
352 global _arch_triplet
353 if _arch_triplet is None:
354- _arch_triplet = subprocess.check_output(['dpkg-architecture', '-qDEB_BUILD_MULTIARCH']).decode('utf8').strip()
355+ _arch_triplet = subprocess.check_output(
356+ ['dpkg-architecture', '-qDEB_BUILD_MULTIARCH']
357+ ).decode('utf8').strip()
358 return _arch_triplet
359
360
361
362=== modified file 'snapcraft/main.py'
363--- snapcraft/main.py 2015-09-17 14:14:14 +0000
364+++ snapcraft/main.py 2015-10-05 19:37:43 +0000
365@@ -30,9 +30,11 @@
366 # Parent parsers
367
368 force_parser = argparse.ArgumentParser(add_help=False)
369- force_parser.add_argument('--force', action='store_true', help='redo all steps for all parts')
370+ force_parser.add_argument('--force', action='store_true',
371+ help='redo all steps for all parts')
372
373- cmd_parser = argparse.ArgumentParser(add_help=False, parents=[force_parser])
374+ cmd_parser = argparse.ArgumentParser(add_help=False,
375+ parents=[force_parser])
376 cmd_parser.add_argument('part', nargs='*')
377
378 # Command parsers
379@@ -42,28 +44,44 @@
380 parser.set_defaults(func=snapcraft.cmds.init)
381
382 parser = subparsers.add_parser('shell', help='enter staging environment')
383- parser.add_argument('userCommand', nargs=argparse.REMAINDER, metavar='cmd', help='optional command to run inside staging environment')
384+ parser.add_argument(
385+ 'userCommand', nargs=argparse.REMAINDER,
386+ metavar='cmd',
387+ help='optional command to run inside staging environment')
388 parser.set_defaults(func=snapcraft.cmds.shell)
389
390- parser = subparsers.add_parser('run', help='run snap in kvm', add_help=False)
391+ parser = subparsers.add_parser('run', help='run snap in kvm',
392+ add_help=False)
393 parser.set_defaults(func=snapcraft.cmds.run)
394
395- parser = subparsers.add_parser('clean', help='clean up the environment (to start from scratch)')
396+ parser = subparsers.add_parser(
397+ 'clean',
398+ help='clean up the environment (to start from scratch)')
399 parser.set_defaults(func=snapcraft.cmds.clean)
400
401- parser = subparsers.add_parser('pull', help='get sources', parents=[cmd_parser])
402- parser.set_defaults(func=snapcraft.cmds.cmd)
403-
404- parser = subparsers.add_parser('build', help='build parts', parents=[cmd_parser])
405- parser.set_defaults(func=snapcraft.cmds.cmd)
406-
407- parser = subparsers.add_parser('stage', help='put parts into staging area', parents=[cmd_parser])
408- parser.set_defaults(func=snapcraft.cmds.cmd)
409-
410- parser = subparsers.add_parser('snap', help='put parts into snap area', parents=[cmd_parser])
411+ parser = subparsers.add_parser('pull', help='get sources',
412+ parents=[cmd_parser])
413+ parser.set_defaults(func=snapcraft.cmds.cmd)
414+
415+ parser = subparsers.add_parser('build', help='build parts',
416+ parents=[cmd_parser])
417+ parser.set_defaults(func=snapcraft.cmds.cmd)
418+
419+ parser = subparsers.add_parser(
420+ 'stage',
421+ help='put parts into staging area', parents=[cmd_parser])
422+ parser.set_defaults(func=snapcraft.cmds.cmd)
423+
424+ parser = subparsers.add_parser(
425+ 'snap',
426+ help='put parts into snap area',
427+ parents=[cmd_parser])
428 parser.set_defaults(func=snapcraft.cmds.snap)
429
430- parser = subparsers.add_parser('assemble', help='make snap package', parents=[force_parser], aliases=['all'])
431+ parser = subparsers.add_parser(
432+ 'assemble',
433+ help='make snap package', parents=[force_parser],
434+ aliases=['all'])
435 parser.set_defaults(func=snapcraft.cmds.assemble)
436
437 # Now run parser
438
439=== modified file 'snapcraft/meta.py'
440--- snapcraft/meta.py 2015-09-30 09:19:00 +0000
441+++ snapcraft/meta.py 2015-10-05 19:37:43 +0000
442@@ -91,7 +91,8 @@
443 args = execparts[1:] if len(execparts) > 1 else []
444
445 config_hook_path = os.path.join(hooks_dir, 'config')
446- _write_wrap_exe(execparts[0], config_hook_path, args=args, cwd='$SNAP_APP_PATH')
447+ _write_wrap_exe(execparts[0], config_hook_path, args=args,
448+ cwd='$SNAP_APP_PATH')
449
450
451 def _copy(meta_dir, relpath, new_relpath=None):
452@@ -110,8 +111,10 @@
453 for runnable in runnables:
454 for entry in ('security-policy', 'security-override'):
455 if entry in runnable:
456- runnable[entry]['apparmor'] = _copy(meta_dir, runnable[entry]['apparmor'])
457- runnable[entry]['seccomp'] = _copy(meta_dir, runnable[entry]['seccomp'])
458+ runnable[entry]['apparmor'] = \
459+ _copy(meta_dir, runnable[entry]['apparmor'])
460+ runnable[entry]['seccomp'] = \
461+ _copy(meta_dir, runnable[entry]['seccomp'])
462
463 return runnables
464
465@@ -140,12 +143,14 @@
466 if 'binaries' in config_data:
467 binaries = config_data['binaries']
468 binaries = _wrap_binaries(binaries)
469- package_yaml['binaries'] = _copy_security_profiles(meta_dir, _repack_names(binaries))
470+ package_yaml['binaries'] = \
471+ _copy_security_profiles(meta_dir, _repack_names(binaries))
472
473 if 'services' in config_data:
474 services = config_data['services']
475 services = _wrap_services(services)
476- package_yaml['services'] = _copy_security_profiles(meta_dir, _repack_names(services))
477+ package_yaml['services'] = \
478+ _copy_security_profiles(meta_dir, _repack_names(services))
479
480 return package_yaml
481
482@@ -159,7 +164,8 @@
483
484
485 def _compose_readme(config_data):
486- return '{config[summary]}\n{config[description]}\n'.format(config=config_data)
487+ s = '{config[summary]}\n{config[description]}\n'
488+ return s.format(config=config_data)
489
490
491 def _replace_cmd(execparts, cmd):
492@@ -199,7 +205,8 @@
493 wrapexec = '$SNAP_APP_PATH/{}'.format(relexepath)
494 if not os.path.exists(exepath) and '/' not in relexepath:
495 # If it doesn't exist it might be in the path
496- logger.debug('Checking to see if "{}" is in the $PATH'.format(relexepath))
497+ logger.debug('Checking to see if "{}" is in the $PATH'.format(
498+ relexepath))
499 with tempfile.NamedTemporaryFile('w+') as tempf:
500 script = ('#!/bin/sh\n' +
501 '{}\n'.format(common.assemble_env()) +
502@@ -209,7 +216,8 @@
503 if common.run(['/bin/sh', tempf.name], cwd=snap_dir):
504 wrapexec = relexepath
505 else:
506- logger.warning('Warning: unable to find "{}" in the path'.format(relexepath))
507+ logger.warning('Warning: unable to find "{}" in the path'.
508+ format(relexepath))
509
510 _write_wrap_exe(wrapexec, wrappath)
511
512
513=== modified file 'snapcraft/plugin.py'
514--- snapcraft/plugin.py 2015-09-22 10:39:06 +0000
515+++ snapcraft/plugin.py 2015-10-05 19:37:43 +0000
516@@ -49,7 +49,8 @@
517
518 class PluginHandler:
519
520- def __init__(self, name, part_name, properties, load_code=True, load_config=True):
521+ def __init__(self, name, part_name, properties, load_code=True,
522+ load_config=True):
523 self.valid = False
524 self.code = None
525 self.config = {}
526@@ -107,7 +108,8 @@
527 setattr(options, attrname, properties[opt])
528 else:
529 if opt_parameters.get('required', False):
530- raise PluginError('Required field {} missing on part {}'.format(opt, name))
531+ raise PluginError('Required field {} missing on part {}'.
532+ format(opt, name))
533 setattr(options, attrname, None)
534
535 return options
536@@ -117,7 +119,8 @@
537 module_name = name.replace('-', '_')
538
539 try:
540- module = importlib.import_module('snapcraft.plugins.' + module_name)
541+ module = importlib.import_module('snapcraft.plugins.' +
542+ module_name)
543 except ImportError:
544 module = None
545
546@@ -160,7 +163,8 @@
547 try:
548 with open(self.statefile, 'r') as f:
549 lastStep = f.read()
550- return common.COMMAND_ORDER.index(stage) > common.COMMAND_ORDER.index(lastStep)
551+ return (common.COMMAND_ORDER.index(stage) >
552+ common.COMMAND_ORDER.index(lastStep))
553 except Exception:
554 return True
555
556@@ -179,7 +183,8 @@
557 return True
558 self.makedirs()
559
560- run_setup_stage_packages = self.code and hasattr(self.code, 'setup_stage_packages')
561+ run_setup_stage_packages = self.code and \
562+ hasattr(self.code, 'setup_stage_packages')
563 run_pull = self.code and hasattr(self.code, 'pull')
564
565 if run_setup_stage_packages or run_pull:
566@@ -248,7 +253,8 @@
567 snap_files, snap_dirs = self._migratable_fileset_for('stage')
568
569 try:
570- _migrate_files(snap_files, snap_dirs, self.installdir, self.stagedir)
571+ _migrate_files(snap_files, snap_dirs, self.installdir,
572+ self.stagedir)
573 except FileNotFoundError as e:
574 logger.error('Could not find file %s defined in stage',
575 os.path.relpath(e.filename, os.path.curdir))
576@@ -284,7 +290,8 @@
577
578
579 def load_plugin(part_name, plugin_name, properties={}, load_code=True):
580- part = PluginHandler(plugin_name, part_name, properties, load_code=load_code)
581+ part = PluginHandler(plugin_name, part_name, properties,
582+ load_code=load_code)
583 if not part.is_valid():
584 logger.error('Could not load part %s', plugin_name)
585 sys.exit(1)
586@@ -300,10 +307,13 @@
587 # And chop files, including whole trees if any dirs are mentioned
588 snap_files = include_files - exclude_files
589 for exclude_dir in exclude_dirs:
590- snap_files = set([x for x in snap_files if not x.startswith(exclude_dir + '/')])
591+ snap_files = set([x for x in snap_files
592+ if not x.startswith(exclude_dir + '/')])
593
594 # Separate dirs from files
595- snap_dirs = set([x for x in snap_files if os.path.isdir(os.path.join(srcdir, x)) and not os.path.islink(os.path.join(srcdir, x))])
596+ snap_dirs = set([x for x in snap_files
597+ if os.path.isdir(os.path.join(srcdir, x)) and
598+ not os.path.islink(os.path.join(srcdir, x))])
599 snap_files = snap_files - snap_dirs
600
601 return snap_files, snap_dirs
602@@ -356,8 +366,12 @@
603 # files from an include like 'lib'
604 for include_dir in include_dirs:
605 for root, dirs, files in os.walk(include_dir):
606- include_files |= set([os.path.relpath(os.path.join(root, d), directory) for d in dirs])
607- include_files |= set([os.path.relpath(os.path.join(root, f), directory) for f in files])
608+ include_files |= \
609+ set([os.path.relpath(os.path.join(root, d), directory)
610+ for d in dirs])
611+ include_files |= \
612+ set([os.path.relpath(os.path.join(root, f), directory)
613+ for f in files])
614
615 return include_files
616
617@@ -369,8 +383,10 @@
618 matches = glob.glob(os.path.join(directory, exclude))
619 exclude_files |= set(matches)
620
621- exclude_dirs = [os.path.relpath(x, directory) for x in exclude_files if os.path.isdir(x)]
622- exclude_files = set([os.path.relpath(x, directory) for x in exclude_files])
623+ exclude_dirs = [os.path.relpath(x, directory)
624+ for x in exclude_files if os.path.isdir(x)]
625+ exclude_files = set([os.path.relpath(x, directory)
626+ for x in exclude_files])
627
628 return exclude_files, exclude_dirs
629
630
631=== modified file 'snapcraft/plugins/ant.py'
632--- snapcraft/plugins/ant.py 2015-10-01 08:54:15 +0000
633+++ snapcraft/plugins/ant.py 2015-10-05 19:37:43 +0000
634@@ -36,7 +36,8 @@
635 return False
636 files = glob.glob(os.path.join(self.builddir, 'target', '*.jar'))
637 if not files:
638- logger.error('Could not find any built jar files for part %s', self.name)
639+ logger.error('Could not find any built jar files for part %s',
640+ self.name)
641 sys.exit(1)
642 jardir = os.path.join(self.installdir, 'jar')
643 return self.run(['mkdir', '-p', jardir]) and \
644
645=== modified file 'snapcraft/plugins/autotools.py'
646--- snapcraft/plugins/autotools.py 2015-10-01 08:54:15 +0000
647+++ snapcraft/plugins/autotools.py 2015-10-05 19:37:43 +0000
648@@ -28,5 +28,5 @@
649 if not os.path.exists(os.path.join(self.builddir, "configure")):
650 if not self.run(['env', 'NOCONFIGURE=1', './autogen.sh']):
651 return False
652- return self.run(['./configure', '--prefix='] + self.options.configflags) and \
653- super().build()
654+ return self.run(['./configure', '--prefix='] +
655+ self.options.configflags) and super().build()
656
657=== modified file 'snapcraft/plugins/cmake.py'
658--- snapcraft/plugins/cmake.py 2015-10-01 08:54:15 +0000
659+++ snapcraft/plugins/cmake.py 2015-10-05 19:37:43 +0000
660@@ -24,5 +24,5 @@
661 self.options.configflags = []
662
663 def build(self):
664- return self.run(['cmake', '.', '-DCMAKE_INSTALL_PREFIX='] + self.options.configflags) and \
665- super().build()
666+ return self.run(['cmake', '.', '-DCMAKE_INSTALL_PREFIX='] +
667+ self.options.configflags) and super().build()
668
669=== modified file 'snapcraft/plugins/copy.py'
670--- snapcraft/plugins/copy.py 2015-08-26 08:52:09 +0000
671+++ snapcraft/plugins/copy.py 2015-10-05 19:37:43 +0000
672@@ -37,5 +37,6 @@
673 dst_dir = os.path.dirname(dst)
674 if not os.path.exists(dst_dir):
675 os.makedirs(dst_dir)
676- res &= self.run(["cp", "--preserve=all", "-R", src, dst], cwd=os.getcwd())
677+ res &= self.run(["cp", "--preserve=all", "-R", src, dst],
678+ cwd=os.getcwd())
679 return res
680
681=== modified file 'snapcraft/plugins/go.py'
682--- snapcraft/plugins/go.py 2015-10-01 08:54:15 +0000
683+++ snapcraft/plugins/go.py 2015-10-05 19:37:43 +0000
684@@ -43,7 +43,8 @@
685 return False
686 if not self.run(['go', 'install', self.fullname]):
687 return False
688- return self.run(['cp', '-a', os.path.join(self.builddir, 'bin'), self.installdir])
689+ return self.run(['cp', '-a', os.path.join(self.builddir, 'bin'),
690+ self.installdir])
691
692 def run(self, cmd, **kwargs):
693 cmd = ['env', 'GOPATH=' + self.builddir] + cmd
694
695=== modified file 'snapcraft/plugins/maven.py'
696--- snapcraft/plugins/maven.py 2015-10-01 08:54:15 +0000
697+++ snapcraft/plugins/maven.py 2015-10-05 19:37:43 +0000
698@@ -36,7 +36,8 @@
699 jarfiles = glob.glob(os.path.join(self.builddir, 'target', '*.jar'))
700 warfiles = glob.glob(os.path.join(self.builddir, 'target', '*.war'))
701 if not (jarfiles or warfiles):
702- logger.error('Could not find any built jar or war files for part %s', self.name)
703+ logger.error('Could not find any built jar or war files for '
704+ 'part %s', self.name)
705 snapcraft.common.fatal()
706 if jarfiles:
707 jardir = os.path.join(self.installdir, 'jar')
708
709=== modified file 'snapcraft/plugins/python2.py'
710--- snapcraft/plugins/python2.py 2015-10-01 08:54:15 +0000
711+++ snapcraft/plugins/python2.py 2015-10-05 19:37:43 +0000
712@@ -62,7 +62,8 @@
713
714 if not os.path.exists(site_packages_dir):
715 os.symlink(
716- os.path.join(prefix, 'lib', self.python_version, 'dist-packages'),
717+ os.path.join(prefix, 'lib', self.python_version,
718+ 'dist-packages'),
719 site_packages_dir)
720
721 if not self.run(['python2', easy_install, '--prefix', prefix, 'pip']):
722@@ -99,7 +100,8 @@
723 @property
724 def dist_packages_dir(self):
725 return os.path.join(
726- self.installdir, 'usr', 'lib', self.python_version, 'dist-packages')
727+ self.installdir, 'usr', 'lib', self.python_version,
728+ 'dist-packages')
729
730 @property
731 def python_version(self):
732
733=== modified file 'snapcraft/plugins/python3.py'
734--- snapcraft/plugins/python3.py 2015-10-02 16:45:13 +0000
735+++ snapcraft/plugins/python3.py 2015-10-05 19:37:43 +0000
736@@ -99,7 +99,8 @@
737 @property
738 def dist_packages_dir(self):
739 return os.path.join(
740- self.installdir, 'usr', 'lib', self.python_version, 'dist-packages')
741+ self.installdir, 'usr', 'lib', self.python_version,
742+ 'dist-packages')
743
744 @property
745 def python_version(self):
746
747=== modified file 'snapcraft/plugins/qml.py'
748--- snapcraft/plugins/qml.py 2015-09-08 21:21:07 +0000
749+++ snapcraft/plugins/qml.py 2015-10-05 19:37:43 +0000
750@@ -81,7 +81,8 @@
751 "LD_LIBRARY_PATH=%s/usr/lib/%s:$LD_LIBRARY_PATH" % (root, arch),
752 # Mir config
753 "MIR_SOCKET=/run/mir_socket",
754- "MIR_CLIENT_PLATFORM_PATH=%s/usr/lib/%s/mir/client-platform" % (root, arch),
755+ "MIR_CLIENT_PLATFORM_PATH={}/usr/lib/{}/mir/client-platform"
756+ .format(root, arch),
757 # XKB config
758 "XKB_CONFIG_ROOT=%s/usr/share/X11/xkb" % root,
759 # Qt Platform to Mir
760@@ -89,14 +90,18 @@
761 "QTCHOOSER_NO_GLOBAL_DIR=1",
762 "QT_SELECT=snappy-qt5",
763 # Qt Libs
764- "LD_LIBRARY_PATH=%s/usr/lib/%s/qt5/libs:$LD_LIBRARY_PATH" % (root, arch),
765- "LD_LIBRARY_PATH=%s/usr/lib/%s/pulseaudio:$LD_LIBRARY_PATH" % (root, arch),
766+ "LD_LIBRARY_PATH={}/usr/lib/{}/qt5/libs:$LD_LIBRARY_PATH"
767+ .format(root, arch),
768+ "LD_LIBRARY_PATH={}/usr/lib/{}/pulseaudio:$LD_LIBRARY_PATH"
769+ .format(root, arch),
770 # Qt Modules
771 "QT_PLUGIN_PATH=%s/usr/lib/%s/qt5/plugins" % (root, arch),
772 "QML2_IMPORT_PATH=%s/usr/lib/%s/qt5/qml" % (root, arch),
773 # Mesa Libs
774- "LD_LIBRARY_PATH=%s/usr/lib/%s/mesa:$LD_LIBRARY_PATH" % (root, arch),
775- "LD_LIBRARY_PATH=%s/usr/lib/%s/mesa-egl:$LD_LIBRARY_PATH" % (root, arch),
776+ "LD_LIBRARY_PATH={}/usr/lib/{}/mesa:$LD_LIBRARY_PATH"
777+ .format(root, arch),
778+ "LD_LIBRARY_PATH={}/usr/lib/{}/mesa-egl:$LD_LIBRARY_PATH"
779+ .format(root, arch),
780 # XDG Config
781 "XDG_CONFIG_DIRS=%s/etc/xdg:$XDG_CONFIG_DIRS" % root,
782 "XDG_CONFIG_DIRS=%s/usr/xdg:$XDG_CONFIG_DIRS" % root,
783
784=== modified file 'snapcraft/repo.py'
785--- snapcraft/repo.py 2015-09-30 17:23:17 +0000
786+++ snapcraft/repo.py 2015-10-05 19:37:43 +0000
787@@ -28,7 +28,8 @@
788
789 import snapcraft.common
790
791-_DEFAULT_SOURCES = '''deb http://${prefix}.ubuntu.com/${suffix}/ ${release} main restricted
792+_DEFAULT_SOURCES = \
793+ '''deb http://${prefix}.ubuntu.com/${suffix}/ ${release} main restricted
794 deb http://${prefix}.ubuntu.com/${suffix}/ ${release}-updates main restricted
795 deb http://${prefix}.ubuntu.com/${suffix}/ ${release} universe
796 deb http://${prefix}.ubuntu.com/${suffix}/ ${release}-updates universe
797@@ -103,7 +104,8 @@
798 skipped_essential.append(pkg.name)
799 pkg.mark_keep()
800 continue
801- if (pkg.name in manifest_dep_names and pkg.name not in package_names):
802+ if (pkg.name in manifest_dep_names and
803+ pkg.name not in package_names):
804 skipped_blacklisted.append(pkg.name)
805 pkg.mark_keep()
806 continue
807@@ -111,7 +113,8 @@
808 if skipped_essential:
809 print('Skipping priority essential packages:', skipped_essential)
810 if skipped_blacklisted:
811- print('Skipping blacklisted from manifest packages:', skipped_blacklisted)
812+ print('Skipping blacklisted from manifest packages:',
813+ skipped_blacklisted)
814
815 # download the remaining ones with proper progress
816 apt.apt_pkg.config.set("Dir::Cache::Archives", self.downloaddir)
817@@ -131,7 +134,8 @@
818 def _manifest_dep_names(self):
819 manifest_dep_names = set()
820
821- with open(os.path.abspath(os.path.join(__file__, '..', 'manifest.txt'))) as f:
822+ with open(os.path.abspath(os.path.join(__file__, '..',
823+ 'manifest.txt'))) as f:
824 for line in f:
825 pkg = line.strip()
826 if pkg in self.apt_cache:
827
828=== modified file 'snapcraft/sources.py'
829--- snapcraft/sources.py 2015-09-29 08:11:32 +0000
830+++ snapcraft/sources.py 2015-10-05 19:37:43 +0000
831@@ -35,7 +35,8 @@
832
833 class Base:
834
835- def __init__(self, source, source_dir, source_tag=None, source_branch=None):
836+ def __init__(self, source, source_dir, source_tag=None,
837+ source_branch=None):
838 self.source = source
839 self.source_dir = source_dir
840 self.source_tag = source_tag
841@@ -45,35 +46,43 @@
842 raise NotImplementedError('this is just a base class')
843
844 def provision(self, dst):
845- return snapcraft.common.run(['cp', '-Trfa', self.source_dir, dst], cwd=os.getcwd())
846+ return snapcraft.common.run(['cp', '-Trfa', self.source_dir, dst],
847+ cwd=os.getcwd())
848
849
850 class Bazaar(Base):
851
852- def __init__(self, source, source_dir, source_tag=None, source_branch=None):
853+ def __init__(self, source, source_dir, source_tag=None,
854+ source_branch=None):
855 super().__init__(source, source_dir, source_tag, source_branch)
856 if source_branch:
857- raise IncompatibleOptionsError('can\'t specify a source-branch for a bzr source')
858+ raise IncompatibleOptionsError(
859+ 'can\'t specify a source-branch for a bzr source')
860
861 def pull(self):
862 tag_opts = []
863 if self.source_tag:
864 tag_opts = ['-r', 'tag:' + self.source_tag]
865 if os.path.exists(os.path.join(self.source_dir, ".bzr")):
866- cmd = ['bzr', 'pull'] + tag_opts + [self.source, '-d', self.source_dir]
867+ cmd = ['bzr', 'pull'] + tag_opts + \
868+ [self.source, '-d', self.source_dir]
869 else:
870 os.rmdir(self.source_dir)
871- cmd = ['bzr', 'branch'] + tag_opts + [self.source, self.source_dir]
872+ cmd = ['bzr', 'branch'] + tag_opts + \
873+ [self.source, self.source_dir]
874
875 return snapcraft.common.run(cmd, cwd=os.getcwd())
876
877
878 class Git(Base):
879
880- def __init__(self, source, source_dir, source_tag=None, source_branch=None):
881+ def __init__(self, source, source_dir, source_tag=None,
882+ source_branch=None):
883 super().__init__(source, source_dir, source_tag, source_branch)
884 if source_tag and source_branch:
885- raise IncompatibleOptionsError('can\'t specify both source-tag and source-branch for a git source')
886+ raise IncompatibleOptionsError(
887+ 'can\'t specify both source-tag and source-branch for '
888+ 'a git source')
889
890 def pull(self):
891 if os.path.exists(os.path.join(self.source_dir, ".git")):
892@@ -86,18 +95,23 @@
893 else:
894 branch_opts = []
895 if self.source_tag or self.source_branch:
896- branch_opts = ['--branch', self.source_tag or self.source_branch]
897- cmd = ['git', 'clone'] + branch_opts + [self.source, self.source_dir]
898+ branch_opts = ['--branch',
899+ self.source_tag or self.source_branch]
900+ cmd = ['git', 'clone'] + branch_opts + \
901+ [self.source, self.source_dir]
902
903 return snapcraft.common.run(cmd, cwd=os.getcwd())
904
905
906 class Mercurial(Base):
907
908- def __init__(self, source, source_dir, source_tag=None, source_branch=None):
909+ def __init__(self, source, source_dir, source_tag=None,
910+ source_branch=None):
911 super().__init__(source, source_dir, source_tag, source_branch)
912 if source_tag and source_branch:
913- raise IncompatibleOptionsError('can\'t specify both source-tag and source-branch for a mercurial source')
914+ raise IncompatibleOptionsError(
915+ 'can\'t specify both source-tag and source-branch for a '
916+ 'mercurial source')
917
918 def pull(self):
919 if os.path.exists(os.path.join(self.source_dir, ".hg")):
920@@ -118,23 +132,29 @@
921
922 class Tar(Base):
923
924- def __init__(self, source, source_dir, source_tag=None, source_branch=None):
925+ def __init__(self, source, source_dir, source_tag=None,
926+ source_branch=None):
927 super().__init__(source, source_dir, source_tag, source_branch)
928 if source_tag:
929- raise IncompatibleOptionsError('can\'t specify a source-tag for a tar source')
930+ raise IncompatibleOptionsError(
931+ 'can\'t specify a source-tag for a tar source')
932 elif source_branch:
933- raise IncompatibleOptionsError('can\'t specify a source-branch for a tar source')
934+ raise IncompatibleOptionsError(
935+ 'can\'t specify a source-branch for a tar source')
936
937 def pull(self):
938 if snapcraft.common.isurl(self.source):
939- return snapcraft.common.run(['wget', '-q', '-c', self.source], cwd=self.source_dir)
940+ return snapcraft.common.run(['wget', '-q', '-c', self.source],
941+ cwd=self.source_dir)
942 else:
943 return True
944
945 def provision(self, dst, clean_target=True):
946 # TODO add unit tests.
947 if snapcraft.common.isurl(self.source):
948- tarball = os.path.join(self.source_dir, os.path.basename(self.source))
949+ tarball = os.path.join(
950+ self.source_dir,
951+ os.path.basename(self.source))
952 else:
953 tarball = os.path.abspath(self.source)
954
955
956=== modified file 'snapcraft/tests/test_base_plugin.py'
957--- snapcraft/tests/test_base_plugin.py 2015-09-29 08:37:47 +0000
958+++ snapcraft/tests/test_base_plugin.py 2015-10-05 19:37:43 +0000
959@@ -137,5 +137,6 @@
960 self.assertEqual(raised.exception.code, 1, 'Wrong exit code returned.')
961 expected = (
962 'Issues while setting up sources for part \'test_plugin\': can\'t '
963- 'specify a {} for a {} source.\n'.format(self.error, self.source_type))
964+ 'specify a {} for a {} source.\n'
965+ .format(self.error, self.source_type))
966 self.assertEqual(expected, fake_logger.output)
967
968=== modified file 'snapcraft/tests/test_cmds.py'
969--- snapcraft/tests/test_cmds.py 2015-09-18 16:52:06 +0000
970+++ snapcraft/tests/test_cmds.py 2015-10-05 19:37:43 +0000
971@@ -73,7 +73,8 @@
972
973 self.assertFalse(cmds._check_for_collisions([part1, part2, part3]))
974 self.assertEqual(
975- 'Error: parts part2 and part3 have the following file paths in common which have different contents:\n'
976+ 'Error: parts part2 and part3 have the following file paths in '
977+ 'common which have different contents:\n'
978 ' 1\n'
979 ' a/2\n',
980 fake_logger.output)
981
982=== modified file 'snapcraft/tests/test_copy_plugin.py'
983--- snapcraft/tests/test_copy_plugin.py 2015-07-23 14:23:29 +0000
984+++ snapcraft/tests/test_copy_plugin.py 2015-10-05 19:37:43 +0000
985@@ -73,4 +73,5 @@
986
987 c = CopyPlugin("copy", self.mock_options)
988 self.assertTrue(c.build())
989- self.assertTrue(os.path.exists(os.path.join(self.dst_prefix, "dir/dst")))
990+ self.assertTrue(os.path.exists(os.path.join(self.dst_prefix,
991+ "dir/dst")))
992
993=== modified file 'snapcraft/tests/test_meta.py'
994--- snapcraft/tests/test_meta.py 2015-09-21 05:04:31 +0000
995+++ snapcraft/tests/test_meta.py 2015-10-05 19:37:43 +0000
996@@ -44,7 +44,8 @@
997 }
998
999 def test_plain_no_binaries_or_services(self):
1000- y = meta._compose_package_yaml('meta', self.config_data, ['armhf', 'amd64'])
1001+ y = meta._compose_package_yaml('meta', self.config_data,
1002+ ['armhf', 'amd64'])
1003
1004 expected = {
1005 'name': 'my-package',
1006@@ -74,7 +75,8 @@
1007 'binary2': {'exec': 'binary2.sh'},
1008 }
1009
1010- y = meta._compose_package_yaml('meta', self.config_data, ['armhf', 'amd64'])
1011+ y = meta._compose_package_yaml('meta', self.config_data,
1012+ ['armhf', 'amd64'])
1013
1014 self.assertEqual(len(y['binaries']), 2)
1015 for b in y['binaries']:
1016@@ -92,7 +94,8 @@
1017 },
1018 }
1019
1020- y = meta._compose_package_yaml('meta', self.config_data, ['armhf', 'amd64'])
1021+ y = meta._compose_package_yaml('meta', self.config_data,
1022+ ['armhf', 'amd64'])
1023
1024 self.assertEqual(len(y['services']), 2)
1025 for b in y['services']:
1026@@ -105,7 +108,8 @@
1027 def test_plain_no_binaries_or_services_with_optionals(self):
1028 self.config_data['frameworks'] = ['mir', ]
1029
1030- y = meta._compose_package_yaml('meta', self.config_data, ['armhf', 'amd64'])
1031+ y = meta._compose_package_yaml('meta', self.config_data,
1032+ ['armhf', 'amd64'])
1033
1034 expected = {
1035 'name': 'my-package',
1036@@ -120,7 +124,8 @@
1037
1038 def test_compose_readme(self):
1039 self.config_data['summary'] = 'one line summary'
1040- self.config_data['description'] = 'the description\nwhich can be longer'
1041+ self.config_data['description'] = \
1042+ 'the description\nwhich can be longer'
1043
1044 readme_text = '''one line summary
1045 the description
1046@@ -170,7 +175,8 @@
1047 }
1048 }
1049
1050- self.meta_dir = os.path.join(os.path.abspath(os.curdir), 'snap', 'meta')
1051+ self.meta_dir = os.path.join(os.path.abspath(os.curdir),
1052+ 'snap', 'meta')
1053 self.hooks_dir = os.path.join(self.meta_dir, 'hooks')
1054
1055 self.expected_open_calls = [
1056@@ -263,7 +269,8 @@
1057 mock_wrap_exe.assert_has_calls([
1058 call(
1059 '$SNAP_APP_PATH/bin/bash',
1060- os.path.join(os.path.abspath(os.curdir), 'snap/bin/bash.wrapper'),
1061+ os.path.join(os.path.abspath(os.curdir),
1062+ 'snap/bin/bash.wrapper'),
1063 ),
1064 call(
1065 'bin/config',
1066@@ -273,14 +280,18 @@
1067 ),
1068 ])
1069 self.mock_copyfile.assert_has_calls([
1070- call('my-icon.png', os.path.join(self.meta_dir, 'my-icon.png')),
1071- call('file.apparmor', os.path.join(self.meta_dir, 'file.apparmor')),
1072- call('file.seccomp', os.path.join(self.meta_dir, 'file.seccomp')),
1073+ call('my-icon.png', os.path.join(self.meta_dir,
1074+ 'my-icon.png')),
1075+ call('file.apparmor', os.path.join(self.meta_dir,
1076+ 'file.apparmor')),
1077+ call('file.seccomp', os.path.join(self.meta_dir,
1078+ 'file.seccomp')),
1079 ])
1080
1081 @patch('snapcraft.meta._write_wrap_exe')
1082 @patch('snapcraft.meta.open', create=True)
1083- def test_create_meta_with_vararg_config(self, mock_the_open, mock_wrap_exe):
1084+ def test_create_meta_with_vararg_config(self, mock_the_open,
1085+ mock_wrap_exe):
1086 self.config_data['config'] = 'python3 my.py --config'
1087
1088 meta.create(self.config_data, ['amd64'])
1089@@ -294,7 +305,8 @@
1090 mock_wrap_exe.assert_has_calls([
1091 call(
1092 '$SNAP_APP_PATH/bin/bash',
1093- os.path.join(os.path.abspath(os.curdir), 'snap/bin/bash.wrapper'),
1094+ os.path.join(os.path.abspath(os.curdir),
1095+ 'snap/bin/bash.wrapper'),
1096 ),
1097 call(
1098 'python3',
1099@@ -311,7 +323,8 @@
1100
1101 meta.create(self.config_data, ['amd64'])
1102
1103- self.mock_makedirs.assert_called_once_with(self.meta_dir, exist_ok=True)
1104+ self.mock_makedirs.assert_called_once_with(self.meta_dir,
1105+ exist_ok=True)
1106 mock_the_open.assert_has_calls(self.expected_open_calls)
1107
1108
1109
1110=== modified file 'snapcraft/tests/test_plugin.py'
1111--- snapcraft/tests/test_plugin.py 2015-09-22 03:51:37 +0000
1112+++ snapcraft/tests/test_plugin.py 2015-10-05 19:37:43 +0000
1113@@ -76,7 +76,8 @@
1114
1115 include, exclude = plugin._get_file_list(stage_set)
1116
1117- self.assertEqual(include, ['opt/something', 'usr/bin', '-everything', r'\a'])
1118+ self.assertEqual(include, ['opt/something', 'usr/bin',
1119+ '-everything', r'\a'])
1120 self.assertEqual(exclude, ['etc', 'usr/lib/*.a'])
1121
1122 def test_fileset_only_includes(self):
1123@@ -182,7 +183,8 @@
1124 dstdir = tmpdir + '/stage'
1125 os.makedirs(dstdir)
1126
1127- snap_files, snap_dirs = plugin.migratable_filesets(filesets[key]['fileset'], srcdir)
1128+ snap_files, snap_dirs = plugin.migratable_filesets(
1129+ filesets[key]['fileset'], srcdir)
1130 plugin._migrate_files(snap_files, snap_dirs, srcdir, dstdir)
1131
1132 expected = []
1133
1134=== modified file 'snapcraft/tests/test_repo.py'
1135--- snapcraft/tests/test_repo.py 2015-09-23 14:24:04 +0000
1136+++ snapcraft/tests/test_repo.py 2015-10-05 19:37:43 +0000
1137@@ -31,7 +31,8 @@
1138 sources_list = repo._format_sources_list(
1139 repo._DEFAULT_SOURCES, 'amd64', 'vivid')
1140
1141- expected_sources_list = '''deb http://ar.archive.ubuntu.com/ubuntu/ vivid main restricted
1142+ expected_sources_list = \
1143+ '''deb http://ar.archive.ubuntu.com/ubuntu/ vivid main restricted
1144 deb http://ar.archive.ubuntu.com/ubuntu/ vivid-updates main restricted
1145 deb http://ar.archive.ubuntu.com/ubuntu/ vivid universe
1146 deb http://ar.archive.ubuntu.com/ubuntu/ vivid-updates universe
1147@@ -48,7 +49,8 @@
1148 sources_list = repo._format_sources_list(
1149 repo._DEFAULT_SOURCES, 'armhf', 'trusty')
1150
1151- expected_sources_list = '''deb http://ports.ubuntu.com/ubuntu-ports/ trusty main restricted
1152+ expected_sources_list = \
1153+ '''deb http://ports.ubuntu.com/ubuntu-ports/ trusty main restricted
1154 deb http://ports.ubuntu.com/ubuntu-ports/ trusty-updates main restricted
1155 deb http://ports.ubuntu.com/ubuntu-ports/ trusty universe
1156 deb http://ports.ubuntu.com/ubuntu-ports/ trusty-updates universe
1157
1158=== modified file 'snapcraft/tests/test_sources.py'
1159--- snapcraft/tests/test_sources.py 2015-09-01 09:58:55 +0000
1160+++ snapcraft/tests/test_sources.py 2015-10-05 19:37:43 +0000
1161@@ -98,7 +98,8 @@
1162 bzr.pull()
1163
1164 self.mock_run.assert_called_once_with(
1165- ['bzr', 'branch', '-r', 'tag:tag', 'lp:my-source', 'source_dir'], cwd=os.getcwd())
1166+ ['bzr', 'branch', '-r', 'tag:tag', 'lp:my-source',
1167+ 'source_dir'], cwd=os.getcwd())
1168
1169 def test_pull_existing_with_tag(self):
1170 self.mock_path_exists.return_value = True
1171@@ -107,7 +108,8 @@
1172 bzr.pull()
1173
1174 self.mock_run.assert_called_once_with(
1175- ['bzr', 'pull', '-r', 'tag:tag', 'lp:my-source', '-d', 'source_dir'], cwd=os.getcwd())
1176+ ['bzr', 'pull', '-r', 'tag:tag', 'lp:my-source', '-d',
1177+ 'source_dir'], cwd=os.getcwd())
1178
1179 def test_provision(self):
1180 bzr = sources.Bazaar('lp:my-source', 'source_dir')
1181@@ -135,18 +137,21 @@
1182 ['git', 'clone', 'git://my-source', 'source_dir'], cwd=os.getcwd())
1183
1184 def test_pull_branch(self):
1185- git = sources.Git('git://my-source', 'source_dir', source_branch='my-branch')
1186+ git = sources.Git('git://my-source', 'source_dir',
1187+ source_branch='my-branch')
1188 git.pull()
1189
1190 self.mock_run.assert_called_once_with(
1191- ['git', 'clone', '--branch', 'my-branch', 'git://my-source', 'source_dir'], cwd=os.getcwd())
1192+ ['git', 'clone', '--branch', 'my-branch', 'git://my-source',
1193+ 'source_dir'], cwd=os.getcwd())
1194
1195 def test_pull_tag(self):
1196 git = sources.Git('git://my-source', 'source_dir', source_tag='tag')
1197 git.pull()
1198
1199 self.mock_run.assert_called_once_with(
1200- ['git', 'clone', '--branch', 'tag', 'git://my-source', 'source_dir'], cwd=os.getcwd())
1201+ ['git', 'clone', '--branch', 'tag', 'git://my-source',
1202+ 'source_dir'], cwd=os.getcwd())
1203
1204 def test_pull_existing(self):
1205 self.mock_path_exists.return_value = True
1206@@ -155,7 +160,8 @@
1207 git.pull()
1208
1209 self.mock_run.assert_called_once_with(
1210- ['git', '-C', 'source_dir', 'pull', 'git://my-source', 'HEAD'], cwd=os.getcwd())
1211+ ['git', '-C', 'source_dir', 'pull', 'git://my-source',
1212+ 'HEAD'], cwd=os.getcwd())
1213
1214 def test_pull_existing_with_tag(self):
1215 self.mock_path_exists.return_value = True
1216@@ -164,16 +170,19 @@
1217 git.pull()
1218
1219 self.mock_run.assert_called_once_with(
1220- ['git', '-C', 'source_dir', 'pull', 'git://my-source', 'refs/tags/tag'], cwd=os.getcwd())
1221+ ['git', '-C', 'source_dir', 'pull', 'git://my-source',
1222+ 'refs/tags/tag'], cwd=os.getcwd())
1223
1224 def test_pull_existing_with_branch(self):
1225 self.mock_path_exists.return_value = True
1226
1227- git = sources.Git('git://my-source', 'source_dir', source_branch='my-branch')
1228+ git = sources.Git('git://my-source', 'source_dir',
1229+ source_branch='my-branch')
1230 git.pull()
1231
1232 self.mock_run.assert_called_once_with(
1233- ['git', '-C', 'source_dir', 'pull', 'git://my-source', 'refs/heads/my-branch'], cwd=os.getcwd())
1234+ ['git', '-C', 'source_dir', 'pull', 'git://my-source',
1235+ 'refs/heads/my-branch'], cwd=os.getcwd())
1236
1237 def test_provision(self):
1238 bzr = sources.Git('git://my-source', 'source_dir')
1239@@ -184,9 +193,11 @@
1240
1241 def test_init_with_source_branch_and_tag_raises_exception(self):
1242 with self.assertRaises(sources.IncompatibleOptionsError) as raised:
1243- sources.Git('git://mysource', 'source_dir', source_tag='tag', source_branch='branch')
1244+ sources.Git('git://mysource', 'source_dir', source_tag='tag',
1245+ source_branch='branch')
1246
1247- expected_message = 'can\'t specify both source-tag and source-branch for a git source'
1248+ expected_message = \
1249+ 'can\'t specify both source-tag and source-branch for a git source'
1250 self.assertEqual(raised.exception.message, expected_message)
1251
1252
1253@@ -200,18 +211,22 @@
1254 ['hg', 'clone', 'hg://my-source', 'source_dir'], cwd=os.getcwd())
1255
1256 def test_pull_branch(self):
1257- hg = sources.Mercurial('hg://my-source', 'source_dir', source_branch='my-branch')
1258+ hg = sources.Mercurial('hg://my-source', 'source_dir',
1259+ source_branch='my-branch')
1260 hg.pull()
1261
1262 self.mock_run.assert_called_once_with(
1263- ['hg', 'clone', '-u', 'my-branch', 'hg://my-source', 'source_dir'], cwd=os.getcwd())
1264+ ['hg', 'clone', '-u', 'my-branch', 'hg://my-source',
1265+ 'source_dir'], cwd=os.getcwd())
1266
1267 def test_pull_tag(self):
1268- hg = sources.Mercurial('hg://my-source', 'source_dir', source_tag='tag')
1269+ hg = sources.Mercurial('hg://my-source', 'source_dir',
1270+ source_tag='tag')
1271 hg.pull()
1272
1273 self.mock_run.assert_called_once_with(
1274- ['hg', 'clone', '-u', 'tag', 'hg://my-source', 'source_dir'], cwd=os.getcwd())
1275+ ['hg', 'clone', '-u', 'tag', 'hg://my-source',
1276+ 'source_dir'], cwd=os.getcwd())
1277
1278 def test_pull_existing(self):
1279 self.mock_path_exists.return_value = True
1280@@ -225,7 +240,8 @@
1281 def test_pull_existing_with_tag(self):
1282 self.mock_path_exists.return_value = True
1283
1284- hg = sources.Mercurial('hg://my-source', 'source_dir', source_tag='tag')
1285+ hg = sources.Mercurial('hg://my-source', 'source_dir',
1286+ source_tag='tag')
1287 hg.pull()
1288
1289 self.mock_run.assert_called_once_with(
1290@@ -234,11 +250,13 @@
1291 def test_pull_existing_with_branch(self):
1292 self.mock_path_exists.return_value = True
1293
1294- hg = sources.Mercurial('hg://my-source', 'source_dir', source_branch='my-branch')
1295+ hg = sources.Mercurial('hg://my-source', 'source_dir',
1296+ source_branch='my-branch')
1297 hg.pull()
1298
1299 self.mock_run.assert_called_once_with(
1300- ['hg', 'pull', '-b', 'my-branch', 'hg://my-source'], cwd=os.getcwd())
1301+ ['hg', 'pull', '-b', 'my-branch', 'hg://my-source'],
1302+ cwd=os.getcwd())
1303
1304 def test_provision(self):
1305 bzr = sources.Mercurial('hg://my-source', 'source_dir')
1306@@ -249,9 +267,12 @@
1307
1308 def test_init_with_source_branch_and_tag_raises_exception(self):
1309 with self.assertRaises(sources.IncompatibleOptionsError) as raised:
1310- sources.Mercurial('hg://mysource', 'source_dir', source_tag='tag', source_branch='branch')
1311+ sources.Mercurial('hg://mysource', 'source_dir', source_tag='tag',
1312+ source_branch='branch')
1313
1314- expected_message = 'can\'t specify both source-tag and source-branch for a mercurial source'
1315+ expected_message = (
1316+ 'can\'t specify both source-tag and source-branch for a mercurial '
1317+ 'source')
1318 self.assertEqual(raised.exception.message, expected_message)
1319
1320
1321@@ -288,7 +309,8 @@
1322 local.provision('dst')
1323
1324 self.mock_rmdir.assert_called_once_with('dst')
1325- self.mock_symlink.assert_called_once_with('/home/ubuntu/sources/snap/source', 'dst')
1326+ self.mock_symlink.assert_called_once_with(
1327+ '/home/ubuntu/sources/snap/source', 'dst')
1328
1329 def test_provision_when_target_is_file(self):
1330 self.mock_isdir.return_value = False
1331@@ -297,4 +319,5 @@
1332 local.provision('dst')
1333
1334 self.mock_remove.assert_called_once_with('dst')
1335- self.mock_symlink.assert_called_once_with('/home/ubuntu/sources/snap/source', 'dst')
1336+ self.mock_symlink.assert_called_once_with(
1337+ '/home/ubuntu/sources/snap/source', 'dst')
1338
1339=== modified file 'snapcraft/tests/test_yaml.py'
1340--- snapcraft/tests/test_yaml.py 2015-10-01 08:54:15 +0000
1341+++ snapcraft/tests/test_yaml.py 2015-10-05 19:37:43 +0000
1342@@ -101,7 +101,8 @@
1343 self.useFixture(fake_logger)
1344
1345 # no snapcraft.yaml
1346- with self.assertRaises(snapcraft.yaml.SnapcraftYamlFileError) as raised:
1347+ with self.assertRaises(
1348+ snapcraft.yaml.SnapcraftYamlFileError) as raised:
1349 snapcraft.yaml.Config()
1350
1351 self.assertEqual(raised.exception.file, 'snapcraft.yaml')
1352@@ -130,7 +131,9 @@
1353 with self.assertRaises(snapcraft.yaml.SnapcraftLogicError) as raised:
1354 snapcraft.yaml.Config()
1355
1356- self.assertEqual(raised.exception.message, 'circular dependency chain found in parts definition')
1357+ self.assertEqual(
1358+ raised.exception.message,
1359+ 'circular dependency chain found in parts definition')
1360 self.assertFalse(self.mock_wiki.get_part.called)
1361
1362 @unittest.mock.patch('snapcraft.yaml.Config.load_plugin')
1363@@ -153,7 +156,8 @@
1364 with self.assertRaises(snapcraft.yaml.SnapcraftSchemaError) as raised:
1365 snapcraft.yaml.Config()
1366
1367- self.assertEqual(raised.exception.message, '\'name\' is a required property')
1368+ self.assertEqual(raised.exception.message,
1369+ '\'name\' is a required property')
1370
1371 @unittest.mock.patch('snapcraft.yaml.Config.load_plugin')
1372 def test_invalid_yaml_invalid_name_as_number(self, mock_loadPlugin):
1373@@ -175,7 +179,8 @@
1374 with self.assertRaises(snapcraft.yaml.SnapcraftSchemaError) as raised:
1375 snapcraft.yaml.Config()
1376
1377- self.assertEqual(raised.exception.message, '1 is not of type \'string\'')
1378+ self.assertEqual(raised.exception.message,
1379+ '1 is not of type \'string\'')
1380
1381 @unittest.mock.patch('snapcraft.yaml.Config.load_plugin')
1382 def test_invalid_yaml_invalid_name_chars(self, mock_loadPlugin):
1383@@ -197,7 +202,9 @@
1384 with self.assertRaises(snapcraft.yaml.SnapcraftSchemaError) as raised:
1385 snapcraft.yaml.Config()
1386
1387- self.assertEqual(raised.exception.message, '\'myapp@me_1.0\' does not match \'^[a-z0-9][a-z0-9+-]*$\'')
1388+ self.assertEqual(
1389+ raised.exception.message,
1390+ '\'myapp@me_1.0\' does not match \'^[a-z0-9][a-z0-9+-]*$\'')
1391
1392 @unittest.mock.patch('snapcraft.yaml.Config.load_plugin')
1393 def test_deprecation_for_type(self, mock_loadPlugin):
1394@@ -240,7 +247,9 @@
1395 with self.assertRaises(snapcraft.yaml.SnapcraftSchemaError) as raised:
1396 snapcraft.yaml.Config()
1397
1398- self.assertEqual(raised.exception.message, '\'description\' is a required property')
1399+ self.assertEqual(
1400+ raised.exception.message,
1401+ '\'description\' is a required property')
1402
1403 @unittest.mock.patch('snapcraft.yaml.Config.load_plugin')
1404 def test_tab_in_yaml(self, mock_loadPlugin):
1405@@ -296,7 +305,8 @@
1406 snapcraft.yaml.Config()
1407
1408 mock_loadPlugin.assert_called_with('part1', 'go', {
1409- 'snap': ['/usr/lib/wget.so', '/usr/bin/wget', '/usr/share/my-icon.png'],
1410+ 'snap': ['/usr/lib/wget.so', '/usr/bin/wget',
1411+ '/usr/share/my-icon.png'],
1412 'stage-packages': ['fswebcam'],
1413 'stage': ['/usr/lib/wget.so', '/usr/bin/wget', '/usr/lib/wget.a'],
1414 })
1415@@ -333,11 +343,13 @@
1416 with self.subTest(key=key):
1417 del data[key]
1418
1419- with self.assertRaises(snapcraft.yaml.SnapcraftSchemaError) as raised:
1420+ with self.assertRaises(
1421+ snapcraft.yaml.SnapcraftSchemaError) as raised:
1422 snapcraft.yaml._validate_snapcraft_yaml(data)
1423
1424 expected_message = '\'{}\' is a required property'.format(key)
1425- self.assertEqual(raised.exception.message, expected_message, msg=data)
1426+ self.assertEqual(raised.exception.message, expected_message,
1427+ msg=data)
1428
1429 def test_invalid_names(self):
1430 invalid_names = [
1431@@ -351,11 +363,15 @@
1432 with self.subTest(key=name):
1433 data['name'] = name
1434
1435- with self.assertRaises(snapcraft.yaml.SnapcraftSchemaError) as raised:
1436+ with self.assertRaises(
1437+ snapcraft.yaml.SnapcraftSchemaError) as raised:
1438 snapcraft.yaml._validate_snapcraft_yaml(data)
1439
1440- expected_message = '\'{}\' does not match \'^[a-z0-9][a-z0-9+-]*$\''.format(name)
1441- self.assertEqual(raised.exception.message, expected_message, msg=data)
1442+ expected_message = (
1443+ '\'{}\' does not match \'^[a-z0-9][a-z0-9+-]*$\'').format(
1444+ name)
1445+ self.assertEqual(raised.exception.message, expected_message,
1446+ msg=data)
1447
1448 def test_summary_too_long(self):
1449 self.data['summary'] = 'a' * 80
1450@@ -363,7 +379,8 @@
1451 snapcraft.yaml._validate_snapcraft_yaml(self.data)
1452
1453 expected_message = '\'{}\' is too long'.format(self.data['summary'])
1454- self.assertEqual(raised.exception.message, expected_message, msg=self.data)
1455+ self.assertEqual(raised.exception.message, expected_message,
1456+ msg=self.data)
1457
1458 def test_valid_types(self):
1459 self.data['type'] = 'app'
1460@@ -386,11 +403,14 @@
1461 with self.subTest(key=t):
1462 data['type'] = t
1463
1464- with self.assertRaises(snapcraft.yaml.SnapcraftSchemaError) as raised:
1465+ with self.assertRaises(
1466+ snapcraft.yaml.SnapcraftSchemaError) as raised:
1467 snapcraft.yaml._validate_snapcraft_yaml(data)
1468
1469- expected_message = '\'{}\' is not one of [\'app\', \'framework\']'.format(t)
1470- self.assertEqual(raised.exception.message, expected_message, msg=data)
1471+ expected_message = ('\'{}\' is not one of ' +
1472+ '[\'app\', \'framework\']').format(t)
1473+ self.assertEqual(raised.exception.message, expected_message,
1474+ msg=data)
1475
1476 def test_valid_services(self):
1477 self.data['services'] = {
1478@@ -416,11 +436,14 @@
1479 with self.subTest(key=t):
1480 data['binaries'] = {t: invalid_names[t]}
1481
1482- with self.assertRaises(snapcraft.yaml.SnapcraftSchemaError) as raised:
1483+ with self.assertRaises(
1484+ snapcraft.yaml.SnapcraftSchemaError) as raised:
1485 snapcraft.yaml._validate_snapcraft_yaml(data)
1486
1487- expected_message = 'Additional properties are not allowed (\'{}\' was unexpected)'.format(t)
1488- self.assertEqual(raised.exception.message, expected_message, msg=data)
1489+ expected_message = ('Additional properties are not allowed '
1490+ '(\'{}\' was unexpected)').format(t)
1491+ self.assertEqual(raised.exception.message, expected_message,
1492+ msg=data)
1493
1494 def test_invalid_service_names(self):
1495 invalid_names = {
1496@@ -435,11 +458,14 @@
1497 with self.subTest(key=t):
1498 data['services'] = {t: invalid_names[t]}
1499
1500- with self.assertRaises(snapcraft.yaml.SnapcraftSchemaError) as raised:
1501+ with self.assertRaises(
1502+ snapcraft.yaml.SnapcraftSchemaError) as raised:
1503 snapcraft.yaml._validate_snapcraft_yaml(data)
1504
1505- expected_message = 'Additional properties are not allowed (\'{}\' was unexpected)'.format(t)
1506- self.assertEqual(raised.exception.message, expected_message, msg=data)
1507+ expected_message = ('Additional properties are not allowed '
1508+ '(\'{}\' was unexpected)').format(t)
1509+ self.assertEqual(raised.exception.message, expected_message,
1510+ msg=data)
1511
1512 def test_services_required_properties(self):
1513 self.data['services'] = {'service1': {}}
1514@@ -448,19 +474,24 @@
1515 snapcraft.yaml._validate_snapcraft_yaml(self.data)
1516
1517 expected_message = '\'start\' is a required property'
1518- self.assertEqual(raised.exception.message, expected_message, msg=self.data)
1519+ self.assertEqual(raised.exception.message, expected_message,
1520+ msg=self.data)
1521
1522 def test_schema_file_not_found(self):
1523 mock_the_open = unittest.mock.mock_open()
1524 mock_the_open.side_effect = FileNotFoundError()
1525
1526- with unittest.mock.patch('snapcraft.yaml.open', mock_the_open, create=True):
1527- with self.assertRaises(snapcraft.yaml.SnapcraftSchemaError) as raised:
1528+ with unittest.mock.patch('snapcraft.yaml.open', mock_the_open,
1529+ create=True):
1530+ with self.assertRaises(
1531+ snapcraft.yaml.SnapcraftSchemaError) as raised:
1532 snapcraft.yaml._validate_snapcraft_yaml(self.data)
1533
1534- expected_path = os.path.join(snapcraft.common.get_schemadir(), 'snapcraft.yaml')
1535+ expected_path = os.path.join(snapcraft.common.get_schemadir(),
1536+ 'snapcraft.yaml')
1537 mock_the_open.assert_called_once_with(expected_path)
1538- expected_message = 'snapcraft validation file is missing from installation path'
1539+ expected_message = ('snapcraft validation file is missing from '
1540+ 'installation path')
1541 self.assertEqual(raised.exception.message, expected_message)
1542
1543 def test_icon_missing(self):
1544@@ -470,7 +501,8 @@
1545 snapcraft.yaml._validate_snapcraft_yaml(self.data)
1546
1547 expected_message = '\'my-icon.png\' is not a \'icon-path\''
1548- self.assertEqual(raised.exception.message, expected_message, msg=self.data)
1549+ self.assertEqual(raised.exception.message, expected_message,
1550+ msg=self.data)
1551
1552
1553 class TestFilesets(TestCase):
1554
1555=== modified file 'snapcraft/yaml.py'
1556--- snapcraft/yaml.py 2015-10-02 18:25:33 +0000
1557+++ snapcraft/yaml.py 2015-10-05 19:37:43 +0000
1558@@ -145,14 +145,16 @@
1559 present = True
1560 break
1561 if not present:
1562- new_parts.append(self.load_plugin(required_part, required_part, {}))
1563+ new_parts.append(self.load_plugin(required_part,
1564+ required_part, {}))
1565
1566 def _compute_part_dependencies(self, after_requests):
1567 '''Gather the lists of dependencies and adds to all_parts.'''
1568 w = snapcraft.wiki.Wiki()
1569
1570 for part in self.all_parts:
1571- dep_names = part.config.get('requires', []) + after_requests.get(part.names()[0], [])
1572+ dep_names = part.config.get('requires', []) + \
1573+ after_requests.get(part.names()[0], [])
1574 for dep in dep_names:
1575 found = False
1576 for i in range(len(self.all_parts)):
1577@@ -164,9 +166,11 @@
1578 wiki_part = w.get_part(dep)
1579 found = True if wiki_part else False
1580 if found:
1581- part.deps.append(self.load_plugin(dep, wiki_part['plugin'], wiki_part))
1582+ part.deps.append(self.load_plugin(
1583+ dep, wiki_part['plugin'], wiki_part))
1584 if not found:
1585- raise SnapcraftLogicError('part name missing {}'.format(dep))
1586+ raise SnapcraftLogicError(
1587+ 'part name missing {}'.format(dep))
1588
1589 def _sort_parts(self):
1590 '''Performs an inneficient but easy to follow sorting of parts.'''
1591@@ -184,14 +188,16 @@
1592 top_part = part
1593 break
1594 if not top_part:
1595- raise SnapcraftLogicError('circular dependency chain found in parts definition')
1596+ raise SnapcraftLogicError(
1597+ 'circular dependency chain found in parts definition')
1598 sorted_parts = [top_part] + sorted_parts
1599 self.all_parts.remove(top_part)
1600
1601 return sorted_parts
1602
1603 def load_plugin(self, part_name, plugin_name, properties, load_code=True):
1604- part = snapcraft.plugin.load_plugin(part_name, plugin_name, properties, load_code=load_code)
1605+ part = snapcraft.plugin.load_plugin(part_name, plugin_name,
1606+ properties, load_code=load_code)
1607
1608 self.build_tools += part.config.get('build-packages', [])
1609 self.all_parts.append(part)
1610@@ -280,15 +286,18 @@
1611
1612
1613 def _validate_snapcraft_yaml(snapcraft_yaml):
1614- schema_file = os.path.abspath(os.path.join(common.get_schemadir(), 'snapcraft.yaml'))
1615+ schema_file = os.path.abspath(os.path.join(common.get_schemadir(),
1616+ 'snapcraft.yaml'))
1617
1618 try:
1619 with open(schema_file) as fp:
1620 schema = yaml.load(fp)
1621 format_check = jsonschema.FormatChecker()
1622- jsonschema.validate(snapcraft_yaml, schema, format_checker=format_check)
1623+ jsonschema.validate(snapcraft_yaml, schema,
1624+ format_checker=format_check)
1625 except FileNotFoundError:
1626- raise SnapcraftSchemaError('snapcraft validation file is missing from installation path')
1627+ raise SnapcraftSchemaError(
1628+ 'snapcraft validation file is missing from installation path')
1629 except jsonschema.ValidationError as e:
1630 raise SnapcraftSchemaError(e.message)
1631

Subscribers

People subscribed via source and target branches

to all changes: