summaryrefslogtreecommitdiffstats
path: root/python/mozbuild/mozbuild/test/test_manifest.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/mozbuild/mozbuild/test/test_manifest.py')
-rw-r--r--python/mozbuild/mozbuild/test/test_manifest.py2081
1 files changed, 2081 insertions, 0 deletions
diff --git a/python/mozbuild/mozbuild/test/test_manifest.py b/python/mozbuild/mozbuild/test/test_manifest.py
new file mode 100644
index 0000000000..e5675aba36
--- /dev/null
+++ b/python/mozbuild/mozbuild/test/test_manifest.py
@@ -0,0 +1,2081 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+import unittest
+
+import mozfile
+from mozunit import main
+
+from mozbuild.vendor.moz_yaml import MozYamlVerifyError, load_moz_yaml
+
+
+class TestManifest(unittest.TestCase):
+ def process_test_vectors(self, test_vectors):
+ index = 0
+ for vector in test_vectors:
+ print("Testing index", index)
+ expected, yaml = vector
+ with mozfile.NamedTemporaryFile() as tf:
+ tf.write(yaml)
+ tf.flush()
+ if expected == "exception":
+ with self.assertRaises(MozYamlVerifyError):
+ load_moz_yaml(tf.name, require_license_file=False)
+ else:
+ self.assertDictEqual(
+ load_moz_yaml(tf.name, require_license_file=False), expected
+ )
+ index += 1
+
+ # ===========================================================================================
+ def test_simple(self):
+ simple_dict = {
+ "schema": "1",
+ "origin": {
+ "description": "2D Graphics Library",
+ "license": ["MPL-1.1", "LGPL-2.1"],
+ "name": "cairo",
+ "release": "version 1.6.4",
+ "revision": "AA001122334455",
+ "url": "https://www.cairographics.org/",
+ },
+ "bugzilla": {"component": "Graphics", "product": "Core"},
+ }
+
+ self.process_test_vectors(
+ [
+ (
+ simple_dict,
+ b"""
+---
+schema: 1
+origin:
+ name: cairo
+ description: 2D Graphics Library
+ url: https://www.cairographics.org/
+ release: version 1.6.4
+ license:
+ - MPL-1.1
+ - LGPL-2.1
+ revision: AA001122334455
+bugzilla:
+ product: Core
+ component: Graphics
+ """.strip(),
+ ),
+ (
+ simple_dict,
+ b"""
+schema: 1
+origin:
+ name: cairo
+ description: 2D Graphics Library
+ url: https://www.cairographics.org/
+ release: version 1.6.4
+ license:
+ - MPL-1.1
+ - LGPL-2.1
+ revision: AA001122334455
+bugzilla:
+ product: Core
+ component: Graphics
+ """.strip(),
+ ),
+ ]
+ )
+
+ # ===========================================================================================
+ def test_updatebot(self):
+ self.process_test_vectors(
+ [
+ (
+ {
+ "schema": "1",
+ "origin": {
+ "description": "2D Graphics Library",
+ "license": ["MPL-1.1", "LGPL-2.1"],
+ "name": "cairo",
+ "release": "version 1.6.4",
+ "revision": "AA001122334455",
+ "url": "https://www.cairographics.org/",
+ },
+ "bugzilla": {"component": "Graphics", "product": "Core"},
+ "updatebot": {
+ "maintainer-phab": "tjr",
+ "maintainer-bz": "a@example.com",
+ },
+ },
+ b"""
+---
+schema: 1
+origin:
+ name: cairo
+ description: 2D Graphics Library
+ url: https://www.cairographics.org/
+ release: version 1.6.4
+ license:
+ - MPL-1.1
+ - LGPL-2.1
+ revision: AA001122334455
+bugzilla:
+ product: Core
+ component: Graphics
+updatebot:
+ maintainer-phab: tjr
+ maintainer-bz: a@example.com
+ """.strip(),
+ ),
+ # -------------------------------------------------
+ (
+ {
+ "schema": "1",
+ "origin": {
+ "description": "2D Graphics Library",
+ "license": ["MPL-1.1", "LGPL-2.1"],
+ "name": "cairo",
+ "release": "version 1.6.4",
+ "revision": "001122334455",
+ "url": "https://www.cairographics.org/",
+ },
+ "bugzilla": {"component": "Graphics", "product": "Core"},
+ "updatebot": {
+ "maintainer-phab": "tjr",
+ "maintainer-bz": "a@example.com",
+ },
+ },
+ b"""
+---
+schema: 1
+origin:
+ name: cairo
+ description: 2D Graphics Library
+ url: https://www.cairographics.org/
+ release: version 1.6.4
+ license:
+ - MPL-1.1
+ - LGPL-2.1
+ revision: 001122334455
+bugzilla:
+ product: Core
+ component: Graphics
+updatebot:
+ maintainer-phab: tjr
+ maintainer-bz: a@example.com
+ """.strip(),
+ ),
+ # -------------------------------------------------
+ (
+ {
+ "schema": "1",
+ "origin": {
+ "description": "2D Graphics Library",
+ "license": ["MPL-1.1", "LGPL-2.1"],
+ "name": "cairo",
+ "release": "version 1.6.4",
+ "revision": "001122334455",
+ "url": "https://www.cairographics.org/",
+ },
+ "bugzilla": {"component": "Graphics", "product": "Core"},
+ "updatebot": {
+ "try-preset": "foo",
+ "maintainer-phab": "tjr",
+ "maintainer-bz": "a@example.com",
+ },
+ },
+ b"""
+---
+schema: 1
+origin:
+ name: cairo
+ description: 2D Graphics Library
+ url: https://www.cairographics.org/
+ release: version 1.6.4
+ license:
+ - MPL-1.1
+ - LGPL-2.1
+ revision: 001122334455
+bugzilla:
+ product: Core
+ component: Graphics
+updatebot:
+ try-preset: foo
+ maintainer-phab: tjr
+ maintainer-bz: a@example.com
+ """.strip(),
+ ),
+ # -------------------------------------------------
+ (
+ {
+ "schema": "1",
+ "origin": {
+ "description": "2D Graphics Library",
+ "license": ["MPL-1.1", "LGPL-2.1"],
+ "name": "cairo",
+ "release": "version 1.6.4",
+ "revision": "AA001122334455",
+ "url": "https://www.cairographics.org/",
+ },
+ "bugzilla": {"component": "Graphics", "product": "Core"},
+ "vendoring": {
+ "url": "https://example.com",
+ "source-hosting": "gitlab",
+ },
+ "updatebot": {
+ "maintainer-phab": "tjr",
+ "maintainer-bz": "a@example.com",
+ "fuzzy-query": "!linux64",
+ "tasks": [{"type": "commit-alert"}],
+ },
+ },
+ b"""
+---
+schema: 1
+origin:
+ name: cairo
+ description: 2D Graphics Library
+ url: https://www.cairographics.org/
+ release: version 1.6.4
+ license:
+ - MPL-1.1
+ - LGPL-2.1
+ revision: AA001122334455
+vendoring:
+ url: https://example.com
+ source-hosting: gitlab
+bugzilla:
+ product: Core
+ component: Graphics
+updatebot:
+ fuzzy-query: "!linux64"
+ maintainer-phab: tjr
+ maintainer-bz: a@example.com
+ tasks:
+ - type: commit-alert
+ """.strip(),
+ ),
+ # -------------------------------------------------
+ (
+ "exception",
+ b"""
+---
+schema: 1
+origin:
+ name: cairo
+ description: 2D Graphics Library
+ url: https://www.cairographics.org/
+ release: version 1.6.4
+ license:
+ - MPL-1.1
+ - LGPL-2.1
+ revision: AA001122334455
+vendoring:
+ url: https://example.com
+ source-hosting: gitlab
+bugzilla:
+ product: Core
+ component: Graphics
+updatebot:
+ try-preset: foo
+ fuzzy-query: "!linux64"
+ maintainer-phab: tjr
+ maintainer-bz: a@example.com
+ tasks:
+ - type: commit-alert
+ """.strip(),
+ ),
+ # -------------------------------------------------
+ (
+ {
+ "schema": "1",
+ "origin": {
+ "description": "2D Graphics Library",
+ "license": ["MPL-1.1", "LGPL-2.1"],
+ "name": "cairo",
+ "release": "version 1.6.4",
+ "revision": "AA001122334455",
+ "url": "https://www.cairographics.org/",
+ },
+ "bugzilla": {"component": "Graphics", "product": "Core"},
+ "vendoring": {
+ "url": "https://example.com",
+ "source-hosting": "gitlab",
+ },
+ "updatebot": {
+ "maintainer-phab": "tjr",
+ "maintainer-bz": "a@example.com",
+ "fuzzy-paths": ["dir1/", "dir2"],
+ "tasks": [{"type": "commit-alert"}],
+ },
+ },
+ b"""
+---
+schema: 1
+origin:
+ name: cairo
+ description: 2D Graphics Library
+ url: https://www.cairographics.org/
+ release: version 1.6.4
+ license:
+ - MPL-1.1
+ - LGPL-2.1
+ revision: AA001122334455
+vendoring:
+ url: https://example.com
+ source-hosting: gitlab
+bugzilla:
+ product: Core
+ component: Graphics
+updatebot:
+ fuzzy-paths:
+ - dir1/
+ - dir2
+ maintainer-phab: tjr
+ maintainer-bz: a@example.com
+ tasks:
+ - type: commit-alert
+ """.strip(),
+ ),
+ # -------------------------------------------------
+ (
+ {
+ "schema": "1",
+ "origin": {
+ "description": "2D Graphics Library",
+ "license": ["MPL-1.1", "LGPL-2.1"],
+ "name": "cairo",
+ "release": "version 1.6.4",
+ "revision": "AA001122334455",
+ "url": "https://www.cairographics.org/",
+ },
+ "bugzilla": {"component": "Graphics", "product": "Core"},
+ "vendoring": {
+ "url": "https://example.com",
+ "source-hosting": "gitlab",
+ },
+ "updatebot": {
+ "maintainer-phab": "tjr",
+ "maintainer-bz": "a@example.com",
+ "fuzzy-paths": ["dir1/"],
+ "tasks": [{"type": "commit-alert"}],
+ },
+ },
+ b"""
+---
+schema: 1
+origin:
+ name: cairo
+ description: 2D Graphics Library
+ url: https://www.cairographics.org/
+ release: version 1.6.4
+ license:
+ - MPL-1.1
+ - LGPL-2.1
+ revision: AA001122334455
+vendoring:
+ url: https://example.com
+ source-hosting: gitlab
+bugzilla:
+ product: Core
+ component: Graphics
+updatebot:
+ fuzzy-paths: ['dir1/']
+ maintainer-phab: tjr
+ maintainer-bz: a@example.com
+ tasks:
+ - type: commit-alert
+ """.strip(),
+ ),
+ # -------------------------------------------------
+ (
+ {
+ "schema": "1",
+ "origin": {
+ "description": "2D Graphics Library",
+ "license": ["MPL-1.1", "LGPL-2.1"],
+ "name": "cairo",
+ "release": "version 1.6.4",
+ "revision": "AA001122334455",
+ "url": "https://www.cairographics.org/",
+ },
+ "bugzilla": {"component": "Graphics", "product": "Core"},
+ "vendoring": {
+ "url": "https://example.com",
+ "source-hosting": "gitlab",
+ "tracking": "commit",
+ "flavor": "rust",
+ },
+ "updatebot": {
+ "maintainer-phab": "tjr",
+ "maintainer-bz": "a@example.com",
+ "tasks": [
+ {"type": "commit-alert", "frequency": "release"},
+ {
+ "type": "vendoring",
+ "enabled": False,
+ "cc": ["b@example.com"],
+ "needinfo": ["c@example.com"],
+ "frequency": "1 weeks",
+ "platform": "windows",
+ },
+ ],
+ },
+ },
+ b"""
+---
+schema: 1
+origin:
+ name: cairo
+ description: 2D Graphics Library
+ url: https://www.cairographics.org/
+ release: version 1.6.4
+ license:
+ - MPL-1.1
+ - LGPL-2.1
+ revision: AA001122334455
+vendoring:
+ url: https://example.com
+ tracking: commit
+ source-hosting: gitlab
+ flavor: rust
+bugzilla:
+ product: Core
+ component: Graphics
+updatebot:
+ maintainer-phab: tjr
+ maintainer-bz: a@example.com
+ tasks:
+ - type: commit-alert
+ frequency: release
+ - type: vendoring
+ enabled: False
+ cc: ["b@example.com"]
+ needinfo: ["c@example.com"]
+ frequency: 1 weeks
+ platform: windows
+ """.strip(),
+ ),
+ # -------------------------------------------------
+ (
+ {
+ "schema": "1",
+ "origin": {
+ "description": "2D Graphics Library",
+ "license": ["MPL-1.1", "LGPL-2.1"],
+ "name": "cairo",
+ "release": "version 1.6.4",
+ "revision": "AA001122334455",
+ "url": "https://www.cairographics.org/",
+ },
+ "bugzilla": {"component": "Graphics", "product": "Core"},
+ "vendoring": {
+ "url": "https://example.com",
+ "source-hosting": "gitlab",
+ "tracking": "tag",
+ "flavor": "rust",
+ },
+ "updatebot": {
+ "maintainer-phab": "tjr",
+ "maintainer-bz": "a@example.com",
+ "tasks": [
+ {"type": "commit-alert", "frequency": "release"},
+ {
+ "type": "vendoring",
+ "enabled": False,
+ "cc": ["b@example.com"],
+ "needinfo": ["c@example.com"],
+ "frequency": "1 weeks, 4 commits",
+ "platform": "windows",
+ },
+ ],
+ },
+ },
+ b"""
+---
+schema: 1
+origin:
+ name: cairo
+ description: 2D Graphics Library
+ url: https://www.cairographics.org/
+ release: version 1.6.4
+ license:
+ - MPL-1.1
+ - LGPL-2.1
+ revision: AA001122334455
+vendoring:
+ url: https://example.com
+ tracking: tag
+ source-hosting: gitlab
+ flavor: rust
+bugzilla:
+ product: Core
+ component: Graphics
+updatebot:
+ maintainer-phab: tjr
+ maintainer-bz: a@example.com
+ tasks:
+ - type: commit-alert
+ frequency: release
+ - type: vendoring
+ enabled: False
+ cc: ["b@example.com"]
+ needinfo: ["c@example.com"]
+ frequency: 1 weeks, 4 commits
+ platform: windows
+ """.strip(),
+ ),
+ # -------------------------------------------------
+ (
+ "exception", # rust flavor cannot use update-actions
+ b"""
+---
+schema: 1
+origin:
+ name: cairo
+ description: 2D Graphics Library
+ url: https://www.cairographics.org/
+ release: version 1.6.4
+ license:
+ - MPL-1.1
+ - LGPL-2.1
+ revision: AA001122334455
+vendoring:
+ url: https://example.com
+ tracking: tag
+ source-hosting: gitlab
+ flavor: rust
+ update-actions:
+ - action: move-file
+ from: foo
+ to: bar
+bugzilla:
+ product: Core
+ component: Graphics
+updatebot:
+ maintainer-phab: tjr
+ maintainer-bz: a@example.com
+ tasks:
+ - type: commit-alert
+ frequency: release
+ - type: vendoring
+ enabled: False
+ cc: ["b@example.com"]
+ needinfo: ["c@example.com"]
+ frequency: 1 weeks, 4 commits
+ platform: windows
+ """.strip(),
+ ),
+ # -------------------------------------------------
+ (
+ {
+ "schema": "1",
+ "origin": {
+ "description": "2D Graphics Library",
+ "license": ["MPL-1.1", "LGPL-2.1"],
+ "name": "cairo",
+ "release": "version 1.6.4",
+ "revision": "AA001122334455",
+ "url": "https://www.cairographics.org/",
+ },
+ "bugzilla": {"component": "Graphics", "product": "Core"},
+ "vendoring": {
+ "url": "https://example.com",
+ "source-hosting": "gitlab",
+ },
+ "updatebot": {
+ "maintainer-phab": "tjr",
+ "maintainer-bz": "a@example.com",
+ "tasks": [
+ {
+ "type": "vendoring",
+ "enabled": False,
+ "cc": ["b@example.com", "c@example.com"],
+ "needinfo": ["d@example.com", "e@example.com"],
+ "frequency": "every",
+ },
+ {
+ "type": "commit-alert",
+ "filter": "none",
+ "source-extensions": [".c", ".cpp"],
+ "frequency": "2 weeks",
+ "platform": "linux",
+ },
+ ],
+ },
+ },
+ b"""
+---
+schema: 1
+origin:
+ name: cairo
+ description: 2D Graphics Library
+ url: https://www.cairographics.org/
+ release: version 1.6.4
+ license:
+ - MPL-1.1
+ - LGPL-2.1
+ revision: AA001122334455
+vendoring:
+ url: https://example.com
+ source-hosting: gitlab
+bugzilla:
+ product: Core
+ component: Graphics
+updatebot:
+ maintainer-phab: tjr
+ maintainer-bz: a@example.com
+ tasks:
+ - type: vendoring
+ enabled: False
+ cc:
+ - b@example.com
+ - c@example.com
+ needinfo:
+ - d@example.com
+ - e@example.com
+ frequency: every
+ - type: commit-alert
+ filter: none
+ frequency: 2 weeks
+ platform: linux
+ source-extensions:
+ - .c
+ - .cpp
+ """.strip(),
+ ),
+ # -------------------------------------------------
+ (
+ {
+ "schema": "1",
+ "origin": {
+ "description": "2D Graphics Library",
+ "license": ["MPL-1.1", "LGPL-2.1"],
+ "name": "cairo",
+ "release": "version 1.6.4",
+ "revision": "AA001122334455",
+ "url": "https://www.cairographics.org/",
+ },
+ "bugzilla": {"component": "Graphics", "product": "Core"},
+ "vendoring": {
+ "url": "https://example.com",
+ "source-hosting": "gitlab",
+ },
+ "updatebot": {
+ "maintainer-phab": "tjr",
+ "maintainer-bz": "a@example.com",
+ "tasks": [
+ {
+ "type": "vendoring",
+ "enabled": False,
+ "cc": ["b@example.com", "c@example.com"],
+ "needinfo": ["d@example.com", "e@example.com"],
+ "frequency": "every",
+ },
+ {
+ "type": "commit-alert",
+ "filter": "none",
+ "source-extensions": [".c", ".cpp"],
+ "frequency": "2 commits",
+ "platform": "linux",
+ },
+ ],
+ },
+ },
+ b"""
+---
+schema: 1
+origin:
+ name: cairo
+ description: 2D Graphics Library
+ url: https://www.cairographics.org/
+ release: version 1.6.4
+ license:
+ - MPL-1.1
+ - LGPL-2.1
+ revision: AA001122334455
+vendoring:
+ url: https://example.com
+ source-hosting: gitlab
+bugzilla:
+ product: Core
+ component: Graphics
+updatebot:
+ maintainer-phab: tjr
+ maintainer-bz: a@example.com
+ tasks:
+ - type: vendoring
+ enabled: False
+ cc:
+ - b@example.com
+ - c@example.com
+ needinfo:
+ - d@example.com
+ - e@example.com
+ frequency: every
+ - type: commit-alert
+ filter: none
+ frequency: 2 commits
+ platform: linux
+ source-extensions:
+ - .c
+ - .cpp
+ """.strip(),
+ ),
+ # -------------------------------------------------
+ (
+ {
+ "schema": "1",
+ "origin": {
+ "description": "2D Graphics Library",
+ "license": ["MPL-1.1", "LGPL-2.1"],
+ "name": "cairo",
+ "release": "version 1.6.4",
+ "revision": "AA001122334455",
+ "url": "https://www.cairographics.org/",
+ },
+ "bugzilla": {"component": "Graphics", "product": "Core"},
+ "vendoring": {
+ "url": "https://example.com",
+ "source-hosting": "gitlab",
+ },
+ "updatebot": {
+ "maintainer-phab": "tjr",
+ "maintainer-bz": "a@example.com",
+ "tasks": [
+ {
+ "type": "vendoring",
+ "enabled": False,
+ "cc": ["b@example.com", "c@example.com"],
+ "needinfo": ["d@example.com", "e@example.com"],
+ "frequency": "every",
+ "blocking": "1234",
+ },
+ {
+ "type": "commit-alert",
+ "filter": "none",
+ "source-extensions": [".c", ".cpp"],
+ "frequency": "2 commits",
+ "platform": "linux",
+ },
+ ],
+ },
+ },
+ b"""
+---
+schema: 1
+origin:
+ name: cairo
+ description: 2D Graphics Library
+ url: https://www.cairographics.org/
+ release: version 1.6.4
+ license:
+ - MPL-1.1
+ - LGPL-2.1
+ revision: AA001122334455
+vendoring:
+ url: https://example.com
+ source-hosting: gitlab
+bugzilla:
+ product: Core
+ component: Graphics
+updatebot:
+ maintainer-phab: tjr
+ maintainer-bz: a@example.com
+ tasks:
+ - type: vendoring
+ enabled: False
+ cc:
+ - b@example.com
+ - c@example.com
+ needinfo:
+ - d@example.com
+ - e@example.com
+ frequency: every
+ blocking: 1234
+ - type: commit-alert
+ filter: none
+ frequency: 2 commits
+ platform: linux
+ source-extensions:
+ - .c
+ - .cpp
+ """.strip(),
+ ),
+ # -------------------------------------------------
+ (
+ "exception",
+ b"""
+---
+schema: 1
+origin:
+ name: cairo
+ description: 2D Graphics Library
+ url: https://www.cairographics.org/
+ release: version 1.6.4
+ license:
+ - MPL-1.1
+ - LGPL-2.1
+ revision: AA001122334455
+vendoring:
+ url: https://example.com
+ source-hosting: gitlab
+bugzilla:
+ product: Core
+ component: Graphics
+updatebot:
+ maintainer-phab: tjr
+ maintainer-bz: a@example.com
+ tasks:
+ - type: vendoring
+ branch: foo
+ enabled: False
+ cc:
+ - b@example.com
+ - c@example.com
+ needinfo:
+ - d@example.com
+ - e@example.com
+ frequency: every
+ blocking: 1234
+ - type: commit-alert
+ filter: none
+ frequency: 2 commits
+ platform: linux
+ source-extensions:
+ - .c
+ - .cpp
+ """.strip(),
+ ),
+ # -------------------------------------------------
+ (
+ {
+ "schema": "1",
+ "origin": {
+ "license": ["MPL-1.1", "LGPL-2.1"],
+ "name": "cairo",
+ "description": "2D Graphics Library",
+ "url": "https://www.cairographics.org/",
+ "release": "version 1.6.4",
+ "revision": "AA001122334455",
+ },
+ "bugzilla": {"component": "Graphics", "product": "Core"},
+ "vendoring": {
+ "url": "https://example.com",
+ "source-hosting": "gitlab",
+ "flavor": "individual-files",
+ "individual-files": [
+ {"upstream": "foo", "destination": "bar"}
+ ],
+ },
+ },
+ b"""
+---
+schema: 1
+origin:
+ name: cairo
+ description: 2D Graphics Library
+ url: https://www.cairographics.org/
+ release: version 1.6.4
+ license:
+ - MPL-1.1
+ - LGPL-2.1
+ revision: AA001122334455
+vendoring:
+ url: https://example.com
+ source-hosting: gitlab
+ flavor: individual-files
+ individual-files:
+ - upstream: foo
+ destination: bar
+bugzilla:
+ product: Core
+ component: Graphics
+ """.strip(),
+ ),
+ # -------------------------------------------------
+ (
+ {
+ "schema": "1",
+ "origin": {
+ "license": ["MPL-1.1", "LGPL-2.1"],
+ "name": "cairo",
+ "description": "2D Graphics Library",
+ "url": "https://www.cairographics.org/",
+ "release": "version 1.6.4",
+ "revision": "AA001122334455",
+ },
+ "bugzilla": {"component": "Graphics", "product": "Core"},
+ "vendoring": {
+ "url": "https://example.com",
+ "source-hosting": "gitlab",
+ "flavor": "individual-files",
+ "individual-files": [
+ {"upstream": "foo", "destination": "bar"}
+ ],
+ "update-actions": [
+ {"action": "move-file", "from": "foo", "to": "bar"}
+ ],
+ },
+ },
+ b"""
+---
+schema: 1
+origin:
+ name: cairo
+ description: 2D Graphics Library
+ url: https://www.cairographics.org/
+ release: version 1.6.4
+ license:
+ - MPL-1.1
+ - LGPL-2.1
+ revision: AA001122334455
+vendoring:
+ url: https://example.com
+ source-hosting: gitlab
+ flavor: individual-files
+ individual-files:
+ - upstream: foo
+ destination: bar
+ update-actions:
+ - action: move-file
+ from: foo
+ to: bar
+bugzilla:
+ product: Core
+ component: Graphics
+ """.strip(),
+ ),
+ # -------------------------------------------------
+ (
+ {
+ "schema": "1",
+ "origin": {
+ "license": ["MPL-1.1", "LGPL-2.1"],
+ "name": "cairo",
+ "description": "2D Graphics Library",
+ "url": "https://www.cairographics.org/",
+ "release": "version 1.6.4",
+ "revision": "AA001122334455",
+ },
+ "bugzilla": {"component": "Graphics", "product": "Core"},
+ "vendoring": {
+ "url": "https://example.com",
+ "source-hosting": "gitlab",
+ "flavor": "individual-files",
+ "individual-files-default-destination": "bar",
+ "individual-files-default-upstream": "foo",
+ "individual-files-list": ["foo", "bar"],
+ "update-actions": [
+ {"action": "move-file", "from": "foo", "to": "bar"}
+ ],
+ },
+ },
+ b"""
+---
+schema: 1
+origin:
+ name: cairo
+ description: 2D Graphics Library
+ url: https://www.cairographics.org/
+ release: version 1.6.4
+ license:
+ - MPL-1.1
+ - LGPL-2.1
+ revision: AA001122334455
+vendoring:
+ url: https://example.com
+ source-hosting: gitlab
+ flavor: individual-files
+ individual-files-default-upstream: foo
+ individual-files-default-destination: bar
+ individual-files-list:
+ - foo
+ - bar
+ update-actions:
+ - action: move-file
+ from: foo
+ to: bar
+bugzilla:
+ product: Core
+ component: Graphics
+ """.strip(),
+ ),
+ # -------------------------------------------------
+ (
+ "exception", # can't have both types of indidivudal-files list
+ b"""
+---
+schema: 1
+origin:
+ name: cairo
+ description: 2D Graphics Library
+ url: https://www.cairographics.org/
+ release: version 1.6.4
+ license:
+ - MPL-1.1
+ - LGPL-2.1
+ revision: AA001122334455
+vendoring:
+ url: https://example.com
+ source-hosting: gitlab
+ flavor: individual-files
+ individual-files-list:
+ - foo
+ individual-files:
+ - upstream: foo
+ destination: bar
+ update-actions:
+ - action: move-file
+ from: foo
+ to: bar
+bugzilla:
+ product: Core
+ component: Graphics
+ """.strip(),
+ ),
+ # -------------------------------------------------
+ (
+ "exception", # can't have indidivudal-files-default-upstream
+ b"""
+---
+schema: 1
+origin:
+ name: cairo
+ description: 2D Graphics Library
+ url: https://www.cairographics.org/
+ release: version 1.6.4
+ license:
+ - MPL-1.1
+ - LGPL-2.1
+ revision: AA001122334455
+vendoring:
+ url: https://example.com
+ source-hosting: gitlab
+ flavor: individual-files
+ indidivudal-files-default-upstream: foo
+ individual-files:
+ - upstream: foo
+ destination: bar
+ update-actions:
+ - action: move-file
+ from: foo
+ to: bar
+bugzilla:
+ product: Core
+ component: Graphics
+ """.strip(),
+ ),
+ # -------------------------------------------------
+ (
+ "exception", # must have indidivudal-files-default-upstream
+ b"""
+---
+schema: 1
+origin:
+ name: cairo
+ description: 2D Graphics Library
+ url: https://www.cairographics.org/
+ release: version 1.6.4
+ license:
+ - MPL-1.1
+ - LGPL-2.1
+ revision: AA001122334455
+vendoring:
+ url: https://example.com
+ source-hosting: gitlab
+ flavor: individual-files
+ indidivudal-files-default-destination: foo
+ individual-files-list:
+ - foo
+ - bar
+ update-actions:
+ - action: move-file
+ from: foo
+ to: bar
+bugzilla:
+ product: Core
+ component: Graphics
+ """.strip(),
+ ),
+ # -------------------------------------------------
+ (
+ "exception",
+ b"""
+---
+schema: 1
+origin:
+ name: cairo
+ description: 2D Graphics Library
+ url: https://www.cairographics.org/
+ release: version 1.6.4
+ license:
+ - MPL-1.1
+ - LGPL-2.1
+ revision: AA001122334455
+vendoring:
+ url: https://example.com
+ source-hosting: gitlab
+ tracking: tag
+ flavor: individual-files
+ individual-files:
+ - upstream-src: foo
+ dst: bar
+bugzilla:
+ product: Core
+ component: Graphics
+ """.strip(),
+ ),
+ # -------------------------------------------------
+ (
+ "exception",
+ b"""
+---
+schema: 1
+origin:
+ name: cairo
+ description: 2D Graphics Library
+ url: https://www.cairographics.org/
+ release: version 1.6.4
+ license:
+ - MPL-1.1
+ - LGPL-2.1
+ revision: AA001122334455
+vendoring:
+ url: https://example.com
+ source-hosting: gitlab
+ flavor: individual-files
+bugzilla:
+ product: Core
+ component: Graphics
+ """.strip(),
+ ),
+ # -------------------------------------------------
+ (
+ "exception",
+ b"""
+---
+schema: 1
+origin:
+ name: cairo
+ description: 2D Graphics Library
+ url: https://www.cairographics.org/
+ release: version 1.6.4
+ license:
+ - MPL-1.1
+ - LGPL-2.1
+ revision: AA001122334455
+vendoring:
+ url: https://example.com
+ source-hosting: gitlab
+ flavor: rust
+ individual-files:
+ - upstream: foo
+ destination: bar
+bugzilla:
+ product: Core
+ component: Graphics
+ """.strip(),
+ ),
+ # -------------------------------------------------
+ (
+ "exception",
+ b"""
+---
+schema: 1
+origin:
+ name: cairo
+ description: 2D Graphics Library
+ url: https://www.cairographics.org/
+ release: version 1.6.4
+ license:
+ - MPL-1.1
+ - LGPL-2.1
+ revision: AA001122334455
+vendoring:
+ url: https://example.com
+ source-hosting: gitlab
+ flavor: rust
+ include:
+ - foo
+bugzilla:
+ product: Core
+ component: Graphics
+ """.strip(),
+ ),
+ # -------------------------------------------------
+ (
+ "exception",
+ b"""
+---
+schema: 1
+origin:
+ name: cairo
+ description: 2D Graphics Library
+ url: https://www.cairographics.org/
+ release: version 1.6.4
+ license:
+ - MPL-1.1
+ - LGPL-2.1
+ revision: AA001122334455
+vendoring:
+ url: https://example.com
+ source-hosting: gitlab
+bugzilla:
+ product: Core
+ component: Graphics
+updatebot:
+ maintainer-phab: tjr
+ maintainer-bz: a@example.com
+ tasks:
+ - type: vendoring
+ enabled: False
+ cc:
+ - b@example.com
+ - c@example.com
+ needinfo:
+ - d@example.com
+ - e@example.com
+ frequency: every
+ blocking: foo
+ - type: commit-alert
+ filter: none
+ frequency: 2 commits
+ platform: linux
+ source-extensions:
+ - .c
+ - .cpp
+ """.strip(),
+ ),
+ # -------------------------------------------------
+ (
+ "exception",
+ b"""
+---
+schema: 1
+origin:
+ name: cairo
+ description: 2D Graphics Library
+ url: https://www.cairographics.org/
+ release: version 1.6.4
+ license:
+ - MPL-1.1
+ - LGPL-2.1
+ revision: AA001122334455
+vendoring:
+ url: https://example.com
+ source-hosting: gitlab
+bugzilla:
+ product: Core
+ component: Graphics
+updatebot:
+ maintainer-phab: tjr
+ maintainer-bz: a@example.com
+ fuzzy-paths: "must-be-array"
+ tasks:
+ - type: vendoring
+ enabled: False
+ cc:
+ - b@example.com
+ - c@example.com
+ needinfo:
+ - d@example.com
+ - e@example.com
+ frequency: every
+ - type: commit-alert
+ filter: none
+ frequency: 2 commits
+ platform: linux
+ source-extensions:
+ - .c
+ - .cpp
+ """.strip(),
+ ),
+ # -------------------------------------------------
+ (
+ "exception",
+ b"""
+---
+schema: 1
+origin:
+ name: cairo
+ description: 2D Graphics Library
+ url: https://www.cairographics.org/
+ release: version 1.6.4
+ license:
+ - MPL-1.1
+ - LGPL-2.1
+ revision: AA001122334455
+vendoring:
+ url: https://example.com
+ source-hosting: gitlab
+bugzilla:
+ product: Core
+ component: Graphics
+updatebot:
+ maintainer-phab: tjr
+ maintainer-bz: a@example.com
+ tasks:
+ - type: vendoring
+ enabled: False
+ cc:
+ - b@example.com
+ - c@example.com
+ needinfo:
+ - d@example.com
+ - e@example.com
+ frequency: every
+ - type: commit-alert
+ filter: none
+ frequency: 2 commits, 4 weeks
+ platform: linux
+ source-extensions:
+ - .c
+ - .cpp
+ """.strip(),
+ ),
+ # -------------------------------------------------
+ (
+ "exception",
+ b"""
+---
+schema: 1
+origin:
+ name: cairo
+ description: 2D Graphics Library
+ url: https://www.cairographics.org/
+ release: version 1.6.4
+ license:
+ - MPL-1.1
+ - LGPL-2.1
+ revision: AA001122334455
+vendoring:
+ url: https://example.com
+ source-hosting: gitlab
+bugzilla:
+ product: Core
+ component: Graphics
+updatebot:
+ maintainer-phab: tjr
+ maintainer-bz: a@example.com
+ tasks:
+ - type: vendoring
+ enabled: False
+ cc:
+ - b@example.com
+ - c@example.com
+ needinfo:
+ - d@example.com
+ - e@example.com
+ frequency: every
+ - type: commit-alert
+ filter: none
+ frequency: 4 weeks, 2 commits, 3 weeks
+ platform: linux
+ source-extensions:
+ - .c
+ - .cpp
+ """.strip(),
+ ),
+ # -------------------------------------------------
+ (
+ "exception",
+ b"""
+---
+schema: 1
+origin:
+ name: cairo
+ description: 2D Graphics Library
+ url: https://www.cairographics.org/
+ release: version 1.6.4
+ license:
+ - MPL-1.1
+ - LGPL-2.1
+ revision: AA001122334455
+vendoring:
+ url: https://example.com
+ source-hosting: gitlab
+ flavor: chocolate
+bugzilla:
+ product: Core
+ component: Graphics
+updatebot:
+ maintainer-phab: tjr
+ maintainer-bz: a@example.com
+ tasks:
+ - type: vendoring
+ enabled: False
+ cc:
+ - b@example.com
+ - c@example.com
+ needinfo:
+ - d@example.com
+ - e@example.com
+ frequency: every
+ - type: commit-alert
+ filter: none
+ frequency: 2 weeks
+ platform: linux
+ source-extensions:
+ - .c
+ - .cpp
+ """.strip(),
+ ),
+ # -------------------------------------------------
+ (
+ "exception",
+ b"""
+---
+schema: 1
+origin:
+ name: cairo
+ description: 2D Graphics Library
+ url: https://www.cairographics.org/
+ release: version 1.6.4
+ license:
+ - MPL-1.1
+ - LGPL-2.1
+ revision: AA001122334455
+vendoring:
+ url: https://example.com
+ source-hosting: gitlab
+ flavor: chocolate
+bugzilla:
+ product: Core
+ component: Graphics
+updatebot:
+ maintainer-phab: tjr
+ maintainer-bz: a@example.com
+ tasks:
+ - type: vendoring
+ enabled: False
+ cc:
+ - b@example.com
+ - c@example.com
+ needinfo:
+ - d@example.com
+ - e@example.com
+ frequency: every
+ - type: commit-alert
+ filter: none
+ frequency: 01 commits
+ platform: linux
+ source-extensions:
+ - .c
+ - .cpp
+ """.strip(),
+ ),
+ # -------------------------------------------------
+ (
+ "exception",
+ b"""
+---
+schema: 1
+origin:
+ name: cairo
+ description: 2D Graphics Library
+ url: https://www.cairographics.org/
+ release: version 1.6.4
+ license:
+ - MPL-1.1
+ - LGPL-2.1
+ revision: AA001122334455
+vendoring:
+ url: https://example.com
+ source-hosting: gitlab
+bugzilla:
+ product: Core
+ component: Graphics
+updatebot:
+ maintainer-phab: tjr
+ maintainer-bz: a@example.com
+ tasks:
+ - type: vendoring
+ enabled: False
+ cc:
+ - b@example.com
+ - c@example.com
+ needinfo:
+ - d@example.com
+ - e@example.com
+ frequency: every
+ - type: commit-alert
+ filter: none
+ frequency: 2 weeks
+ platform: mac
+ source-extensions:
+ - .c
+ - .cpp
+ """.strip(),
+ ),
+ # -------------------------------------------------
+ (
+ "exception",
+ b"""
+---
+schema: 1
+origin:
+ name: cairo
+ description: 2D Graphics Library
+ url: https://www.cairographics.org/
+ release: version 1.6.4
+ license:
+ - MPL-1.1
+ - LGPL-2.1
+ revision: AA001122334455
+bugzilla:
+ product: Core
+ component: Graphics
+updatebot:
+ maintainer-phab: tjr
+ maintainer-bz: a@example.com
+ tasks:
+ - type: vendoring
+ enabled: False
+ cc:
+ - b@example.com
+ - c@example.com
+ - type: commit-alert
+ filter: none
+ source-extensions:
+ - .c
+ - .cpp
+ """.strip(),
+ ),
+ # -------------------------------------------------
+ (
+ "exception",
+ b"""
+---
+schema: 1
+origin:
+ name: cairo
+ description: 2D Graphics Library
+ url: https://www.cairographics.org/
+ release: version 1.6.4
+ license:
+ - MPL-1.1
+ - LGPL-2.1
+bugzilla:
+ product: Core
+ component: Graphics
+vendoring:
+ url: https://example.com
+ source-hosting: gitlab
+updatebot:
+ maintainer-phab: tjr
+ maintainer-bz: a@example.com
+ tasks:
+ - type: vendoring
+ enabled: False
+ cc:
+ - b@example.com
+ - c@example.com
+ - type: commit-alert
+ filter: none
+ source-extensions:
+ - .c
+ - .cpp
+ """.strip(),
+ ),
+ # -------------------------------------------------
+ (
+ "exception",
+ b"""
+---
+schema: 1
+origin:
+ name: cairo
+ description: 2D Graphics Library
+ url: https://www.cairographics.org/
+ release: version 1.6.4
+ license:
+ - MPL-1.1
+ - LGPL-2.1
+ revision: AA001122334455
+vendoring:
+ url: https://example.com
+ source-hosting: gitlab
+bugzilla:
+ product: Core
+ component: Graphics
+updatebot:
+ maintainer-phab: tjr
+ maintainer-bz: a@example.com
+ tasks:
+ - type: vendoring
+ filter: none
+ """.strip(),
+ ),
+ # -------------------------------------------------
+ (
+ "exception",
+ b"""
+---
+schema: 1
+origin:
+ name: cairo
+ description: 2D Graphics Library
+ url: https://www.cairographics.org/
+ release: version 1.6.4
+ license:
+ - MPL-1.1
+ - LGPL-2.1
+ revision: AA001122334455
+vendoring:
+ url: https://example.com
+ source-hosting: gitlab
+bugzilla:
+ product: Core
+ component: Graphics
+updatebot:
+ maintainer-phab: tjr
+ maintainer-bz: a@example.com
+ tasks:
+ - type: foo
+ """.strip(),
+ ),
+ # -------------------------------------------------
+ (
+ "exception",
+ b"""
+---
+schema: 1
+origin:
+ name: cairo
+ description: 2D Graphics Library
+ url: https://www.cairographics.org/
+ release: version 1.6.4
+ license:
+ - MPL-1.1
+ - LGPL-2.1
+ revision: AA001122334455
+vendoring:
+ url: https://example.com
+ source-hosting: gitlab
+bugzilla:
+ product: Core
+ component: Graphics
+updatebot:
+ maintainer-phab: tjr
+ maintainer-bz: a@example.com
+ tasks:
+ - type: vendoring
+ source-extensions:
+ - .c
+ - .cpp
+ """.strip(),
+ ),
+ # -------------------------------------------------
+ (
+ "exception",
+ b"""
+---
+schema: 1
+origin:
+ name: cairo
+ description: 2D Graphics Library
+ url: https://www.cairographics.org/
+ release: version 1.6.4
+ license:
+ - MPL-1.1
+ - LGPL-2.1
+ revision: AA001122334455
+vendoring:
+ url: https://example.com
+ source-hosting: gitlab
+bugzilla:
+ product: Core
+ component: Graphics
+updatebot:
+ maintainer-phab: tjr
+ maintainer-bz: a@example.com
+ tasks:
+ - type: commit-alert
+ filter: hogwash
+ """.strip(),
+ ),
+ (
+ "exception",
+ b"""
+---
+schema: 1
+origin:
+ name: cairo
+ description: 2D Graphics Library
+ url: https://www.cairographics.org/
+ release: version 1.6.4
+ license:
+ - MPL-1.1
+ - LGPL-2.1
+ revision: AA001122334455
+bugzilla:
+ product: Core
+ component: Graphics
+vendoring:
+ url: https://example.com
+ source-hosting: gitlab
+updatebot:
+ maintainer-phab: tjr
+ maintainer-bz: a@example.com
+ tasks:
+ - type: vendoring
+ enabled: False
+ cc:
+ - b@example.com
+ - c@example.com
+ - type: commit-alert
+ - type: commit-alert
+ filter: none
+ source-extensions:
+ - .c
+ - .cpp""".strip(),
+ ),
+ (
+ "exception",
+ b"""
+---
+schema: 1
+origin:
+ name: cairo
+ description: 2D Graphics Library
+ url: https://www.cairographics.org/
+ release: version 1.6.4
+ license:
+ - MPL-1.1
+ - LGPL-2.1
+ revision: AA001122334455
+bugzilla:
+ product: Core
+ component: Graphics
+vendoring:
+ url: https://example.com
+ source-hosting: gitlab
+updatebot:
+ maintainer-phab: tjr
+ maintainer-bz: a@example.com
+ tasks:
+ - type: vendoring
+ enabled: False
+ cc:
+ - b@example.com
+ - c@example.com
+ - type: vendoring
+ - type: commit-alert
+ filter: none
+ source-extensions:
+ - .c
+ - .cpp""".strip(),
+ ),
+ (
+ "exception",
+ b"""
+---
+schema: 1
+origin:
+ name: cairo
+ description: 2D Graphics Library
+ url: https://www.cairographics.org/
+ release: version 1.6.4
+ license:
+ - MPL-1.1
+ - LGPL-2.1
+ revision: AA001122334455
+bugzilla:
+ product: Core
+ component: Graphics
+vendoring:
+ url: https://example.com
+ source-hosting: gitlab
+updatebot:
+ maintainer-phab: tjr
+ maintainer-bz: a@example.com
+ tasks:
+ - type: vendoring
+ enabled: False
+ cc:
+ - b@example.com
+ - c@example.com
+ - type: commit-alert
+ frequency: every-release
+ filter: none
+ source-extensions:
+ - .c
+ - .cpp""".strip(),
+ ),
+ (
+ "exception",
+ b"""
+---
+schema: 1
+origin:
+ name: cairo
+ description: 2D Graphics Library
+ url: https://www.cairographics.org/
+ release: version 1.6.4
+ license:
+ - MPL-1.1
+ - LGPL-2.1
+ revision: AA001122334455
+bugzilla:
+ product: Core
+ component: Graphics
+vendoring:
+ url: https://example.com
+ source-hosting: gitlab
+updatebot:
+ maintainer-phab: tjr
+ maintainer-bz: a@example.com
+ tasks:
+ - type: vendoring
+ enabled: False
+ cc:
+ - b@example.com
+ - c@example.com
+ frequency: 2 months
+ - type: commit-alert
+ filter: none
+ source-extensions:
+ - .c
+ - .cpp""".strip(),
+ ),
+ (
+ "exception",
+ b"""
+---
+schema: 1
+origin:
+ name: cairo
+ description: 2D Graphics Library
+ url: https://www.cairographics.org/
+ release: version 1.6.4
+ license:
+ - MPL-1.1
+ - LGPL-2.1
+ revision: AA001122334455
+vendoring:
+ url: https://example.com
+ source-hosting: gitlab
+bugzilla:
+ product: Core
+ component: Graphics
+updatebot:
+ maintainer-phab: tjr
+ maintainer-bz: a@example.com
+ tasks:
+ - type: commit-alert
+ frequency: 0 weeks
+ """.strip(),
+ ),
+ ]
+ )
+
+ # ===========================================================================================
+ def test_malformed(self):
+ with mozfile.NamedTemporaryFile() as tf:
+ tf.write(b"blah")
+ tf.flush()
+ with self.assertRaises(MozYamlVerifyError):
+ load_moz_yaml(tf.name, require_license_file=False)
+
+ def test_schema(self):
+ with mozfile.NamedTemporaryFile() as tf:
+ tf.write(b"schema: 99")
+ tf.flush()
+ with self.assertRaises(MozYamlVerifyError):
+ load_moz_yaml(tf.name, require_license_file=False)
+
+ def test_json(self):
+ with mozfile.NamedTemporaryFile() as tf:
+ tf.write(
+ b'{"origin": {"release": "version 1.6.4", "url": "https://w'
+ b'ww.cairographics.org/", "description": "2D Graphics Libra'
+ b'ry", "license": ["MPL-1.1", "LGPL-2.1"], "name": "cairo"}'
+ b', "bugzilla": {"product": "Core", "component": "Graphics"'
+ b'}, "schema": 1}'
+ )
+ tf.flush()
+ with self.assertRaises(MozYamlVerifyError):
+ load_moz_yaml(tf.name, require_license_file=False)
+
+ def test_revision(self):
+ self.process_test_vectors(
+ [
+ (
+ {
+ "schema": "1",
+ "origin": {
+ "description": "2D Graphics Library",
+ "license": ["MPL-1.1", "LGPL-2.1"],
+ "name": "cairo",
+ "release": "version 1.6.4",
+ "revision": "v1.6.37",
+ "url": "https://www.cairographics.org/",
+ },
+ "bugzilla": {"component": "Graphics", "product": "Core"},
+ },
+ b"""
+---
+schema: 1
+origin:
+ name: cairo
+ description: 2D Graphics Library
+ url: https://www.cairographics.org/
+ release: version 1.6.4
+ license:
+ - MPL-1.1
+ - LGPL-2.1
+ revision: v1.6.37
+bugzilla:
+ product: Core
+ component: Graphics""".strip(),
+ ),
+ (
+ "exception",
+ b"""
+---
+schema: 1
+origin:
+ name: cairo
+ description: 2D Graphics Library
+ url: https://www.cairographics.org/
+ release: version 1.6.4
+ license:
+ - MPL-1.1
+ - LGPL-2.1
+ revision: 4.0.0.
+bugzilla:
+ product: Core
+ component: Graphics""".strip(),
+ ),
+ (
+ "exception",
+ b"""
+---
+schema: 1
+origin:
+ name: cairo
+ description: 2D Graphics Library
+ url: https://www.cairographics.org/
+ release: version 1.6.4
+ license:
+ - MPL-1.1
+ - LGPL-2.1
+ revision: 4.^.0
+bugzilla:
+ product: Core
+ component: Graphics""".strip(),
+ ),
+ (
+ "exception",
+ b"""
+---
+schema: 1
+origin:
+ name: cairo
+ description: 2D Graphics Library
+ url: https://www.cairographics.org/
+ release: version 1.6.4
+ license:
+ - MPL-1.1
+ - LGPL-2.1
+ revision: " "
+bugzilla:
+ product: Core
+ component: Graphics""".strip(),
+ ),
+ (
+ "exception",
+ b"""
+---
+schema: 1
+origin:
+ name: cairo
+ description: 2D Graphics Library
+ url: https://www.cairographics.org/
+ release: version 1.6.4
+ license:
+ - MPL-1.1
+ - LGPL-2.1
+ revision: ???
+bugzilla:
+ product: Core
+ component: Graphics""".strip(),
+ ),
+ (
+ "exception",
+ b"""
+---
+schema: 1
+origin:
+ name: cairo
+ description: 2D Graphics Library
+ url: https://www.cairographics.org/
+ release: version 1.6.4
+ license:
+ - MPL-1.1
+ - LGPL-2.1
+ revision: ]
+bugzilla:
+ product: Core
+ component: Graphics""".strip(),
+ ),
+ (
+ "exception",
+ b"""
+---
+schema: 1
+origin:
+ name: cairo
+ description: 2D Graphics Library
+ url: https://www.cairographics.org/
+ release: version 1.6.4
+ license:
+ - MPL-1.1
+ - LGPL-2.1
+ revision: AA001122334455
+bugzilla:
+ product: Core
+ component: Graphics
+vendoring:
+ url: https://example.com
+ source-hosting: gitlab
+ update-actions:
+ - action: run-script
+ cwd: '{cwd}'
+ script: 'script.py'
+ args: ['hi']
+ pattern: 'hi'
+""".strip(),
+ ),
+ (
+ "exception",
+ b"""
+---
+schema: 1
+origin:
+ name: cairo
+ description: 2D Graphics Library
+ url: https://www.cairographics.org/
+ release: version 1.6.4
+ license:
+ - MPL-1.1
+ - LGPL-2.1
+ revision: AA001122334455
+bugzilla:
+ product: Core
+ component: Graphics
+vendoring:
+ url: https://example.com
+ source-hosting: gitlab
+ update-actions:
+ - action: run-script
+ cwd: '{cwd}'
+ args: ['hi']
+""".strip(),
+ ),
+ ]
+ )
+
+
+if __name__ == "__main__":
+ main()