diff options
| author | Sebastian Thiel <byronimo@gmail.com> | 2009-10-11 22:50:44 +0200 |
|---|---|---|
| committer | Sebastian Thiel <byronimo@gmail.com> | 2009-10-11 22:50:44 +0200 |
| commit | 3c0a65226f038c58fc6d6ed525f38fc00b3579b7 (patch) | |
| tree | a5b715a490d9cbd8f45eabc1968374c96bdea1c0 /test/git/test_tag.py | |
| parent | 9c0c2fc4ee2d8a5d0a2de50ba882657989dedc51 (diff) | |
| parent | c68459a17ff59043d29c90020fffe651b2164e6a (diff) | |
| download | GitPython-3c0a65226f038c58fc6d6ed525f38fc00b3579b7.tar.gz GitPython-3c0a65226f038c58fc6d6ed525f38fc00b3579b7.zip | |
Merge branch 'hierarchyfix' into improvements
* hierarchyfix:
Added remaining tests for new base classes and removed some methods whose existance was doubtful or unsafe
Fixed remaining tests to deal with the changes
commit: fixed failing commit tests as the mocked git command would always return the same thing which does not work anymore - re-implemented it in a more dynamic manner, but in the end tests will have to be revised anyway
mode-only change for test system - this should be in a separate repository in fact so that changes are a little more self-contained and not depending on the actual source repository
fixed issue in Ref.name implementation which would not handle components properly
lazymixin system now supports per-attribute baking, it is up to the class whether it bakes more. This also leads to more efficient use of memory as values are only cached and set when required - the baking system does not require an own tracking variable anymore, and values are only to be cached once - then python will natively find the cache without involving any additional overhead. This works by using __getattr__ instead of __get_attribute__ which would always be called
put Tree and Blob onto a new base class suitable to deal with IndexObjects
blob tests fixed to deal with changes to the Blob type
converted all spaces to tabs ( 4 spaces = 1 tab ) just to allow me and my editor to work with the files properly. Can convert it back for releaes
Re-designed the tag testing - it does not use fixtures anymore but dyamically checks the existance of tags within the repository - it basically tests the interface and checks that expected return types are actually returned
Intermediate commit: commit,tree and blob objects now derive from object - test is in place which still fails on purpose. Need to integrate tags which can be objects or just a special form of a ref
Renamed lazy.py to base.py to have a file for base classes - lazy not yet changed to allow proper rename tracking
Diffstat (limited to 'test/git/test_tag.py')
| -rw-r--r-- | test/git/test_tag.py | 45 |
1 files changed, 22 insertions, 23 deletions
diff --git a/test/git/test_tag.py b/test/git/test_tag.py index 732bbd45..fe3f78cc 100644 --- a/test/git/test_tag.py +++ b/test/git/test_tag.py @@ -7,30 +7,29 @@ from mock import * from test.testlib import * from git import * +from git.tag import TagObject +import time class TestTag(object): - def setup(self): - self.repo = Repo(GIT_REPO) + def setup(self): + self.repo = Repo(GIT_REPO) - @patch_object(Git, '_call_process') - def test_list_from_string(self, git): - git.return_value = fixture('for_each_ref_tags') - - tags = self.repo.tags - - assert_equal(1, len(tags)) - assert_equal('v0.7.1', tags[0].name) - assert_equal('634396b2f541a9f2d58b00be1a07f0c358b999b3', tags[0].commit.id) - - assert_true(git.called) - assert_equal(git.call_args, (('for_each_ref', 'refs/tags'), {'sort': 'committerdate', 'format': '%(refname)%00%(objectname)'})) + def test_tag_base(self): + tag_object_refs = list() + for tag in self.repo.tags: + assert "refs/tags" in tag.path + assert tag.name + assert isinstance( tag.commit, Commit ) + if tag.tag is not None: + tag_object_refs.append( tag ) + tagobj = tag.tag + assert isinstance( tagobj, TagObject ) + assert tagobj.tag == tag.name + assert isinstance( tagobj.tagger, Actor ) + assert isinstance( tagobj.tagged_date, time.struct_time ) + assert tagobj.message + # END if we have a tag object + # END for tag in repo-tags + assert tag_object_refs + - @patch_object(Git, '_call_process') - def test_repr(self, git): - git.return_value = fixture('for_each_ref') - - tag = self.repo.tags[0] - assert_equal('<git.Tag "%s">' % tag.name, repr(tag)) - - assert_true(git.called) - assert_equal(git.call_args, (('for_each_ref', 'refs/tags'), {'sort': 'committerdate', 'format': '%(refname)%00%(objectname)'})) |
