diff options
author | Mathieu Bridon <bochecha@daitauha.fr> | 2017-10-30 18:03:03 +0100 |
---|---|---|
committer | Mathieu Bridon <bochecha@daitauha.fr> | 2017-11-03 14:57:24 +0800 |
commit | 958d118a380a4785e26f4542532216c33bad408d (patch) | |
tree | 30b0ae15a741e2d9820d07bdd17072e5261d00cf /tests | |
parent | 3f25bb99437b17e627c26719c83c14294fe25e80 (diff) | |
download | buildstream-958d118a380a4785e26f4542532216c33bad408d.tar.gz |
Add a new zip sourcezip
This is equivalent to the tar source, but for Zip archives.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/cachekey/project/sources/zip1.bst | 5 | ||||
-rw-r--r-- | tests/cachekey/project/sources/zip1.expected | 1 | ||||
-rw-r--r-- | tests/cachekey/project/sources/zip2.bst | 6 | ||||
-rw-r--r-- | tests/cachekey/project/sources/zip2.expected | 1 | ||||
-rw-r--r-- | tests/cachekey/project/target.bst | 2 | ||||
-rw-r--r-- | tests/cachekey/project/target.expected | 2 | ||||
-rw-r--r-- | tests/testutils/repo/__init__.py | 2 | ||||
-rw-r--r-- | tests/testutils/repo/zip.py | 40 |
8 files changed, 58 insertions, 1 deletions
diff --git a/tests/cachekey/project/sources/zip1.bst b/tests/cachekey/project/sources/zip1.bst new file mode 100644 index 000000000..a55eeb969 --- /dev/null +++ b/tests/cachekey/project/sources/zip1.bst @@ -0,0 +1,5 @@ +kind: import +sources: +- kind: zip + url: https://example.com/releases/1.4/foo-1.4.5.zip + ref: 6c9f6f68a131ec6381da82f2bff978083ed7f4f7991d931bfa767b7965ebc94b diff --git a/tests/cachekey/project/sources/zip1.expected b/tests/cachekey/project/sources/zip1.expected new file mode 100644 index 000000000..6672e86ce --- /dev/null +++ b/tests/cachekey/project/sources/zip1.expected @@ -0,0 +1 @@ +61b75fc80ab68a1aadc62afbbbc617d94ba561849fe31b4aab943b739191f96c
\ No newline at end of file diff --git a/tests/cachekey/project/sources/zip2.bst b/tests/cachekey/project/sources/zip2.bst new file mode 100644 index 000000000..1f3961a6b --- /dev/null +++ b/tests/cachekey/project/sources/zip2.bst @@ -0,0 +1,6 @@ +kind: import +sources: +- kind: zip + url: https://example.com/releases/1.4/foo-1.4.5.zip + ref: 6c9f6f68a131ec6381da82f2bff978083ed7f4f7991d931bfa767b7965ebc94b + base-dir: src diff --git a/tests/cachekey/project/sources/zip2.expected b/tests/cachekey/project/sources/zip2.expected new file mode 100644 index 000000000..092f688c5 --- /dev/null +++ b/tests/cachekey/project/sources/zip2.expected @@ -0,0 +1 @@ +692cb18cb28ab55aaaab97a92de07c924791cb8b89e1094771ab035f051ad4c4
\ No newline at end of file diff --git a/tests/cachekey/project/target.bst b/tests/cachekey/project/target.bst index 1107bcf0a..d49abc8ca 100644 --- a/tests/cachekey/project/target.bst +++ b/tests/cachekey/project/target.bst @@ -15,6 +15,8 @@ depends: - sources/patch3.bst - sources/tar1.bst - sources/tar2.bst +- sources/zip1.bst +- sources/zip2.bst - elements/build1.bst - elements/compose1.bst - elements/compose2.bst diff --git a/tests/cachekey/project/target.expected b/tests/cachekey/project/target.expected index 75d811eca..2260f4bee 100644 --- a/tests/cachekey/project/target.expected +++ b/tests/cachekey/project/target.expected @@ -1 +1 @@ -2926d3718d1430a90e18dd66135a89f87de3acd400cd6444bc4e613caaac944d
\ No newline at end of file +345ceb4f27d21143002f369d57a34cb2a3a95715f85c4ea4360df7f5cf14a42b
\ No newline at end of file diff --git a/tests/testutils/repo/__init__.py b/tests/testutils/repo/__init__.py index 3516679aa..1123d6f5e 100644 --- a/tests/testutils/repo/__init__.py +++ b/tests/testutils/repo/__init__.py @@ -6,12 +6,14 @@ from .git import Git from .bzr import Bzr from .ostree import OSTree from .tar import Tar +from .zip import Zip ALL_REPO_KINDS = OrderedDict() ALL_REPO_KINDS['git'] = Git ALL_REPO_KINDS['bzr'] = Bzr ALL_REPO_KINDS['ostree'] = OSTree ALL_REPO_KINDS['tar'] = Tar +ALL_REPO_KINDS['zip'] = Zip # create_repo() diff --git a/tests/testutils/repo/zip.py b/tests/testutils/repo/zip.py new file mode 100644 index 000000000..47c402421 --- /dev/null +++ b/tests/testutils/repo/zip.py @@ -0,0 +1,40 @@ +import hashlib +import os +import zipfile + +from buildstream.utils import sha256sum + +from .repo import Repo + + +class Zip(Repo): + + def create(self, directory): + archive = os.path.join(self.repo, 'file.zip') + + old_dir = os.getcwd() + os.chdir(directory) + with zipfile.ZipFile(archive, "w") as zip: + for root, dirs, files in os.walk('.'): + names = dirs + files + names = [os.path.join(root, name) for name in names] + + for name in names: + zip.write(name) + + os.chdir(old_dir) + + return sha256sum(archive) + + def source_config(self, ref=None): + archive = os.path.join(self.repo, 'file.zip') + config = { + 'kind': 'zip', + 'url': 'file://' + archive, + 'directory': '', + 'base-dir': '' + } + if ref is not None: + config['ref'] = ref + + return config |