Skip to content
Snippets Groups Projects
Commit 9d517c17 authored by vlorentz's avatar vlorentz
Browse files

hypothesis_strategies: Generate raw_manifest

parent 2abbf734
No related branches found
Tags v4.0.0
No related merge requests found
......@@ -215,7 +215,7 @@ def releases_d(draw):
target = sha1_git()
metadata = optional(revision_metadata())
return draw(
d = draw(
one_of(
builds(
dict,
......@@ -242,6 +242,11 @@ def releases_d(draw):
)
)
raw_manifest = draw(optional(binary()))
if raw_manifest:
d["raw_manifest"] = raw_manifest
return d
def releases():
return releases_d().map(Release.from_dict)
......@@ -256,23 +261,31 @@ def extra_headers():
).map(tuple)
def revisions_d():
return builds(
dict,
message=optional(binary()),
synthetic=booleans(),
author=persons_d(),
committer=persons_d(),
date=timestamps_with_timezone_d(),
committer_date=timestamps_with_timezone_d(),
parents=tuples(sha1_git()),
directory=sha1_git(),
type=sampled_from([x.value for x in RevisionType]),
metadata=optional(revision_metadata()),
extra_headers=extra_headers(),
@composite
def revisions_d(draw):
d = draw(
builds(
dict,
message=optional(binary()),
synthetic=booleans(),
author=persons_d(),
committer=persons_d(),
date=timestamps_with_timezone_d(),
committer_date=timestamps_with_timezone_d(),
parents=tuples(sha1_git()),
directory=sha1_git(),
type=sampled_from([x.value for x in RevisionType]),
metadata=optional(revision_metadata()),
extra_headers=extra_headers(),
)
)
# TODO: metadata['extra_headers'] can have binary keys and values
raw_manifest = draw(optional(binary()))
if raw_manifest:
d["raw_manifest"] = raw_manifest
return d
def revisions():
return revisions_d().map(Revision.from_dict)
......@@ -316,8 +329,14 @@ def directory_entries():
return directory_entries_d().map(DirectoryEntry)
def directories_d():
return builds(dict, entries=tuples(directory_entries_d()))
@composite
def directories_d(draw):
d = draw(builds(dict, entries=tuples(directory_entries_d())))
raw_manifest = draw(optional(binary()))
if raw_manifest:
d["raw_manifest"] = raw_manifest
return d
def directories():
......
......@@ -753,7 +753,7 @@ def test_skipped_content_naive_datetime():
# Directory
@given(strategies.directories())
@given(strategies.directories().filter(lambda d: d.raw_manifest is None))
def test_directory_check(directory):
directory.check()
......@@ -770,7 +770,7 @@ def test_directory_check(directory):
directory2.check()
@given(strategies.directories())
@given(strategies.directories().filter(lambda d: d.raw_manifest is None))
def test_directory_raw_manifest(directory):
assert "raw_manifest" not in directory.to_dict()
......@@ -813,7 +813,7 @@ def test_directory_duplicate_entry_name():
# Release
@given(strategies.releases())
@given(strategies.releases().filter(lambda rel: rel.raw_manifest is None))
def test_release_check(release):
release.check()
......@@ -830,10 +830,8 @@ def test_release_check(release):
release2.check()
@given(strategies.releases())
@given(strategies.releases().filter(lambda rev: rev.raw_manifest is None))
def test_release_raw_manifest(release):
assert "raw_manifest" not in release.to_dict()
raw_manifest = b"foo"
id_ = hashlib.new("sha1", raw_manifest).digest()
......@@ -852,7 +850,7 @@ def test_release_raw_manifest(release):
# Revision
@given(strategies.revisions())
@given(strategies.revisions().filter(lambda rev: rev.raw_manifest is None))
def test_revision_check(revision):
revision.check()
......@@ -869,9 +867,8 @@ def test_revision_check(revision):
revision2.check()
@given(strategies.revisions())
@given(strategies.revisions().filter(lambda rev: rev.raw_manifest is None))
def test_revision_raw_manifest(revision):
assert "raw_manifest" not in revision.to_dict()
raw_manifest = b"foo"
id_ = hashlib.new("sha1", raw_manifest).digest()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment