libdolt 0.15.0 → 0.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  # encoding: utf-8
2
2
  #--
3
- # Copyright (C) 2012 Gitorious AS
3
+ # Copyright (C) 2012-2013 Gitorious AS
4
4
  #
5
5
  # This program is free software: you can redistribute it and/or modify
6
6
  # it under the terms of the GNU Affero General Public License as published by
@@ -17,7 +17,6 @@
17
17
  #++
18
18
  require "test_helper"
19
19
  require "libdolt/repo_actions"
20
- require "when"
21
20
  require "ostruct"
22
21
  require "mocha/setup"
23
22
 
@@ -25,30 +24,23 @@ class Repository
25
24
  attr_reader :name
26
25
  def initialize(name)
27
26
  @name = name
28
- @refs = {}
29
27
  end
30
28
 
31
- def tree(ref, path); stub; end
32
- def tree_entry(ref, path); stub; end
33
- def rev_parse(rev); stub; end
34
- def rev_parse_oid_sync(ref); @refs[ref] || nik; end
35
- def blame(ref, path); stub; end
36
- def log(ref, path, limit); stub; end
37
- def refs; stub; end
38
- def tree_history(ref, path, count); stub; end
39
-
40
- def resolve_promise(blob)
41
- @deferred.resolve(blob)
29
+ def tree(ref, path); end
30
+ def tree_entry(ref, path); end
31
+ def rev_parse(rev); end
32
+ def rev_parse_oid(ref); self.class.refs[ref] || nil; end
33
+ def blame(ref, path); end
34
+ def log(ref, path, limit); end
35
+ def refs; end
36
+ def tree_history(ref, path, count); end
37
+
38
+ def self.stub_ref(name, ref)
39
+ self.refs[name] = ref
42
40
  end
43
41
 
44
- def stub_ref(name, ref)
45
- @refs[name] = ref
46
- end
47
-
48
- private
49
- def stub
50
- @deferred = When.defer
51
- @deferred.promise
42
+ def self.refs
43
+ @refs ||= {}
52
44
  end
53
45
  end
54
46
 
@@ -79,6 +71,9 @@ describe Dolt::RepoActions do
79
71
  before do
80
72
  @resolver = Resolver.new
81
73
  @actions = Dolt::RepoActions.new(@resolver)
74
+ @blob = FakeBlob.new
75
+ @tree = { :type => :tree }
76
+ @blame = { :type => :blame }
82
77
  end
83
78
 
84
79
  describe "#blob" do
@@ -88,20 +83,16 @@ describe Dolt::RepoActions do
88
83
  assert_equal ["gitorious"], @resolver.resolved.map(&:name)
89
84
  end
90
85
 
91
- it "yields path, blob, repo, ref and base_tree_url to block" do
92
- data = nil
93
- @actions.blob("gitorious", "babd120", "app") do |err, d|
94
- data = d
95
- end
96
-
97
- @resolver.resolved.last.resolve_promise("Blob")
86
+ it "returns path, blob, repo, ref and base_tree_url" do
87
+ Repository.any_instance.stubs(:rev_parse).returns(@blob)
88
+ data = @actions.blob("gitorious", "babd120", "app")
98
89
 
99
90
  assert_equal({
100
- :blob => "Blob",
101
- :repository_slug => "gitorious",
102
- :ref => "babd120",
103
- :path => "app"
104
- }, data)
91
+ :blob => @blob,
92
+ :repository_slug => "gitorious",
93
+ :ref => "babd120",
94
+ :path => "app"
95
+ }, data)
105
96
  end
106
97
  end
107
98
 
@@ -112,57 +103,46 @@ describe Dolt::RepoActions do
112
103
  assert_equal ["gitorious"], @resolver.resolved.map(&:name)
113
104
  end
114
105
 
115
- it "yields tree, repo and ref to block" do
116
- data = nil
117
- @actions.tree("gitorious", "babd120", "app") do |err, d|
118
- data = d
119
- end
120
-
106
+ it "returns tree, repo and ref" do
107
+ Repository.any_instance.stubs(:tree).returns(@tree)
108
+ data = @actions.tree("gitorious", "babd120", "app")
121
109
  repo = @resolver.resolved.last
122
- repo.resolve_promise "Tree"
123
-
124
- expected = {
125
- :tree => "Tree",
126
- :repository_slug => "gitorious",
127
- :ref => "babd120",
128
- :path => "app"
129
- }
130
- assert_equal expected, data
110
+
111
+ assert_equal({
112
+ :tree => @tree,
113
+ :repository_slug => "gitorious",
114
+ :ref => "babd120",
115
+ :path => "app"
116
+ }, data)
131
117
  end
132
118
  end
133
119
 
134
120
  describe "#tree_entry" do
135
- it "yields tree, repo and ref to block" do
136
- data = nil
137
- @actions.tree_entry("gitorious", "babd120", "") { |err, d| data = d }
121
+ it "returns tree, repo and ref" do
122
+ Repository.any_instance.stubs(:tree_entry).returns(@tree)
123
+ data = @actions.tree_entry("gitorious", "babd120", "")
138
124
  repo = @resolver.resolved.last
139
- repo.resolve_promise "Tree"
140
-
141
- expected = {
142
- :tree => "Tree",
143
- :repository_slug => "gitorious",
144
- :ref => "babd120",
145
- :path => "",
146
- :type => :tree
147
- }
148
- assert_equal expected, data
125
+
126
+ assert_equal({
127
+ :tree => @tree,
128
+ :repository_slug => "gitorious",
129
+ :ref => "babd120",
130
+ :path => "",
131
+ :type => :tree
132
+ }, data)
149
133
  end
150
134
 
151
- it "yields tree, repo and ref to block" do
152
- data = nil
153
- @actions.tree_entry("gitorious", "babd120", "Gemfile") { |err, d| data = d }
154
- repo = @resolver.resolved.last
155
- blob = FakeBlob.new
156
- repo.resolve_promise(blob)
157
-
158
- expected = {
159
- :blob => blob,
160
- :repository_slug => "gitorious",
161
- :ref => "babd120",
162
- :path => "Gemfile",
163
- :type => :blob
164
- }
165
- assert_equal expected, data
135
+ it "returns blob, repo and ref" do
136
+ Repository.any_instance.stubs(:tree_entry).returns(@blob)
137
+ data = @actions.tree_entry("gitorious", "babd120", "Gemfile")
138
+
139
+ assert_equal({
140
+ :blob => @blob,
141
+ :repository_slug => "gitorious",
142
+ :ref => "babd120",
143
+ :path => "Gemfile",
144
+ :type => :blob
145
+ }, data)
166
146
  end
167
147
  end
168
148
 
@@ -173,22 +153,16 @@ describe Dolt::RepoActions do
173
153
  assert_equal ["gitorious"], @resolver.resolved.map(&:name)
174
154
  end
175
155
 
176
- it "yields blame, repo and ref to block" do
177
- data = nil
178
- @actions.blame("gitorious", "babd120", "app") do |err, d|
179
- data = d
180
- end
156
+ it "returns blame, repo and ref" do
157
+ Repository.any_instance.stubs(:blame).returns(@blame)
158
+ data = @actions.blame("gitorious", "babd120", "app")
181
159
 
182
- repo = @resolver.resolved.last
183
- repo.resolve_promise "Blame"
184
-
185
- expected = {
186
- :blame => "Blame",
187
- :repository_slug => "gitorious",
188
- :ref => "babd120",
189
- :path => "app"
190
- }
191
- assert_equal expected, data
160
+ assert_equal({
161
+ :blame => @blame,
162
+ :repository_slug => "gitorious",
163
+ :ref => "babd120",
164
+ :path => "app"
165
+ }, data)
192
166
  end
193
167
  end
194
168
 
@@ -199,22 +173,16 @@ describe Dolt::RepoActions do
199
173
  assert_equal ["gitorious"], @resolver.resolved.map(&:name)
200
174
  end
201
175
 
202
- it "yields commits, repo and ref to block" do
203
- data = nil
204
- @actions.history("gitorious", "babd120", "app", 2) do |err, d|
205
- data = d
206
- end
176
+ it "returns commits, repo and ref" do
177
+ Repository.any_instance.stubs(:log).returns([])
178
+ data = @actions.history("gitorious", "babd120", "app", 2)
207
179
 
208
- repo = @resolver.resolved.last
209
- repo.resolve_promise "History"
210
-
211
- expected = {
212
- :commits => "History",
213
- :repository_slug => "gitorious",
214
- :ref => "babd120",
215
- :path => "app"
216
- }
217
- assert_equal expected, data
180
+ assert_equal({
181
+ :commits => [],
182
+ :repository_slug => "gitorious",
183
+ :ref => "babd120",
184
+ :path => "app"
185
+ }, data)
218
186
  end
219
187
  end
220
188
 
@@ -228,23 +196,20 @@ describe Dolt::RepoActions do
228
196
  "refs/heads/master"].map { |n| OpenStruct.new(:name => n) }
229
197
  end
230
198
 
231
- it "yields repositories, tags and heads" do
232
- data = nil
233
- @actions.refs("gitorious") { |err, d| data = d }
199
+ it "returns repositories, tags and heads" do
200
+ Repository.any_instance.stubs(:refs).returns(@refs)
201
+ Repository.stub_ref("refs/tags/v0.2.0", "a" * 40)
202
+ Repository.stub_ref("refs/tags/v0.2.1", "b" * 40)
203
+ Repository.stub_ref("refs/heads/libgit2", "c" * 40)
204
+ Repository.stub_ref("refs/heads/master", "d" * 40)
234
205
 
235
- repo = @resolver.resolved.last
236
- repo.stub_ref("refs/tags/v0.2.0", "a" * 40)
237
- repo.stub_ref("refs/tags/v0.2.1", "b" * 40)
238
- repo.stub_ref("refs/heads/libgit2", "c" * 40)
239
- repo.stub_ref("refs/heads/master", "d" * 40)
240
- repo.resolve_promise(@refs)
241
-
242
- expected = {
243
- :repository_slug => "gitorious",
244
- :heads => [["libgit2", "c" * 40], ["master", "d" * 40]],
245
- :tags => [["v0.2.1", "b" * 40], ["v0.2.0", "a" * 40]]
246
- }
247
- assert_equal expected, data
206
+ data = @actions.refs("gitorious")
207
+
208
+ assert_equal({
209
+ :repository_slug => "gitorious",
210
+ :heads => [["libgit2", "c" * 40], ["master", "d" * 40]],
211
+ :tags => [["v0.2.1", "b" * 40], ["v0.2.0", "a" * 40]]
212
+ }, data)
248
213
  end
249
214
  end
250
215
 
@@ -259,7 +224,7 @@ describe Dolt::RepoActions do
259
224
  :oid => "906d67b4f3e5de7364ba9b57d174d8998d53ced6",
260
225
  :author => { :name => "Christian Johansen",
261
226
  :email => "christian@cjohansen.no" },
262
- :summary => "Working Moron server for viewing blobs",
227
+ :summary => "Working Dolt server for viewing blobs",
263
228
  :date => Time.parse("Mon Sep 10 15:07:39 +0200 2012"),
264
229
  :message => ""
265
230
  }]
@@ -279,31 +244,24 @@ describe Dolt::RepoActions do
279
244
  }]
280
245
  end
281
246
 
282
- it "yields repository, path, ref and history" do
283
- data = nil
284
- @actions.tree_history("gitorious", "master", "", 1) { |err, d| data = d }
247
+ it "returns repository, path, ref and history" do
248
+ Repository.any_instance.stubs(:tree_history).returns(@tree)
249
+ data = @actions.tree_history("gitorious", "master", "", 1)
285
250
 
286
- repo = @resolver.resolved.last
287
- repo.resolve_promise(@tree)
288
-
289
- expected = {
290
- :repository_slug => "gitorious",
291
- :ref => "master",
292
- :path => "",
293
- :tree => @tree
294
- }
295
- assert_equal expected, data
251
+ assert_equal({
252
+ :repository_slug => "gitorious",
253
+ :ref => "master",
254
+ :path => "",
255
+ :tree => @tree
256
+ }, data)
296
257
  end
297
258
  end
298
259
 
299
260
  describe "repository meta data" do
300
- it "is yielded with other data to block" do
261
+ it "is returned with other data" do
301
262
  resolver = MetaResolver.new
302
263
  actions = Dolt::RepoActions.new(resolver)
303
- data = nil
304
- actions.blob("gitorious", "babd120", "app") { |err, d| data = d }
305
-
306
- resolver.resolved.last.resolve_promise("Blob")
264
+ data = actions.blob("gitorious", "babd120", "app")
307
265
 
308
266
  assert_equal "Meta data is cool", data[:repository_meta]
309
267
  end
@@ -312,8 +270,8 @@ describe Dolt::RepoActions do
312
270
  describe "#rev_parse_oid" do
313
271
  it "resolves ref oid" do
314
272
  oid = "a" * 40
315
- Repository.any_instance.stubs(:rev_parse_oid_sync).returns(oid)
273
+ Repository.any_instance.stubs(:rev_parse_oid).returns(oid)
316
274
  assert_equal oid, @actions.rev_parse_oid("gitorious", "master")
317
275
  end
318
- end
276
+ end
319
277
  end
data/test/test_helper.rb CHANGED
@@ -17,10 +17,9 @@
17
17
  #++
18
18
  require "bundler/setup"
19
19
  require "minitest/autorun"
20
- require "em/minitest/spec"
21
- require "eventmachine"
22
20
  require "libdolt/view"
23
21
  require "tiltout"
22
+ require "stringio"
24
23
 
25
24
  Bundler.require(:default, :test)
26
25
 
@@ -48,4 +47,25 @@ module Dolt
48
47
  renderer
49
48
  end
50
49
  end
50
+
51
+ class FakeProcess
52
+ attr_reader :stdin, :stdout, :stderr
53
+
54
+ def initialize(status, stdin = nil, stdout = nil, stderr = nil)
55
+ @status = status
56
+ @stdin = stream(stdin)
57
+ @stdout = stream(stdout)
58
+ @stderr = stream(stderr)
59
+ end
60
+
61
+ def success?; @status == 0; end
62
+ def exit_code; @status; end
63
+ def exception; Exception.new; end
64
+
65
+ private
66
+ def stream(ios)
67
+ return ios if !ios.nil? && !ios.is_a?(String)
68
+ StringIO.new(ios || "")
69
+ end
70
+ end
51
71
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: libdolt
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.15.0
4
+ version: 0.16.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,72 +9,24 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-01-11 00:00:00.000000000 Z
12
+ date: 2013-05-28 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
- name: eventmachine
15
+ name: rugged
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
- - - ~>
20
- - !ruby/object:Gem::Version
21
- version: '1.0'
22
- type: :runtime
23
- prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
- requirements:
27
- - - ~>
28
- - !ruby/object:Gem::Version
29
- version: '1.0'
30
- - !ruby/object:Gem::Dependency
31
- name: when
32
- requirement: !ruby/object:Gem::Requirement
33
- none: false
34
- requirements:
35
- - - ~>
36
- - !ruby/object:Gem::Version
37
- version: '0'
38
- type: :runtime
39
- prerelease: false
40
- version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
- requirements:
43
- - - ~>
44
- - !ruby/object:Gem::Version
45
- version: '0'
46
- - !ruby/object:Gem::Dependency
47
- name: em_pessimistic
48
- requirement: !ruby/object:Gem::Requirement
49
- none: false
50
- requirements:
51
- - - ~>
52
- - !ruby/object:Gem::Version
53
- version: '0.1'
54
- type: :runtime
55
- prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
- requirements:
59
- - - ~>
60
- - !ruby/object:Gem::Version
61
- version: '0.1'
62
- - !ruby/object:Gem::Dependency
63
- name: em_rugged
64
- requirement: !ruby/object:Gem::Requirement
65
- none: false
66
- requirements:
67
- - - ~>
19
+ - - '='
68
20
  - !ruby/object:Gem::Version
69
- version: '0.3'
21
+ version: 0.17.0.b6
70
22
  type: :runtime
71
23
  prerelease: false
72
24
  version_requirements: !ruby/object:Gem::Requirement
73
25
  none: false
74
26
  requirements:
75
- - - ~>
27
+ - - '='
76
28
  - !ruby/object:Gem::Version
77
- version: '0.3'
29
+ version: 0.17.0.b6
78
30
  - !ruby/object:Gem::Dependency
79
31
  name: tzinfo
80
32
  requirement: !ruby/object:Gem::Requirement
@@ -171,22 +123,6 @@ dependencies:
171
123
  - - ~>
172
124
  - !ruby/object:Gem::Version
173
125
  version: '2.0'
174
- - !ruby/object:Gem::Dependency
175
- name: em-minitest-spec
176
- requirement: !ruby/object:Gem::Requirement
177
- none: false
178
- requirements:
179
- - - ~>
180
- - !ruby/object:Gem::Version
181
- version: '1.1'
182
- type: :development
183
- prerelease: false
184
- version_requirements: !ruby/object:Gem::Requirement
185
- none: false
186
- requirements:
187
- - - ~>
188
- - !ruby/object:Gem::Version
189
- version: '1.1'
190
126
  - !ruby/object:Gem::Dependency
191
127
  name: rake
192
128
  requirement: !ruby/object:Gem::Requirement
@@ -265,9 +201,11 @@ files:
265
201
  - Readme.md
266
202
  - lib/libdolt.rb
267
203
  - lib/libdolt/disk_repo_resolver.rb
204
+ - lib/libdolt/git.rb
268
205
  - lib/libdolt/git/archiver.rb
269
206
  - lib/libdolt/git/blame.rb
270
207
  - lib/libdolt/git/commit.rb
208
+ - lib/libdolt/git/process.rb
271
209
  - lib/libdolt/git/repository.rb
272
210
  - lib/libdolt/git/submodule.rb
273
211
  - lib/libdolt/git/tree.rb