-
Notifications
You must be signed in to change notification settings - Fork 39
/
package_git_test.rb
156 lines (123 loc) · 5.9 KB
/
package_git_test.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
require 'helper'
class PackageGitTest < Rip::Test
test "can't handle unknown protocol" do
out = rip "package-handle-git rack"
assert_exited_with_error out
end
test "fetch git:// package" do
out = rip "package-handle-git git://localhost/cijoe"
target = "#{@ripdir}/.packages/cijoe-98b937fa387d6b25fe3e114670d5ffc0"
assert_equal target, out.chomp
assert File.directory?(target)
assert File.exist?("#{target}/lib/cijoe/version.rb")
assert File.exist?("#{target}/metadata.rip")
assert_equal "git://localhost/cijoe 04419882877337e70ac572a36d25416b0da9ba0f", File.read("#{target}/metadata.rip").chomp
end
test "fetch git:// package with ref" do
out = rip "package-handle-git git://localhost/cijoe 28e583afc7c3153860e3b425fe4e4179f951835f"
target = "#{@ripdir}/.packages/cijoe-5e096d4e73f7b9281514ccfb6667ec94"
assert_equal target, out.chomp
assert File.directory?(target)
assert !File.exist?("#{target}/lib/cijoe/version.rb")
assert File.exist?("#{target}/metadata.rip")
assert_equal "git://localhost/cijoe 28e583afc7c3153860e3b425fe4e4179f951835f", File.read("#{target}/metadata.rip").chomp
end
test "fetch git:// package with floating ref" do
out = rip "package-handle-git git://localhost/rack master"
target = "#{@ripdir}/.packages/rack-c3d5bb01b7e8e3cf08139d8c997239ae"
assert_equal target, out.chomp
assert File.directory?(target)
assert File.exist?("#{target}/lib/rack/methodoverride.rb")
assert File.exist?("#{target}/metadata.rip")
assert_equal "git://localhost/rack 01532da684cbb004661987c40d8ba8c952a773e3", File.read("#{target}/metadata.rip").chomp
out = rip "package-handle-git git://localhost/rack rack-1.1"
target = "#{@ripdir}/.packages/rack-d09f0f92cbc9fd9445818a3f3677854e"
assert_equal target, out.chomp
assert File.directory?(target)
assert File.exist?("#{target}/lib/rack/methodoverride.rb")
assert File.exist?("#{target}/metadata.rip")
assert_equal "git://localhost/rack 1.1", File.read("#{target}/metadata.rip").chomp
out = rip "package-handle-git git://localhost/rack rack-0.4"
target = "#{@ripdir}/.packages/rack-30a09c76441ee7f3cc320aae57e9c99e"
assert_equal target, out.chomp
assert File.directory?(target)
assert !File.exist?("#{target}/lib/rack/methodoverride.rb")
assert File.exist?("#{target}/metadata.rip")
assert_equal "git://localhost/rack 92f79ea8def92c3c2373b9ab5f5fa8e03aa7669d", File.read("#{target}/metadata.rip").chomp
end
test "fetch git:// with tag name" do
out = rip "package-handle-git git://localhost/rack 0.9.1"
target = "#{@ripdir}/.packages/rack-b81297be848f0dfd34bc5200acace641"
assert_equal target, out.chomp
assert File.exist?("#{target}/metadata.rip")
assert_equal "git://localhost/rack 0.9.1", File.read("#{target}/metadata.rip").chomp
assert_equal "git://localhost/rack 0.9.1", rip("package-metadata #{out}").chomp
rip "install git://localhost/rack 0.9.1"
assert_equal <<list, rip("list")
ripenv: base
rack (0.9.1)
list
end
test "fetch git:// with tag ref" do
out = rip "package-handle-git git://localhost/rack 04ca38270fbee678eb0705510c9dd91a3b6b1dbf"
target = "#{@ripdir}/.packages/rack-b81297be848f0dfd34bc5200acace641"
assert_equal target, out.chomp
assert File.exist?("#{target}/metadata.rip")
assert_equal "git://localhost/rack 0.9.1", File.read("#{target}/metadata.rip").chomp
end
test "fetch git:// with tagged commmit ref" do
out = rip "package-handle-git git://localhost/rack 488d67988ddfb7e13ad2f58272ee04809612cafe"
target = "#{@ripdir}/.packages/rack-b81297be848f0dfd34bc5200acace641"
assert_equal target, out.chomp
assert File.exist?("#{target}/metadata.rip")
assert_equal "git://localhost/rack 0.9.1", File.read("#{target}/metadata.rip").chomp
end
test "fetch git:// with partial tagged commmit ref" do
out = rip "package-handle-git git://localhost/rack 488d679"
target = "#{@ripdir}/.packages/rack-b81297be848f0dfd34bc5200acace641"
assert_equal target, out.chomp
assert File.exist?("#{target}/metadata.rip")
assert_equal "git://localhost/rack 0.9.1", File.read("#{target}/metadata.rip").chomp
end
test "fetch git:// package with nonexistent ref" do
out = rip "package-handle-git git://localhost/rails xyz"
assert_equal "git://localhost/rails xyz could not be found", out.chomp
end
test "fetch git:// package clears remotes" do
out = rip "package-handle-git git://localhost/cijoe"
target = "#{@ripdir}/.packages/cijoe-98b937fa387d6b25fe3e114670d5ffc0"
assert_equal target, out.chomp
assert File.directory?(target)
cd(target) { assert_equal '', `git remote`.chomp }
end
test "fetch git:// package clears branches" do
out = rip "package-handle-git git://localhost/cijoe"
target = "#{@ripdir}/.packages/cijoe-98b937fa387d6b25fe3e114670d5ffc0"
assert_equal target, out.chomp
assert File.directory?(target)
cd(target) { assert_equal '* (no branch)', `git branch`.chomp }
end
test "fetch package twice" do
out = rip "package-handle-git git://localhost/cijoe"
assert_exited_successfully out
out = rip "package-handle-git git://localhost/cijoe"
assert_exited_successfully out
end
test "writes package.rip" do
out = rip "package-handle-git git://localhost/cijoe"
target = "#{@ripdir}/.packages/cijoe-98b937fa387d6b25fe3e114670d5ffc0"
assert_equal target, out.chomp
assert File.exist?("#{target}/metadata.rip")
assert_equal "git://localhost/cijoe 04419882877337e70ac572a36d25416b0da9ba0f\n",
File.read("#{target}/metadata.rip")
end
test "repackage" do
out = rip "package-handle-git git://localhost/cijoe"
target = "#{@ripdir}/.packages/cijoe-98b937fa387d6b25fe3e114670d5ffc0"
assert_equal target, out.chomp
assert File.directory?(target)
out = rip "repackage #{target}"
assert_equal target, out.chomp
assert File.directory?(target)
end
end