diff options
author | Sebastian Thiel <byronimo@gmail.com> | 2009-10-20 22:05:51 +0200 |
---|---|---|
committer | Sebastian Thiel <byronimo@gmail.com> | 2009-10-20 22:05:51 +0200 |
commit | 152bab7eb64e249122fefab0d5531db1e065f539 (patch) | |
tree | 160cfa3001fc95eefa2c2577564738389e7753f1 | |
parent | 56823868efddd3bdbc0b624cdc79adc3a2e94a75 (diff) | |
download | gitpython-152bab7eb64e249122fefab0d5531db1e065f539.tar.gz |
improved IndexEntry type and added test for parsing of the stage
-rw-r--r-- | lib/git/index.py | 8 | ||||
-rw-r--r-- | test/fixtures/index_merge | bin | 0 -> 9192 bytes | |||
-rw-r--r-- | test/git/test_index.py | 14 |
3 files changed, 13 insertions, 9 deletions
diff --git a/lib/git/index.py b/lib/git/index.py index 1ce4183b..ad581ad4 100644 --- a/lib/git/index.py +++ b/lib/git/index.py @@ -62,7 +62,7 @@ class IndexEntry(tuple): return self[7] @property - def data_size(self): + def size(self): return self[8] @property @@ -70,7 +70,7 @@ class IndexEntry(tuple): return self[9] @property - def path_size(self): + def stage(self): return self[10] @@ -108,7 +108,7 @@ class Index(object): real_size = ((stream.tell() - beginoffset + 8) & ~7) data = stream.read((beginoffset + real_size) - stream.tell()) return IndexEntry((path, ctime, mtime, dev, ino, mode, uid, gid, size, - binascii.hexlify(sha), path_size)) + binascii.hexlify(sha), flags >> 12)) def _read_header(self, stream): @@ -129,7 +129,7 @@ class Index(object): count = 0 while count < num_entries: entry = self._read_entry(stream) - self.entries[entry[0]] = entry[1:] + self.entries[(entry.path,entry.stage)] = entry count += 1 # END for each entry diff --git a/test/fixtures/index_merge b/test/fixtures/index_merge Binary files differnew file mode 100644 index 00000000..2a743455 --- /dev/null +++ b/test/fixtures/index_merge diff --git a/test/git/test_index.py b/test/git/test_index.py index 91ce22fd..86bde655 100644 --- a/test/git/test_index.py +++ b/test/git/test_index.py @@ -23,11 +23,15 @@ class TestTree(TestCase): # test entry last_val = None entry = index.entries.itervalues().next() - for name, method in inspect.getmembers(entry,inspect.ismethod): - val = method(entry) - assert val != last_val - last_val = val + for attr in ("path","ctime","mtime","dev","inode","mode","uid", + "gid","size","sha","stage"): + val = getattr(entry, attr) # END for each method + # test stage + index_merge = Index.from_file(fixture_path("index_merge")) + assert len(list(e for e in index_merge.entries.itervalues() if e.stage != 0 )) + # write - self.fail("writing, object type and stage") + self.fail("writing, what is 'size' attribute for ?") + |