Merge lp:~sergiusens/snapcraft/icon-meta into lp:~snappy-dev/snapcraft/core

Proposed by Sergio Schvezov
Status: Merged
Approved by: John Lenton
Approved revision: 155
Merged at revision: 143
Proposed branch: lp:~sergiusens/snapcraft/icon-meta
Merge into: lp:~snappy-dev/snapcraft/core
Prerequisite: lp:~sergiusens/snapcraft/testing-fixes
Diff against target: 739 lines (+101/-21)
32 files modified
examples/godd/snapcraft.yaml (+1/-0)
examples/gopaste/snapcraft.yaml (+1/-0)
examples/java-hello-world/snapcraft.yaml (+1/-0)
examples/libpipeline/snapcraft.yaml (+1/-0)
examples/py2-project/snapcraft.yaml (+1/-0)
examples/py3-project/snapcraft.yaml (+1/-0)
examples/qmldemo/snapcraft.yaml (+1/-0)
examples/tomcat-maven-webapp/snapcraft.yaml (+1/-0)
examples/webcam-webui-snap/snapcraft.yaml (+1/-0)
examples/wget-deb/snapcraft.yaml (+1/-0)
integration-tests/data/assemble/snapcraft.yaml (+1/-0)
integration-tests/data/bzr-head/snapcraft.yaml (+1/-0)
integration-tests/data/bzr-tag/snapcraft.yaml (+1/-0)
integration-tests/data/conflicts/snapcraft.yaml (+1/-0)
integration-tests/data/dependencies/snapcraft.yaml (+1/-0)
integration-tests/data/git-branch/snapcraft.yaml (+1/-0)
integration-tests/data/git-head/snapcraft.yaml (+1/-0)
integration-tests/data/git-tag/snapcraft.yaml (+1/-0)
integration-tests/data/hg-branch/snapcraft.yaml (+1/-0)
integration-tests/data/hg-head/snapcraft.yaml (+1/-0)
integration-tests/data/hg-tag/snapcraft.yaml (+1/-0)
integration-tests/data/local-plugin/snapcraft.yaml (+1/-0)
integration-tests/data/local-source/snapcraft.yaml (+1/-0)
integration-tests/data/simple-cmake/snapcraft.yaml (+1/-0)
integration-tests/data/simple-copy/snapcraft.yaml (+1/-0)
integration-tests/data/simple-make/snapcraft.yaml (+1/-0)
integration-tests/data/simple-tar/snapcraft.yaml (+1/-0)
schema/snapcraft.yaml (+5/-0)
snapcraft/meta.py (+11/-0)
snapcraft/tests/test_meta.py (+20/-8)
snapcraft/tests/test_yaml.py (+30/-12)
snapcraft/yaml.py (+8/-1)
To merge this branch: bzr merge lp:~sergiusens/snapcraft/icon-meta
Reviewer Review Type Date Requested Status
John Lenton (community) Approve
Leo Arias (community) Needs Fixing
Review via email: mp+269446@code.launchpad.net

Commit message

icon support for snapcraft.yaml

To post a comment you must log in.
lp:~sergiusens/snapcraft/icon-meta updated
154. By Sergio Schvezov

oops moment

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

You forgot to add the icon.png files for the integration-tests. They all fail with:

Issues while validating snapcraft.yaml: 'icon.png' is not a 'icon-path'

And you are missing the assertion on the copy call:

+ icon_path = os.path.join(meta_dir, 'my-icon.png')
+ self.mock_copyfile.assert_called_once_with('my-icon.png', icon_path)

review: Needs Fixing
Revision history for this message
Sergio Schvezov (sergiusens) wrote :

doh, thanks, done

On Thu, Aug 27, 2015 at 7:51 PM, Leo Arias <email address hidden> wrote:

> Review: Needs Fixing
>
> You forgot to add the icon.png files for the integration-tests. They all
> fail with:
>
> Issues while validating snapcraft.yaml: 'icon.png' is not a 'icon-path'
>
> And you are missing the assertion on the copy call:
>
> + icon_path = os.path.join(meta_dir, 'my-icon.png')
> + self.mock_copyfile.assert_called_once_with('my-icon.png',
> icon_path)
>
> --
> https://code.launchpad.net/~sergiusens/snapcraft/icon-meta/+merge/269446
> You are the owner of lp:~sergiusens/snapcraft/icon-meta.
>
> Launchpad-Message-Rationale: Owner
> Launchpad-Notification-Type: code-review
> Launchpad-Branch: ~sergiusens/snapcraft/icon-meta
> Launchpad-Project: snapcraft
>

lp:~sergiusens/snapcraft/icon-meta updated
155. By Sergio Schvezov

da icons

Revision history for this message
John Lenton (chipaca) wrote :

Awesome

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== added file 'examples/godd/icon.png'
0Binary files examples/godd/icon.png 1970-01-01 00:00:00 +0000 and examples/godd/icon.png 2015-08-28 00:36:51 +0000 differ0Binary files examples/godd/icon.png 1970-01-01 00:00:00 +0000 and examples/godd/icon.png 2015-08-28 00:36:51 +0000 differ
=== modified file 'examples/godd/snapcraft.yaml'
--- examples/godd/snapcraft.yaml 2015-08-25 18:53:18 +0000
+++ examples/godd/snapcraft.yaml 2015-08-28 00:36:51 +0000
@@ -5,6 +5,7 @@
5 - name: ./bin/godd5 - name: ./bin/godd
6summary: Simple dd like tool6summary: Simple dd like tool
7description: written in go so it is self contained and really portable, you would need to use hw-assign to access devices.7description: written in go so it is self contained and really portable, you would need to use hw-assign to access devices.
8icon: icon.png
89
9parts:10parts:
10 godd:11 godd:
1112
=== added file 'examples/gopaste/icon.png'
12Binary files examples/gopaste/icon.png 1970-01-01 00:00:00 +0000 and examples/gopaste/icon.png 2015-08-28 00:36:51 +0000 differ13Binary files examples/gopaste/icon.png 1970-01-01 00:00:00 +0000 and examples/gopaste/icon.png 2015-08-28 00:36:51 +0000 differ
=== modified file 'examples/gopaste/snapcraft.yaml'
--- examples/gopaste/snapcraft.yaml 2015-08-25 18:53:18 +0000
+++ examples/gopaste/snapcraft.yaml 2015-08-28 00:36:51 +0000
@@ -7,6 +7,7 @@
7 start: bin/gopaste7 start: bin/gopaste
8summary: Simple pasting tool8summary: Simple pasting tool
9description: Runs a service that allows you to paste to and share.9description: Runs a service that allows you to paste to and share.
10icon: icon.png
1011
11parts:12parts:
12 gopaste:13 gopaste:
1314
=== added file 'examples/java-hello-world/icon.png'
14Binary files examples/java-hello-world/icon.png 1970-01-01 00:00:00 +0000 and examples/java-hello-world/icon.png 2015-08-28 00:36:51 +0000 differ15Binary files examples/java-hello-world/icon.png 1970-01-01 00:00:00 +0000 and examples/java-hello-world/icon.png 2015-08-28 00:36:51 +0000 differ
=== modified file 'examples/java-hello-world/snapcraft.yaml'
--- examples/java-hello-world/snapcraft.yaml 2015-08-25 18:53:18 +0000
+++ examples/java-hello-world/snapcraft.yaml 2015-08-28 00:36:51 +0000
@@ -6,6 +6,7 @@
6 exec: bin/wrapper6 exec: bin/wrapper
7summary: A java exmaple7summary: A java exmaple
8description: this is not much more than an example8description: this is not much more than an example
9icon: icon.png
910
10parts:11parts:
11 local:12 local:
1213
=== added file 'examples/libpipeline/icon.png'
13Binary files examples/libpipeline/icon.png 1970-01-01 00:00:00 +0000 and examples/libpipeline/icon.png 2015-08-28 00:36:51 +0000 differ14Binary files examples/libpipeline/icon.png 1970-01-01 00:00:00 +0000 and examples/libpipeline/icon.png 2015-08-28 00:36:51 +0000 differ
=== modified file 'examples/libpipeline/snapcraft.yaml'
--- examples/libpipeline/snapcraft.yaml 2015-08-25 18:53:18 +0000
+++ examples/libpipeline/snapcraft.yaml 2015-08-28 00:36:51 +0000
@@ -5,6 +5,7 @@
5 - name: ./bin/pipelinetest5 - name: ./bin/pipelinetest
6summary: Libpipeline example6summary: Libpipeline example
7description: this is an example package of an autotools project built with snapcraft using7description: this is an example package of an autotools project built with snapcraft using
8icon: icon.png
89
9parts:10parts:
10 pipelinetest:11 pipelinetest:
1112
=== added file 'examples/py2-project/icon.png'
12Binary files examples/py2-project/icon.png 1970-01-01 00:00:00 +0000 and examples/py2-project/icon.png 2015-08-28 00:36:51 +0000 differ13Binary files examples/py2-project/icon.png 1970-01-01 00:00:00 +0000 and examples/py2-project/icon.png 2015-08-28 00:36:51 +0000 differ
=== modified file 'examples/py2-project/snapcraft.yaml'
--- examples/py2-project/snapcraft.yaml 2015-08-25 18:53:18 +0000
+++ examples/py2-project/snapcraft.yaml 2015-08-28 00:36:51 +0000
@@ -5,6 +5,7 @@
5 - name: ./bin/sha3sum5 - name: ./bin/sha3sum
6summary: A python sha3 implementation6summary: A python sha3 implementation
7description: A python2 project using snapcraft7description: A python2 project using snapcraft
8icon: icon.png
89
9parts:10parts:
10 spongeshaker:11 spongeshaker:
1112
=== added file 'examples/py3-project/icon.png'
12Binary files examples/py3-project/icon.png 1970-01-01 00:00:00 +0000 and examples/py3-project/icon.png 2015-08-28 00:36:51 +0000 differ13Binary files examples/py3-project/icon.png 1970-01-01 00:00:00 +0000 and examples/py3-project/icon.png 2015-08-28 00:36:51 +0000 differ
=== modified file 'examples/py3-project/snapcraft.yaml'
--- examples/py3-project/snapcraft.yaml 2015-08-25 18:53:18 +0000
+++ examples/py3-project/snapcraft.yaml 2015-08-28 00:36:51 +0000
@@ -5,6 +5,7 @@
5 - name: bin/sha3sum5 - name: bin/sha3sum
6summary: A python sha3 implementation6summary: A python sha3 implementation
7description: A python2 project using snapcraft7description: A python2 project using snapcraft
8icon: icon.png
89
9parts:10parts:
10 spongeshaker:11 spongeshaker:
1112
=== added file 'examples/qmldemo/icon.png'
12Binary files examples/qmldemo/icon.png 1970-01-01 00:00:00 +0000 and examples/qmldemo/icon.png 2015-08-28 00:36:51 +0000 differ13Binary files examples/qmldemo/icon.png 1970-01-01 00:00:00 +0000 and examples/qmldemo/icon.png 2015-08-28 00:36:51 +0000 differ
=== modified file 'examples/qmldemo/snapcraft.yaml'
--- examples/qmldemo/snapcraft.yaml 2015-08-25 18:53:18 +0000
+++ examples/qmldemo/snapcraft.yaml 2015-08-28 00:36:51 +0000
@@ -11,6 +11,7 @@
11 - network-client11 - network-client
12summary: qml demo12summary: qml demo
13description: An example of shipping a usable QML file in a snap using the QML plugin.13description: An example of shipping a usable QML file in a snap using the QML plugin.
14icon: icon.png
1415
15parts:16parts:
16 qml:17 qml:
1718
=== added file 'examples/tomcat-maven-webapp/icon.png'
18Binary files examples/tomcat-maven-webapp/icon.png 1970-01-01 00:00:00 +0000 and examples/tomcat-maven-webapp/icon.png 2015-08-28 00:36:51 +0000 differ19Binary files examples/tomcat-maven-webapp/icon.png 1970-01-01 00:00:00 +0000 and examples/tomcat-maven-webapp/icon.png 2015-08-28 00:36:51 +0000 differ
=== modified file 'examples/tomcat-maven-webapp/snapcraft.yaml'
--- examples/tomcat-maven-webapp/snapcraft.yaml 2015-08-25 18:53:18 +0000
+++ examples/tomcat-maven-webapp/snapcraft.yaml 2015-08-28 00:36:51 +0000
@@ -11,6 +11,7 @@
11 - network-service11 - network-service
12summary: Demo of Tomcat-hosted Webapp12summary: Demo of Tomcat-hosted Webapp
13description: This is a demo snap of a Tomcat-hosted webapp produced by snapcraft with maven.13description: This is a demo snap of a Tomcat-hosted webapp produced by snapcraft with maven.
14icon: icon.png
1415
15parts:16parts:
16 webapp:17 webapp:
1718
=== added file 'examples/webcam-webui-snap/icon.png'
18Binary files examples/webcam-webui-snap/icon.png 1970-01-01 00:00:00 +0000 and examples/webcam-webui-snap/icon.png 2015-08-28 00:36:51 +0000 differ19Binary files examples/webcam-webui-snap/icon.png 1970-01-01 00:00:00 +0000 and examples/webcam-webui-snap/icon.png 2015-08-28 00:36:51 +0000 differ
=== modified file 'examples/webcam-webui-snap/snapcraft.yaml'
--- examples/webcam-webui-snap/snapcraft.yaml 2015-08-25 18:53:18 +0000
+++ examples/webcam-webui-snap/snapcraft.yaml 2015-08-28 00:36:51 +0000
@@ -7,6 +7,7 @@
7 security-template: unconfined7 security-template: unconfined
8summary: Webcam web UI8summary: Webcam web UI
9description: Exposes your webcam over a web UI9description: Exposes your webcam over a web UI
10icon: icon.png
1011
11parts:12parts:
12 golang-static-http:13 golang-static-http:
1314
=== added file 'examples/wget-deb/icon.png'
14Binary files examples/wget-deb/icon.png 1970-01-01 00:00:00 +0000 and examples/wget-deb/icon.png 2015-08-28 00:36:51 +0000 differ15Binary files examples/wget-deb/icon.png 1970-01-01 00:00:00 +0000 and examples/wget-deb/icon.png 2015-08-28 00:36:51 +0000 differ
=== modified file 'examples/wget-deb/snapcraft.yaml'
--- examples/wget-deb/snapcraft.yaml 2015-08-25 18:53:18 +0000
+++ examples/wget-deb/snapcraft.yaml 2015-08-28 00:36:51 +0000
@@ -5,6 +5,7 @@
5 - name: usr/bin/wget5 - name: usr/bin/wget
6summary: wget for snappy6summary: wget for snappy
7description: a basic example from ubuntu packages7description: a basic example from ubuntu packages
8icon: icon.png
89
9parts:10parts:
10 wget:11 wget:
1112
=== added file 'integration-tests/data/assemble/icon.png'
12Binary files integration-tests/data/assemble/icon.png 1970-01-01 00:00:00 +0000 and integration-tests/data/assemble/icon.png 2015-08-28 00:36:51 +0000 differ13Binary files integration-tests/data/assemble/icon.png 1970-01-01 00:00:00 +0000 and integration-tests/data/assemble/icon.png 2015-08-28 00:36:51 +0000 differ
=== modified file 'integration-tests/data/assemble/snapcraft.yaml'
--- integration-tests/data/assemble/snapcraft.yaml 2015-08-24 18:27:50 +0000
+++ integration-tests/data/assemble/snapcraft.yaml 2015-08-28 00:36:51 +0000
@@ -3,6 +3,7 @@
3vendor: Sergio Schvezov <sergio.schvezov@canonical.com>3vendor: Sergio Schvezov <sergio.schvezov@canonical.com>
4summary: one line summary4summary: one line summary
5description: a longer description5description: a longer description
6icon: icon.png
6binaries:7binaries:
7 - exec: binary18 - exec: binary1
8 name: assemble-bin9 name: assemble-bin
910
=== added file 'integration-tests/data/bzr-head/icon.png'
10Binary files integration-tests/data/bzr-head/icon.png 1970-01-01 00:00:00 +0000 and integration-tests/data/bzr-head/icon.png 2015-08-28 00:36:51 +0000 differ11Binary files integration-tests/data/bzr-head/icon.png 1970-01-01 00:00:00 +0000 and integration-tests/data/bzr-head/icon.png 2015-08-28 00:36:51 +0000 differ
=== modified file 'integration-tests/data/bzr-head/snapcraft.yaml'
--- integration-tests/data/bzr-head/snapcraft.yaml 2015-08-24 18:27:50 +0000
+++ integration-tests/data/bzr-head/snapcraft.yaml 2015-08-28 00:36:51 +0000
@@ -3,6 +3,7 @@
3vendor: Sergio Schvezov <sergio.schvezov@canonical.com>3vendor: Sergio Schvezov <sergio.schvezov@canonical.com>
4summary: one line summary4summary: one line summary
5description: a longer description5description: a longer description
6icon: icon.png
67
7parts:8parts:
8 bzr:9 bzr:
910
=== added file 'integration-tests/data/bzr-tag/icon.png'
10Binary files integration-tests/data/bzr-tag/icon.png 1970-01-01 00:00:00 +0000 and integration-tests/data/bzr-tag/icon.png 2015-08-28 00:36:51 +0000 differ11Binary files integration-tests/data/bzr-tag/icon.png 1970-01-01 00:00:00 +0000 and integration-tests/data/bzr-tag/icon.png 2015-08-28 00:36:51 +0000 differ
=== modified file 'integration-tests/data/bzr-tag/snapcraft.yaml'
--- integration-tests/data/bzr-tag/snapcraft.yaml 2015-08-24 18:27:50 +0000
+++ integration-tests/data/bzr-tag/snapcraft.yaml 2015-08-28 00:36:51 +0000
@@ -3,6 +3,7 @@
3vendor: Sergio Schvezov <sergio.schvezov@canonical.com>3vendor: Sergio Schvezov <sergio.schvezov@canonical.com>
4summary: one line summary4summary: one line summary
5description: a longer description5description: a longer description
6icon: icon.png
67
7parts:8parts:
8 bzr:9 bzr:
910
=== added file 'integration-tests/data/conflicts/icon.png'
10Binary files integration-tests/data/conflicts/icon.png 1970-01-01 00:00:00 +0000 and integration-tests/data/conflicts/icon.png 2015-08-28 00:36:51 +0000 differ11Binary files integration-tests/data/conflicts/icon.png 1970-01-01 00:00:00 +0000 and integration-tests/data/conflicts/icon.png 2015-08-28 00:36:51 +0000 differ
=== modified file 'integration-tests/data/conflicts/snapcraft.yaml'
--- integration-tests/data/conflicts/snapcraft.yaml 2015-08-24 18:27:50 +0000
+++ integration-tests/data/conflicts/snapcraft.yaml 2015-08-28 00:36:51 +0000
@@ -3,6 +3,7 @@
3vendor: Sergio Schvezov <sergio.schvezov@canonical.com>3vendor: Sergio Schvezov <sergio.schvezov@canonical.com>
4summary: one line summary4summary: one line summary
5description: a longer description5description: a longer description
6icon: icon.png
67
7parts:8parts:
8 p1:9 p1:
910
=== added file 'integration-tests/data/dependencies/icon.png'
10Binary files integration-tests/data/dependencies/icon.png 1970-01-01 00:00:00 +0000 and integration-tests/data/dependencies/icon.png 2015-08-28 00:36:51 +0000 differ11Binary files integration-tests/data/dependencies/icon.png 1970-01-01 00:00:00 +0000 and integration-tests/data/dependencies/icon.png 2015-08-28 00:36:51 +0000 differ
=== modified file 'integration-tests/data/dependencies/snapcraft.yaml'
--- integration-tests/data/dependencies/snapcraft.yaml 2015-08-24 18:27:50 +0000
+++ integration-tests/data/dependencies/snapcraft.yaml 2015-08-28 00:36:51 +0000
@@ -3,6 +3,7 @@
3vendor: Sergio Schvezov <sergio.schvezov@canonical.com>3vendor: Sergio Schvezov <sergio.schvezov@canonical.com>
4summary: one line summary4summary: one line summary
5description: a longer description5description: a longer description
6icon: icon.png
67
7parts:8parts:
8 p1:9 p1:
910
=== added file 'integration-tests/data/git-branch/icon.png'
10Binary files integration-tests/data/git-branch/icon.png 1970-01-01 00:00:00 +0000 and integration-tests/data/git-branch/icon.png 2015-08-28 00:36:51 +0000 differ11Binary files integration-tests/data/git-branch/icon.png 1970-01-01 00:00:00 +0000 and integration-tests/data/git-branch/icon.png 2015-08-28 00:36:51 +0000 differ
=== modified file 'integration-tests/data/git-branch/snapcraft.yaml'
--- integration-tests/data/git-branch/snapcraft.yaml 2015-08-24 18:27:50 +0000
+++ integration-tests/data/git-branch/snapcraft.yaml 2015-08-28 00:36:51 +0000
@@ -3,6 +3,7 @@
3vendor: Sergio Schvezov <sergio.schvezov@canonical.com>3vendor: Sergio Schvezov <sergio.schvezov@canonical.com>
4summary: one line summary4summary: one line summary
5description: a longer description5description: a longer description
6icon: icon.png
67
7parts:8parts:
8 git:9 git:
910
=== added file 'integration-tests/data/git-head/icon.png'
10Binary files integration-tests/data/git-head/icon.png 1970-01-01 00:00:00 +0000 and integration-tests/data/git-head/icon.png 2015-08-28 00:36:51 +0000 differ11Binary files integration-tests/data/git-head/icon.png 1970-01-01 00:00:00 +0000 and integration-tests/data/git-head/icon.png 2015-08-28 00:36:51 +0000 differ
=== modified file 'integration-tests/data/git-head/snapcraft.yaml'
--- integration-tests/data/git-head/snapcraft.yaml 2015-08-24 18:27:50 +0000
+++ integration-tests/data/git-head/snapcraft.yaml 2015-08-28 00:36:51 +0000
@@ -3,6 +3,7 @@
3vendor: Sergio Schvezov <sergio.schvezov@canonical.com>3vendor: Sergio Schvezov <sergio.schvezov@canonical.com>
4summary: one line summary4summary: one line summary
5description: a longer description5description: a longer description
6icon: icon.png
67
7parts:8parts:
8 git:9 git:
910
=== added file 'integration-tests/data/git-tag/icon.png'
10Binary files integration-tests/data/git-tag/icon.png 1970-01-01 00:00:00 +0000 and integration-tests/data/git-tag/icon.png 2015-08-28 00:36:51 +0000 differ11Binary files integration-tests/data/git-tag/icon.png 1970-01-01 00:00:00 +0000 and integration-tests/data/git-tag/icon.png 2015-08-28 00:36:51 +0000 differ
=== modified file 'integration-tests/data/git-tag/snapcraft.yaml'
--- integration-tests/data/git-tag/snapcraft.yaml 2015-08-24 18:27:50 +0000
+++ integration-tests/data/git-tag/snapcraft.yaml 2015-08-28 00:36:51 +0000
@@ -3,6 +3,7 @@
3vendor: Sergio Schvezov <sergio.schvezov@canonical.com>3vendor: Sergio Schvezov <sergio.schvezov@canonical.com>
4summary: one line summary4summary: one line summary
5description: a longer description5description: a longer description
6icon: icon.png
67
7parts:8parts:
8 git:9 git:
910
=== added file 'integration-tests/data/hg-branch/icon.png'
10Binary files integration-tests/data/hg-branch/icon.png 1970-01-01 00:00:00 +0000 and integration-tests/data/hg-branch/icon.png 2015-08-28 00:36:51 +0000 differ11Binary files integration-tests/data/hg-branch/icon.png 1970-01-01 00:00:00 +0000 and integration-tests/data/hg-branch/icon.png 2015-08-28 00:36:51 +0000 differ
=== modified file 'integration-tests/data/hg-branch/snapcraft.yaml'
--- integration-tests/data/hg-branch/snapcraft.yaml 2015-08-24 18:27:50 +0000
+++ integration-tests/data/hg-branch/snapcraft.yaml 2015-08-28 00:36:51 +0000
@@ -3,6 +3,7 @@
3vendor: Sergio Schvezov <sergio.schvezov@canonical.com>3vendor: Sergio Schvezov <sergio.schvezov@canonical.com>
4summary: one line summary4summary: one line summary
5description: a longer description5description: a longer description
6icon: icon.png
67
7parts:8parts:
8 mercurial:9 mercurial:
910
=== added file 'integration-tests/data/hg-head/icon.png'
10Binary files integration-tests/data/hg-head/icon.png 1970-01-01 00:00:00 +0000 and integration-tests/data/hg-head/icon.png 2015-08-28 00:36:51 +0000 differ11Binary files integration-tests/data/hg-head/icon.png 1970-01-01 00:00:00 +0000 and integration-tests/data/hg-head/icon.png 2015-08-28 00:36:51 +0000 differ
=== modified file 'integration-tests/data/hg-head/snapcraft.yaml'
--- integration-tests/data/hg-head/snapcraft.yaml 2015-08-24 18:27:50 +0000
+++ integration-tests/data/hg-head/snapcraft.yaml 2015-08-28 00:36:51 +0000
@@ -3,6 +3,7 @@
3vendor: Sergio Schvezov <sergio.schvezov@canonical.com>3vendor: Sergio Schvezov <sergio.schvezov@canonical.com>
4summary: one line summary4summary: one line summary
5description: a longer description5description: a longer description
6icon: icon.png
67
7parts:8parts:
8 mercurial:9 mercurial:
910
=== added file 'integration-tests/data/hg-tag/icon.png'
10Binary files integration-tests/data/hg-tag/icon.png 1970-01-01 00:00:00 +0000 and integration-tests/data/hg-tag/icon.png 2015-08-28 00:36:51 +0000 differ11Binary files integration-tests/data/hg-tag/icon.png 1970-01-01 00:00:00 +0000 and integration-tests/data/hg-tag/icon.png 2015-08-28 00:36:51 +0000 differ
=== modified file 'integration-tests/data/hg-tag/snapcraft.yaml'
--- integration-tests/data/hg-tag/snapcraft.yaml 2015-08-24 18:27:50 +0000
+++ integration-tests/data/hg-tag/snapcraft.yaml 2015-08-28 00:36:51 +0000
@@ -3,6 +3,7 @@
3vendor: Sergio Schvezov <sergio.schvezov@canonical.com>3vendor: Sergio Schvezov <sergio.schvezov@canonical.com>
4summary: one line summary4summary: one line summary
5description: a longer description5description: a longer description
6icon: icon.png
67
7parts:8parts:
8 mercurial:9 mercurial:
910
=== added file 'integration-tests/data/local-plugin/icon.png'
10Binary files integration-tests/data/local-plugin/icon.png 1970-01-01 00:00:00 +0000 and integration-tests/data/local-plugin/icon.png 2015-08-28 00:36:51 +0000 differ11Binary files integration-tests/data/local-plugin/icon.png 1970-01-01 00:00:00 +0000 and integration-tests/data/local-plugin/icon.png 2015-08-28 00:36:51 +0000 differ
=== modified file 'integration-tests/data/local-plugin/snapcraft.yaml'
--- integration-tests/data/local-plugin/snapcraft.yaml 2015-08-25 20:40:26 +0000
+++ integration-tests/data/local-plugin/snapcraft.yaml 2015-08-28 00:36:51 +0000
@@ -3,6 +3,7 @@
3vendor: Sergio Schvezov <sergio.schvezov@canonical.com>3vendor: Sergio Schvezov <sergio.schvezov@canonical.com>
4summary: one line summary4summary: one line summary
5description: a longer description5description: a longer description
6icon: icon.png
67
7parts:8parts:
8 x-local-plugin:9 x-local-plugin:
910
=== added file 'integration-tests/data/local-source/icon.png'
10Binary files integration-tests/data/local-source/icon.png 1970-01-01 00:00:00 +0000 and integration-tests/data/local-source/icon.png 2015-08-28 00:36:51 +0000 differ11Binary files integration-tests/data/local-source/icon.png 1970-01-01 00:00:00 +0000 and integration-tests/data/local-source/icon.png 2015-08-28 00:36:51 +0000 differ
=== modified file 'integration-tests/data/local-source/snapcraft.yaml'
--- integration-tests/data/local-source/snapcraft.yaml 2015-08-24 18:27:50 +0000
+++ integration-tests/data/local-source/snapcraft.yaml 2015-08-28 00:36:51 +0000
@@ -3,6 +3,7 @@
3vendor: Sergio Schvezov <sergio.schvezov@canonical.com>3vendor: Sergio Schvezov <sergio.schvezov@canonical.com>
4summary: one line summary4summary: one line summary
5description: a longer description5description: a longer description
6icon: icon.png
67
7parts:8parts:
8 make-project:9 make-project:
910
=== added file 'integration-tests/data/simple-cmake/icon.png'
10Binary files integration-tests/data/simple-cmake/icon.png 1970-01-01 00:00:00 +0000 and integration-tests/data/simple-cmake/icon.png 2015-08-28 00:36:51 +0000 differ11Binary files integration-tests/data/simple-cmake/icon.png 1970-01-01 00:00:00 +0000 and integration-tests/data/simple-cmake/icon.png 2015-08-28 00:36:51 +0000 differ
=== modified file 'integration-tests/data/simple-cmake/snapcraft.yaml'
--- integration-tests/data/simple-cmake/snapcraft.yaml 2015-08-24 18:27:50 +0000
+++ integration-tests/data/simple-cmake/snapcraft.yaml 2015-08-28 00:36:51 +0000
@@ -3,6 +3,7 @@
3vendor: Sergio Schvezov <sergio.schvezov@canonical.com>3vendor: Sergio Schvezov <sergio.schvezov@canonical.com>
4summary: one line summary4summary: one line summary
5description: a longer description5description: a longer description
6icon: icon.png
67
7parts:8parts:
8 cmake-project:9 cmake-project:
910
=== added file 'integration-tests/data/simple-copy/icon.png'
10Binary files integration-tests/data/simple-copy/icon.png 1970-01-01 00:00:00 +0000 and integration-tests/data/simple-copy/icon.png 2015-08-28 00:36:51 +0000 differ11Binary files integration-tests/data/simple-copy/icon.png 1970-01-01 00:00:00 +0000 and integration-tests/data/simple-copy/icon.png 2015-08-28 00:36:51 +0000 differ
=== modified file 'integration-tests/data/simple-copy/snapcraft.yaml'
--- integration-tests/data/simple-copy/snapcraft.yaml 2015-08-24 18:27:50 +0000
+++ integration-tests/data/simple-copy/snapcraft.yaml 2015-08-28 00:36:51 +0000
@@ -3,6 +3,7 @@
3vendor: Sergio Schvezov <sergio.schvezov@canonical.com>3vendor: Sergio Schvezov <sergio.schvezov@canonical.com>
4summary: one line summary4summary: one line summary
5description: a longer description5description: a longer description
6icon: icon.png
67
7parts:8parts:
8 copy-example:9 copy-example:
910
=== added file 'integration-tests/data/simple-make/icon.png'
10Binary files integration-tests/data/simple-make/icon.png 1970-01-01 00:00:00 +0000 and integration-tests/data/simple-make/icon.png 2015-08-28 00:36:51 +0000 differ11Binary files integration-tests/data/simple-make/icon.png 1970-01-01 00:00:00 +0000 and integration-tests/data/simple-make/icon.png 2015-08-28 00:36:51 +0000 differ
=== modified file 'integration-tests/data/simple-make/snapcraft.yaml'
--- integration-tests/data/simple-make/snapcraft.yaml 2015-08-24 18:27:50 +0000
+++ integration-tests/data/simple-make/snapcraft.yaml 2015-08-28 00:36:51 +0000
@@ -3,6 +3,7 @@
3vendor: Sergio Schvezov <sergio.schvezov@canonical.com>3vendor: Sergio Schvezov <sergio.schvezov@canonical.com>
4summary: one line summary4summary: one line summary
5description: a longer description5description: a longer description
6icon: icon.png
67
7parts:8parts:
8 make-project:9 make-project:
910
=== added file 'integration-tests/data/simple-tar/icon.png'
10Binary files integration-tests/data/simple-tar/icon.png 1970-01-01 00:00:00 +0000 and integration-tests/data/simple-tar/icon.png 2015-08-28 00:36:51 +0000 differ11Binary files integration-tests/data/simple-tar/icon.png 1970-01-01 00:00:00 +0000 and integration-tests/data/simple-tar/icon.png 2015-08-28 00:36:51 +0000 differ
=== modified file 'integration-tests/data/simple-tar/snapcraft.yaml'
--- integration-tests/data/simple-tar/snapcraft.yaml 2015-08-24 18:27:50 +0000
+++ integration-tests/data/simple-tar/snapcraft.yaml 2015-08-28 00:36:51 +0000
@@ -3,6 +3,7 @@
3vendor: Sergio Schvezov <sergio.schvezov@canonical.com>3vendor: Sergio Schvezov <sergio.schvezov@canonical.com>
4summary: one line summary4summary: one line summary
5description: a longer description5description: a longer description
6icon: icon.png
67
7parts:8parts:
8 oneflat:9 oneflat:
910
=== modified file 'schema/snapcraft.yaml'
--- schema/snapcraft.yaml 2015-08-26 18:33:20 +0000
+++ schema/snapcraft.yaml 2015-08-28 00:36:51 +0000
@@ -15,6 +15,10 @@
15 vendor:15 vendor:
16 type: string16 type: string
17 format: email17 format: email
18 icon:
19 type: string
20 description: path to a 512x512 icon representing the package.
21 format: icon-path
18 summary:22 summary:
19 type: string23 type: string
20 description: one line summary for the package24 description: one line summary for the package
@@ -86,4 +90,5 @@
86 - vendor90 - vendor
87 - summary91 - summary
88 - description92 - description
93 - icon
89 - parts94 - parts
9095
=== modified file 'snapcraft/meta.py'
--- snapcraft/meta.py 2015-08-26 12:11:33 +0000
+++ snapcraft/meta.py 2015-08-28 00:36:51 +0000
@@ -17,6 +17,7 @@
17import os17import os
18import logging18import logging
19import shlex19import shlex
20import shutil
20import tempfile21import tempfile
21import yaml22import yaml
2223
@@ -29,6 +30,7 @@
29 'name',30 'name',
30 'version',31 'version',
31 'vendor',32 'vendor',
33 'icon',
32]34]
3335
34_OPTIONAL_PACKAGE_KEYS = [36_OPTIONAL_PACKAGE_KEYS = [
@@ -50,6 +52,8 @@
50 meta_dir = os.path.join(common.get_snapdir(), 'meta')52 meta_dir = os.path.join(common.get_snapdir(), 'meta')
51 os.makedirs(meta_dir, exist_ok=True)53 os.makedirs(meta_dir, exist_ok=True)
5254
55 config_data['icon'] = _copy_icon(meta_dir, config_data['icon'])
56
53 _write_package_yaml(meta_dir, config_data, arches)57 _write_package_yaml(meta_dir, config_data, arches)
54 _write_readme_md(meta_dir, config_data)58 _write_readme_md(meta_dir, config_data)
5559
@@ -72,6 +76,13 @@
72 f.write(readme_md)76 f.write(readme_md)
7377
7478
79def _copy_icon(meta_dir, icon_path):
80 new_icon_path = os.path.join(meta_dir, os.path.basename(icon_path))
81 shutil.copyfile(icon_path, new_icon_path)
82
83 return os.path.join('meta', os.path.basename(icon_path))
84
85
75def _compose_package_yaml(config_data, arches):86def _compose_package_yaml(config_data, arches):
76 '''87 '''
77 Creates a dictionary that can be used to yaml.dump a package.yaml using88 Creates a dictionary that can be used to yaml.dump a package.yaml using
7889
=== modified file 'snapcraft/tests/test_meta.py'
--- snapcraft/tests/test_meta.py 2015-08-26 16:05:34 +0000
+++ snapcraft/tests/test_meta.py 2015-08-28 00:36:51 +0000
@@ -16,7 +16,6 @@
1616
17import os17import os
18from unittest.mock import (18from unittest.mock import (
19 Mock,
20 call,19 call,
21 mock_open,20 mock_open,
22 patch,21 patch,
@@ -42,6 +41,7 @@
42 'name': 'my-package',41 'name': 'my-package',
43 'version': '1.0',42 'version': '1.0',
44 'vendor': 'Sergio Schvezov <sergio.schvezov@canonical.com>',43 'vendor': 'Sergio Schvezov <sergio.schvezov@canonical.com>',
44 'icon': 'my-icon.png',
45 }45 }
4646
47 def test_plain_no_binaries_or_services(self):47 def test_plain_no_binaries_or_services(self):
@@ -52,6 +52,7 @@
52 'name': 'my-package',52 'name': 'my-package',
53 'version': '1.0',53 'version': '1.0',
54 'vendor': 'Sergio Schvezov <sergio.schvezov@canonical.com>',54 'vendor': 'Sergio Schvezov <sergio.schvezov@canonical.com>',
55 'icon': 'my-icon.png',
55 'architectures': ['armhf', 'amd64'],56 'architectures': ['armhf', 'amd64'],
56 }57 }
5758
@@ -65,6 +66,7 @@
65 'name': 'my-package',66 'name': 'my-package',
66 'version': '1.0',67 'version': '1.0',
67 'vendor': 'Sergio Schvezov <sergio.schvezov@canonical.com>',68 'vendor': 'Sergio Schvezov <sergio.schvezov@canonical.com>',
69 'icon': 'my-icon.png',
68 }70 }
6971
70 self.assertEqual(y, expected)72 self.assertEqual(y, expected)
@@ -86,6 +88,7 @@
86 'name': 'my-package',88 'name': 'my-package',
87 'version': '1.0',89 'version': '1.0',
88 'vendor': 'Sergio Schvezov <sergio.schvezov@canonical.com>',90 'vendor': 'Sergio Schvezov <sergio.schvezov@canonical.com>',
91 'icon': 'my-icon.png',
89 'architectures': ['armhf', 'amd64'],92 'architectures': ['armhf', 'amd64'],
90 'binaries': [93 'binaries': [
91 {94 {
@@ -123,6 +126,7 @@
123 'name': 'my-package',126 'name': 'my-package',
124 'version': '1.0',127 'version': '1.0',
125 'vendor': 'Sergio Schvezov <sergio.schvezov@canonical.com>',128 'vendor': 'Sergio Schvezov <sergio.schvezov@canonical.com>',
129 'icon': 'my-icon.png',
126 'architectures': ['armhf', 'amd64'],130 'architectures': ['armhf', 'amd64'],
127 'services': [131 'services': [
128 {132 {
@@ -151,6 +155,7 @@
151 'name': 'my-package',155 'name': 'my-package',
152 'version': '1.0',156 'version': '1.0',
153 'vendor': 'Sergio Schvezov <sergio.schvezov@canonical.com>',157 'vendor': 'Sergio Schvezov <sergio.schvezov@canonical.com>',
158 'icon': 'my-icon.png',
154 'architectures': ['armhf', 'amd64'],159 'architectures': ['armhf', 'amd64'],
155 'frameworks': ['mir', ],160 'frameworks': ['mir', ],
156 }161 }
@@ -173,7 +178,13 @@
173178
174 def setUp(self):179 def setUp(self):
175 super().setUp()180 super().setUp()
176 self.orig_os_makedirs = os.makedirs181 patcher_makedirs = patch('os.makedirs')
182 self.mock_makedirs = patcher_makedirs.start()
183 self.addCleanup(patcher_makedirs.stop)
184
185 patcher_copyfile = patch('shutil.copyfile')
186 self.mock_copyfile = patcher_copyfile.start()
187 self.addCleanup(patcher_copyfile.stop)
177188
178 self.config_data = {189 self.config_data = {
179 'name': 'my-package',190 'name': 'my-package',
@@ -181,14 +192,10 @@
181 'vendor': 'Sergio Schvezov <sergio.schvezov@canonical.com>',192 'vendor': 'Sergio Schvezov <sergio.schvezov@canonical.com>',
182 'description': 'my description',193 'description': 'my description',
183 'summary': 'my summary',194 'summary': 'my summary',
195 'icon': 'my-icon.png',
184 }196 }
185197
186 def tearDown(self):
187 super().tearDown()
188 os.makedirs = self.orig_os_makedirs
189
190 def test_create_meta(self):198 def test_create_meta(self):
191 os.makedirs = Mock()
192 mock_the_open = mock_open()199 mock_the_open = mock_open()
193200
194 with patch('snapcraft.meta.open', mock_the_open, create=True):201 with patch('snapcraft.meta.open', mock_the_open, create=True):
@@ -196,7 +203,7 @@
196203
197 meta_dir = os.path.join(os.path.abspath(os.curdir), 'snap', 'meta')204 meta_dir = os.path.join(os.path.abspath(os.curdir), 'snap', 'meta')
198205
199 os.makedirs.assert_called_once_with(meta_dir, exist_ok=True)206 self.mock_makedirs.assert_called_once_with(meta_dir, exist_ok=True)
200207
201 mock_the_open.assert_has_calls([208 mock_the_open.assert_has_calls([
202 call(os.path.join(meta_dir, 'package.yaml'), 'w'),209 call(os.path.join(meta_dir, 'package.yaml'), 'w'),
@@ -208,6 +215,11 @@
208 call().write(' '),215 call().write(' '),
209 call().write('amd64'),216 call().write('amd64'),
210 call().write('\n'),217 call().write('\n'),
218 call().write('icon'),
219 call().write(':'),
220 call().write(' '),
221 call().write('meta/my-icon.png'),
222 call().write('\n'),
211 call().write('name'),223 call().write('name'),
212 call().write(':'),224 call().write(':'),
213 call().write(' '),225 call().write(' '),
214226
=== modified file 'snapcraft/tests/test_yaml.py'
--- snapcraft/tests/test_yaml.py 2015-08-27 13:00:16 +0000
+++ snapcraft/tests/test_yaml.py 2015-08-28 00:36:51 +0000
@@ -31,6 +31,15 @@
3131
32class TestYaml(TestCase):32class TestYaml(TestCase):
3333
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 def make_snapcraft_yaml(self, content):43 def make_snapcraft_yaml(self, content):
35 tempdirObj = tempfile.TemporaryDirectory()44 tempdirObj = tempfile.TemporaryDirectory()
36 self.addCleanup(tempdirObj.cleanup)45 self.addCleanup(tempdirObj.cleanup)
@@ -40,13 +49,12 @@
4049
41 @unittest.mock.patch('snapcraft.yaml.Config.load_plugin')50 @unittest.mock.patch('snapcraft.yaml.Config.load_plugin')
42 def test_config_loads_plugins(self, mock_loadPlugin):51 def test_config_loads_plugins(self, mock_loadPlugin):
43 dirs.setup_dirs()
44
45 self.make_snapcraft_yaml("""name: test52 self.make_snapcraft_yaml("""name: test
46version: "1"53version: "1"
47vendor: me <me@me.com>54vendor: me <me@me.com>
48summary: test55summary: test
49description: test56description: test
57icon: my-icon.png
5058
51parts:59parts:
52 ubuntu:60 ubuntu:
@@ -72,8 +80,6 @@
72 fake_logger.output)80 fake_logger.output)
7381
74 def test_config_loop(self):82 def test_config_loop(self):
75 dirs.setup_dirs()
76
77 fake_logger = fixtures.FakeLogger(level=logging.ERROR)83 fake_logger = fixtures.FakeLogger(level=logging.ERROR)
78 self.useFixture(fake_logger)84 self.useFixture(fake_logger)
7985
@@ -82,6 +88,7 @@
82vendor: me <me@me.com>88vendor: me <me@me.com>
83summary: test89summary: test
84description: test90description: test
91icon: my-icon.png
8592
86parts:93parts:
87 p1:94 p1:
@@ -99,8 +106,6 @@
99106
100 @unittest.mock.patch('snapcraft.yaml.Config.load_plugin')107 @unittest.mock.patch('snapcraft.yaml.Config.load_plugin')
101 def test_invalid_yaml_missing_name(self, mock_loadPlugin):108 def test_invalid_yaml_missing_name(self, mock_loadPlugin):
102 dirs.setup_dirs()
103
104 fake_logger = fixtures.FakeLogger(level=logging.ERROR)109 fake_logger = fixtures.FakeLogger(level=logging.ERROR)
105 self.useFixture(fake_logger)110 self.useFixture(fake_logger)
106111
@@ -109,6 +114,7 @@
109vendor: me <me@me.com>114vendor: me <me@me.com>
110summary: test115summary: test
111description: nothing116description: nothing
117icon: my-icon.png
112118
113parts:119parts:
114 ubuntu:120 ubuntu:
@@ -124,8 +130,6 @@
124130
125 @unittest.mock.patch('snapcraft.yaml.Config.load_plugin')131 @unittest.mock.patch('snapcraft.yaml.Config.load_plugin')
126 def test_invalid_yaml_invalid_name_as_number(self, mock_loadPlugin):132 def test_invalid_yaml_invalid_name_as_number(self, mock_loadPlugin):
127 dirs.setup_dirs()
128
129 fake_logger = fixtures.FakeLogger(level=logging.ERROR)133 fake_logger = fixtures.FakeLogger(level=logging.ERROR)
130 self.useFixture(fake_logger)134 self.useFixture(fake_logger)
131135
@@ -134,6 +138,7 @@
134vendor: me <me@me.com>138vendor: me <me@me.com>
135summary: test139summary: test
136description: nothing140description: nothing
141icon: my-icon.png
137142
138parts:143parts:
139 ubuntu:144 ubuntu:
@@ -149,8 +154,6 @@
149154
150 @unittest.mock.patch('snapcraft.yaml.Config.load_plugin')155 @unittest.mock.patch('snapcraft.yaml.Config.load_plugin')
151 def test_invalid_yaml_invalid_name_chars(self, mock_loadPlugin):156 def test_invalid_yaml_invalid_name_chars(self, mock_loadPlugin):
152 dirs.setup_dirs()
153
154 fake_logger = fixtures.FakeLogger(level=logging.ERROR)157 fake_logger = fixtures.FakeLogger(level=logging.ERROR)
155 self.useFixture(fake_logger)158 self.useFixture(fake_logger)
156159
@@ -159,6 +162,7 @@
159vendor: me <me@me.com>162vendor: me <me@me.com>
160summary: test163summary: test
161description: nothing164description: nothing
165icon: my-icon.png
162166
163parts:167parts:
164 ubuntu:168 ubuntu:
@@ -174,8 +178,6 @@
174178
175 @unittest.mock.patch('snapcraft.yaml.Config.load_plugin')179 @unittest.mock.patch('snapcraft.yaml.Config.load_plugin')
176 def test_invalid_yaml_missing_description(self, mock_loadPlugin):180 def test_invalid_yaml_missing_description(self, mock_loadPlugin):
177 dirs.setup_dirs()
178
179 fake_logger = fixtures.FakeLogger(level=logging.ERROR)181 fake_logger = fixtures.FakeLogger(level=logging.ERROR)
180 self.useFixture(fake_logger)182 self.useFixture(fake_logger)
181183
@@ -183,6 +185,7 @@
183version: "1"185version: "1"
184vendor: me <me@me.com>186vendor: me <me@me.com>
185summary: test187summary: test
188icon: my-icon.png
186189
187parts:190parts:
188 ubuntu:191 ubuntu:
@@ -203,12 +206,18 @@
203 super().setUp()206 super().setUp()
204 dirs.setup_dirs()207 dirs.setup_dirs()
205208
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 self.data = {214 self.data = {
207 'name': 'my-package-1',215 'name': 'my-package-1',
208 'version': '1.0-snapcraft1~ppa1',216 'version': '1.0-snapcraft1~ppa1',
209 'vendor': 'Me <me@me.com>',217 'vendor': 'Me <me@me.com>',
210 'summary': 'my summary less that 79 chars',218 'summary': 'my summary less that 79 chars',
211 'description': 'description which can be pretty long',219 'description': 'description which can be pretty long',
220 'icon': 'my-icon.png',
212 'parts': {221 'parts': {
213 'part1': {222 'part1': {
214 'type': 'project',223 'type': 'project',
@@ -324,3 +333,12 @@
324 mock_the_open.assert_called_once_with(expected_path)333 mock_the_open.assert_called_once_with(expected_path)
325 expected_message = 'Schema is missing, could not validate snapcraft.yaml, check installation'334 expected_message = 'Schema is missing, could not validate snapcraft.yaml, check installation'
326 self.assertEqual(raised.exception.message, expected_message)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)
327345
=== modified file 'snapcraft/yaml.py'
--- snapcraft/yaml.py 2015-08-27 16:37:32 +0000
+++ snapcraft/yaml.py 2015-08-28 00:36:51 +0000
@@ -20,6 +20,7 @@
20import yaml20import yaml
21import jsonschema21import jsonschema
22import os22import os
23import os.path
2324
24import snapcraft.plugin25import snapcraft.plugin
25from snapcraft import common26from snapcraft import common
@@ -28,6 +29,11 @@
28logger = logging.getLogger(__name__)29logger = logging.getLogger(__name__)
2930
3031
32@jsonschema.FormatChecker.cls_checks('icon-path')
33def _validate_file_exists(instance):
34 return os.path.exists(instance)
35
36
31class SchemaNotFoundError(Exception):37class SchemaNotFoundError(Exception):
3238
33 def __init__(self, message):39 def __init__(self, message):
@@ -43,7 +49,8 @@
43 except FileNotFoundError:49 except FileNotFoundError:
44 raise SchemaNotFoundError('Schema is missing, could not validate snapcraft.yaml, check installation')50 raise SchemaNotFoundError('Schema is missing, could not validate snapcraft.yaml, check installation')
4551
46 jsonschema.validate(snapcraft_yaml, schema)52 format_check = jsonschema.FormatChecker()
53 jsonschema.validate(snapcraft_yaml, schema, format_checker=format_check)
4754
4855
49class Config:56class Config:

Subscribers

People subscribed via source and target branches