/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to tests/test_pristine_tar.py

  • Committer: Jelmer Vernooij
  • Date: 2012-08-26 12:39:14 UTC
  • mto: (0.200.1614 trunk)
  • mto: This revision was merged to the branch mainline in revision 6960.
  • Revision ID: jelmer@samba.org-20120826123914-yvynmlfo3lrrxl6a
Add function for reading pristine tar data from a git repo.

Show diffs side-by-side

added added

removed removed

Lines of Context:
18
18
 
19
19
from base64 import standard_b64encode
20
20
 
21
 
from bzrlib.plugins.git.pristine_tar import revision_pristine_tar_data
 
21
from bzrlib.plugins.git.pristine_tar import (
 
22
    revision_pristine_tar_data,
 
23
    read_git_pristine_tar_data,
 
24
    )
22
25
 
23
26
from bzrlib.revision import Revision
24
27
from bzrlib.tests import TestCase
25
28
 
 
29
from dulwich.objects import (
 
30
    Blob,
 
31
    Tree,
 
32
    )
 
33
from dulwich.repo import (
 
34
    MemoryRepo as GitMemoryRepo,
 
35
    )
 
36
import stat
 
37
 
 
38
 
26
39
class RevisionPristineTarDataTests(TestCase):
27
40
 
28
41
    def test_pristine_tar_delta_unknown(self):
34
47
        rev = Revision("myrevid")
35
48
        rev.properties["deb-pristine-delta"] = standard_b64encode("bla")
36
49
        self.assertEquals("bla", revision_pristine_tar_data(rev))
 
50
 
 
51
 
 
52
class ReadPristineTarData(TestCase):
 
53
 
 
54
    def test_read_pristine_tar_data_no_branch(self):
 
55
        r = GitMemoryRepo()
 
56
        self.assertRaises(KeyError, read_git_pristine_tar_data,
 
57
            r, "foo")
 
58
 
 
59
    def test_read_pristine_tar_data_no_file(self):
 
60
        r = GitMemoryRepo()
 
61
        t = Tree()
 
62
        b = Blob.from_string("README")
 
63
        r.object_store.add_object(b)
 
64
        t.add("README", stat.S_IFREG | 0644, b.id)
 
65
        r.object_store.add_object(t)
 
66
        r.do_commit("Add README", tree=t.id,
 
67
                    ref='refs/heads/pristine-tar')
 
68
        self.assertRaises(KeyError, read_git_pristine_tar_data,
 
69
            r, "foo")
 
70
 
 
71
    def test_read_pristine_tar_data(self):
 
72
        r = GitMemoryRepo()
 
73
        delta = Blob.from_string("some yummy data")
 
74
        r.object_store.add_object(delta)
 
75
        idfile = Blob.from_string("someid")
 
76
        r.object_store.add_object(idfile)
 
77
        t = Tree()
 
78
        t.add("foo.delta", stat.S_IFREG | 0644, delta.id)
 
79
        t.add("foo.id", stat.S_IFREG | 0644, idfile.id)
 
80
        r.object_store.add_object(t)
 
81
        r.do_commit("pristine tar delta for foo", tree=t.id,
 
82
                    ref='refs/heads/pristine-tar')
 
83
        self.assertEquals(
 
84
            ("some yummy data", "someid"),
 
85
            read_git_pristine_tar_data(r, 'foo'))