bzr branch
http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar
|
0.277.2
by Jelmer Vernooij
Add tests for basic pristine tar extraction function. |
1 |
# Copyright (C) 2012 Jelmer Vernooij <jelmer@samba.org>
|
2 |
#
|
|
3 |
# This program is free software; you can redistribute it and/or modify
|
|
4 |
# it under the terms of the GNU General Public License as published by
|
|
5 |
# the Free Software Foundation; either version 2 of the License, or
|
|
6 |
# (at your option) any later version.
|
|
7 |
#
|
|
8 |
# This program is distributed in the hope that it will be useful,
|
|
9 |
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
10 |
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
11 |
# GNU General Public License for more details.
|
|
12 |
#
|
|
13 |
# You should have received a copy of the GNU General Public License
|
|
14 |
# along with this program; if not, write to the Free Software
|
|
15 |
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
16 |
||
17 |
"""Tests for pristine tar extraction code."""
|
|
18 |
||
19 |
from base64 import standard_b64encode |
|
20 |
||
|
0.200.1642
by Jelmer Vernooij
Use relative imports in tests. |
21 |
from ..pristine_tar import ( |
|
0.277.4
by Jelmer Vernooij
Add function for storing git pristine tar delta files. |
22 |
get_pristine_tar_tree, |
|
0.277.3
by Jelmer Vernooij
Add function for reading pristine tar data from a git repo. |
23 |
revision_pristine_tar_data, |
24 |
read_git_pristine_tar_data, |
|
|
0.277.4
by Jelmer Vernooij
Add function for storing git pristine tar delta files. |
25 |
store_git_pristine_tar_data, |
|
0.277.3
by Jelmer Vernooij
Add function for reading pristine tar data from a git repo. |
26 |
)
|
|
0.277.2
by Jelmer Vernooij
Add tests for basic pristine tar extraction function. |
27 |
|
|
0.200.1642
by Jelmer Vernooij
Use relative imports in tests. |
28 |
from ....revision import Revision |
29 |
from ....tests import TestCase |
|
|
0.277.2
by Jelmer Vernooij
Add tests for basic pristine tar extraction function. |
30 |
|
|
0.277.3
by Jelmer Vernooij
Add function for reading pristine tar data from a git repo. |
31 |
from dulwich.objects import ( |
32 |
Blob, |
|
33 |
Tree, |
|
34 |
)
|
|
35 |
from dulwich.repo import ( |
|
36 |
MemoryRepo as GitMemoryRepo, |
|
37 |
)
|
|
38 |
import stat |
|
39 |
||
40 |
||
|
0.277.2
by Jelmer Vernooij
Add tests for basic pristine tar extraction function. |
41 |
class RevisionPristineTarDataTests(TestCase): |
42 |
||
43 |
def test_pristine_tar_delta_unknown(self): |
|
44 |
rev = Revision("myrevid") |
|
45 |
self.assertRaises(KeyError, |
|
46 |
revision_pristine_tar_data, rev) |
|
47 |
||
48 |
def test_pristine_tar_delta_gz(self): |
|
49 |
rev = Revision("myrevid") |
|
50 |
rev.properties["deb-pristine-delta"] = standard_b64encode("bla") |
|
|
0.277.6
by Jelmer Vernooij
Add 'bzr git-push-pristine-tar' command. |
51 |
self.assertEquals(("bla", "gz"), revision_pristine_tar_data(rev)) |
|
0.277.3
by Jelmer Vernooij
Add function for reading pristine tar data from a git repo. |
52 |
|
53 |
||
54 |
class ReadPristineTarData(TestCase): |
|
55 |
||
56 |
def test_read_pristine_tar_data_no_branch(self): |
|
57 |
r = GitMemoryRepo() |
|
58 |
self.assertRaises(KeyError, read_git_pristine_tar_data, |
|
59 |
r, "foo") |
|
60 |
||
61 |
def test_read_pristine_tar_data_no_file(self): |
|
62 |
r = GitMemoryRepo() |
|
63 |
t = Tree() |
|
64 |
b = Blob.from_string("README") |
|
65 |
r.object_store.add_object(b) |
|
66 |
t.add("README", stat.S_IFREG | 0644, b.id) |
|
67 |
r.object_store.add_object(t) |
|
68 |
r.do_commit("Add README", tree=t.id, |
|
69 |
ref='refs/heads/pristine-tar') |
|
70 |
self.assertRaises(KeyError, read_git_pristine_tar_data, |
|
71 |
r, "foo") |
|
72 |
||
73 |
def test_read_pristine_tar_data(self): |
|
74 |
r = GitMemoryRepo() |
|
75 |
delta = Blob.from_string("some yummy data") |
|
76 |
r.object_store.add_object(delta) |
|
77 |
idfile = Blob.from_string("someid") |
|
78 |
r.object_store.add_object(idfile) |
|
79 |
t = Tree() |
|
80 |
t.add("foo.delta", stat.S_IFREG | 0644, delta.id) |
|
81 |
t.add("foo.id", stat.S_IFREG | 0644, idfile.id) |
|
82 |
r.object_store.add_object(t) |
|
83 |
r.do_commit("pristine tar delta for foo", tree=t.id, |
|
84 |
ref='refs/heads/pristine-tar') |
|
85 |
self.assertEquals( |
|
86 |
("some yummy data", "someid"), |
|
87 |
read_git_pristine_tar_data(r, 'foo')) |
|
|
0.277.4
by Jelmer Vernooij
Add function for storing git pristine tar delta files. |
88 |
|
89 |
||
90 |
class StoreGitPristineTarData(TestCase): |
|
91 |
||
92 |
def test_store_new(self): |
|
93 |
r = GitMemoryRepo() |
|
94 |
cid = store_git_pristine_tar_data(r, "foo", "mydelta", "myid") |
|
95 |
tree = get_pristine_tar_tree(r) |
|
96 |
self.assertEquals( |
|
97 |
(stat.S_IFREG | 0644, "7b02de8ac4162e64f402c43487d8a40a505482e1"), |
|
98 |
tree["README"]) |
|
99 |
self.assertEquals(r[cid].tree, tree.id) |
|
100 |
self.assertEquals(r[tree["foo.delta"][1]].data, "mydelta") |
|
101 |
self.assertEquals(r[tree["foo.id"][1]].data, "myid") |
|
|
0.277.5
by Jelmer Vernooij
Test delta functions against each other. |
102 |
|
103 |
self.assertEquals(("mydelta", "myid"), |
|
104 |
read_git_pristine_tar_data(r, "foo")) |