|Function||open_repo||Open a copy of a repo in a temporary directory.|
|Function||tear_down_repo||Tear down a test repository.|
|Function||make_object||Make an object for testing and assign some members.|
|Function||make_commit||Make a Commit object with a default set of members.|
|Function||make_tag||Make a Tag object with a default set of values.|
|Function||functest_builder||Generate a test method that tests the given function.|
|Function||ext_functest_builder||Generate a test method that tests the given extension function.|
|Function||build_pack||Write test pack data from a concise spec.|
|Function||build_commit_graph||Build a commit graph from a concise specification.|
|Function||setup_warning_catcher||Wrap warnings.showwarning with code that records warnings.|
Open a copy of a repo in a temporary directory.
Use this function for accessing repos in dulwich/tests/data/repos to avoid accidentally or intentionally modifying those repos in place. Use tear_down_repo to delete any temp files created.
|Parameters||name||The name of the repository, relative to dulwich/tests/data/repos|
|temp_dir||temporary directory to initialize to. If not provided, a temporary directory will be created.|
|Returns||An initialized Repo object that lives in a temporary directory.|
Make an object for testing and assign some members.
This method creates a new subclass to allow arbitrary attribute reassignment, which is not otherwise possible with objects having __slots__.
|Parameters||attrs||dict of attributes to set on the new object.|
|Returns||A newly initialized object of type cls.|
|Parameters||attrs||dict of attributes to overwrite from the default values.|
|Returns||A newly initialized Commit object.|
|Parameters||target||object to be tagged (Commit, Blob, Tree, etc)|
|attrs||dict of attributes to overwrite from the default values.|
|Returns||A newly initialized Tag object.|
Generate a test method that tests the given extension function.
This is intended to generate test methods that test both a pure-Python version and an extension version using common test code. The extension test will raise SkipTest if the extension is not found.
test_foo = functest_builder(_do_some_test, foo_py) test_foo_extension = ext_functest_builder(_do_some_test, _foo_c)
|Parameters||method||The method to run. It must must two parameters, self and the function implementation to test.|
|func||The function implementation to pass to method.|
|Parameters||f||A file-like object to write the pack to.|
A list of (type_num, obj). For non-delta types, obj is the string of that object's data. For delta types, obj is a tuple of (base, data), where:
Note that offsets/refs and deltas are computed within this function.
|store||An optional ObjectStore for looking up external refs.|
|Returns||A list of tuples in the order specified by objects_spec: (offset, type num, data, sha, CRC32)|
Build a commit graph from a concise specification.
Sample usage: >>> c1, c2, c3 = build_commit_graph(store, [, [2, 1], [3, 1, 2]]) >>> store[store[c3].parents] == c1 True >>> store[store[c3].parents] == c2 True
If not otherwise specified, commits will refer to the empty tree and have commit times increasing in the same order as the commit spec.
|Parameters||object_store||An ObjectStore to commit objects to.|
|commit_spec||An iterable of iterables of ints defining the commit graph. Each entry defines one commit, and entries must be in topological order. The first element of each entry is a commit number, and the remaining elements are its parents. The commit numbers are only meaningful for the call to make_commits; since real commit objects are created, they will get created with real, opaque SHAs.|
|trees||An optional dict of commit number -> tree spec for building trees for commits. The tree spec is an iterable of (path, blob, mode) or (path, blob) entries; if mode is omitted, it defaults to the normal file mode (0100644).|
|attrs||A dict of commit number -> (dict of attribute -> value) for assigning additional values to the commits.|
|Returns||The list of commit objects created.|
|Raises||ValueError||If an undefined commit identifier is listed as a parent.|