scm: cvs: add methods of getting cvs version and add unit lib test (#4273).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@4832 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
6d8fe71a73
commit
34e013c187
@ -33,6 +33,25 @@ module Redmine
|
|||||||
def sq_bin
|
def sq_bin
|
||||||
@@sq_bin ||= shell_quote(CVS_BIN)
|
@@sq_bin ||= shell_quote(CVS_BIN)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def client_version
|
||||||
|
@@client_version ||= (scm_command_version || [])
|
||||||
|
end
|
||||||
|
|
||||||
|
def client_available
|
||||||
|
!client_version.empty?
|
||||||
|
end
|
||||||
|
|
||||||
|
def scm_command_version
|
||||||
|
scm_version = scm_version_from_command_line
|
||||||
|
if m = scm_version.match(%r{\A(.*?)((\d+\.)+\d+)}m)
|
||||||
|
m[2].scan(%r{\d+}).collect(&:to_i)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def scm_version_from_command_line
|
||||||
|
shellout("#{sq_bin} --version") { |io| io.read }.to_s
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
# Guidelines for the input:
|
# Guidelines for the input:
|
||||||
|
@ -13,6 +13,15 @@ begin
|
|||||||
@adapter = Redmine::Scm::Adapters::CvsAdapter.new(MODULE_NAME, REPOSITORY_PATH)
|
@adapter = Redmine::Scm::Adapters::CvsAdapter.new(MODULE_NAME, REPOSITORY_PATH)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_scm_version
|
||||||
|
to_test = { "\nConcurrent Versions System (CVS) 1.12.13 (client/server)\n" => [1,12,13],
|
||||||
|
"\r\n1.12.12\r\n1.12.11" => [1,12,12],
|
||||||
|
"1.12.11\r\n1.12.10\r\n" => [1,12,11]}
|
||||||
|
to_test.each do |s, v|
|
||||||
|
test_scm_version_for(s, v)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def test_revisions_all
|
def test_revisions_all
|
||||||
cnt = 0
|
cnt = 0
|
||||||
@adapter.revisions('', nil, nil, :with_paths => true) do |revision|
|
@adapter.revisions('', nil, nil, :with_paths => true) do |revision|
|
||||||
@ -29,6 +38,13 @@ begin
|
|||||||
end
|
end
|
||||||
assert_equal 2, cnt
|
assert_equal 2, cnt
|
||||||
end
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
def test_scm_version_for(scm_command_version, version)
|
||||||
|
@adapter.class.expects(:scm_version_from_command_line).returns(scm_command_version)
|
||||||
|
assert_equal version, @adapter.class.scm_command_version
|
||||||
|
end
|
||||||
else
|
else
|
||||||
puts "Cvs test repository NOT FOUND. Skipping unit tests !!!"
|
puts "Cvs test repository NOT FOUND. Skipping unit tests !!!"
|
||||||
def test_fake; assert true end
|
def test_fake; assert true end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user