Changeset View
Changeset View
Standalone View
Standalone View
swh/model/hypothesis_strategies.py
Show First 20 Lines • Show All 85 Lines • ▼ Show 20 Lines | |||||
@composite | @composite | ||||
def releases(draw): | def releases(draw): | ||||
(date, author) = draw(one_of( | (date, author) = draw(one_of( | ||||
tuples(none(), none()), | tuples(none(), none()), | ||||
tuples(timestamps_with_timezone(), persons()))) | tuples(timestamps_with_timezone(), persons()))) | ||||
rel = draw(builds( | rel = draw(builds( | ||||
Release, | Release, | ||||
id=sha1_git(), | |||||
author=none(), | author=none(), | ||||
date=none(), | date=none(), | ||||
target=sha1_git())) | target=sha1_git())) | ||||
return attr.evolve( | return attr.evolve( | ||||
rel, | rel, | ||||
date=date, | date=date, | ||||
author=author) | author=author) | ||||
def revision_metadata(): | def revision_metadata(): | ||||
return dictionaries(pgsql_text(), pgsql_text()) | return dictionaries(pgsql_text(), pgsql_text()) | ||||
def revisions(): | def revisions(): | ||||
return builds( | return builds( | ||||
Revision, | Revision, | ||||
id=sha1_git(), | |||||
date=timestamps_with_timezone(), | date=timestamps_with_timezone(), | ||||
committer_date=timestamps_with_timezone(), | committer_date=timestamps_with_timezone(), | ||||
parents=lists(sha1_git()), | parents=lists(sha1_git()), | ||||
directory=sha1_git(), | directory=sha1_git(), | ||||
metadata=one_of(none(), revision_metadata())) | metadata=one_of(none(), revision_metadata())) | ||||
# TODO: metadata['extra_headers'] can have binary keys and values | # TODO: metadata['extra_headers'] can have binary keys and values | ||||
def directory_entries(): | def directory_entries(): | ||||
return builds( | return builds( | ||||
DirectoryEntry, | DirectoryEntry, | ||||
target=sha1_git(), | target=sha1_git(), | ||||
perms=sampled_from([perm.value for perm in DentryPerms])) | perms=sampled_from([perm.value for perm in DentryPerms])) | ||||
def directories(): | def directories(): | ||||
return builds( | return builds( | ||||
Directory, | Directory, | ||||
id=sha1_git(), | |||||
entries=lists(directory_entries())) | entries=lists(directory_entries())) | ||||
@composite | @composite | ||||
def contents(draw): | def contents(draw): | ||||
(status, data, reason) = draw(one_of( | (status, data, reason) = draw(one_of( | ||||
tuples(just('visible'), binary(), none()), | tuples(just('visible'), binary(), none()), | ||||
tuples(just('absent'), none(), pgsql_text()), | tuples(just('absent'), none(), pgsql_text()), | ||||
▲ Show 20 Lines • Show All 97 Lines • Show Last 20 Lines |