pivotal-piston 1.9.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (96) hide show
  1. data/.gitignore +8 -0
  2. data/History.txt +11 -0
  3. data/License.txt +20 -0
  4. data/Manifest.txt +85 -0
  5. data/README.txt +136 -0
  6. data/Rakefile +4 -0
  7. data/bin/piston +5 -0
  8. data/config/hoe.rb +79 -0
  9. data/config/requirements.rb +18 -0
  10. data/lib/piston.rb +18 -0
  11. data/lib/piston/cli.rb +315 -0
  12. data/lib/piston/commands.rb +4 -0
  13. data/lib/piston/commands/base.rb +44 -0
  14. data/lib/piston/commands/import.rb +42 -0
  15. data/lib/piston/commands/info.rb +14 -0
  16. data/lib/piston/commands/lock_unlock.rb +21 -0
  17. data/lib/piston/commands/update.rb +29 -0
  18. data/lib/piston/git.rb +12 -0
  19. data/lib/piston/git/client.rb +77 -0
  20. data/lib/piston/git/commit.rb +74 -0
  21. data/lib/piston/git/repository.rb +63 -0
  22. data/lib/piston/git/working_copy.rb +86 -0
  23. data/lib/piston/repository.rb +57 -0
  24. data/lib/piston/revision.rb +53 -0
  25. data/lib/piston/svn.rb +14 -0
  26. data/lib/piston/svn/client.rb +88 -0
  27. data/lib/piston/svn/repository.rb +67 -0
  28. data/lib/piston/svn/revision.rb +74 -0
  29. data/lib/piston/svn/working_copy.rb +108 -0
  30. data/lib/piston/version.rb +9 -0
  31. data/lib/piston/working_copy.rb +183 -0
  32. data/lib/subclass_responsibility_error.rb +2 -0
  33. data/log/.gitignore +0 -0
  34. data/samples/common.rb +19 -0
  35. data/samples/import_git_git.rb +39 -0
  36. data/samples/import_git_svn.rb +36 -0
  37. data/samples/import_svn_git.rb +29 -0
  38. data/samples/import_svn_svn.rb +24 -0
  39. data/script/destroy +14 -0
  40. data/script/generate +14 -0
  41. data/script/txt2html +74 -0
  42. data/setup.rb +1585 -0
  43. data/tasks/deployment.rake +34 -0
  44. data/tasks/environment.rake +7 -0
  45. data/tasks/samples.rake +6 -0
  46. data/tasks/test.rake +69 -0
  47. data/tasks/website.rake +17 -0
  48. data/test/integration/test_git_git.rb +99 -0
  49. data/test/integration/test_git_svn.rb +121 -0
  50. data/test/integration/test_import_svn_git.rb +47 -0
  51. data/test/integration/test_import_svn_svn.rb +38 -0
  52. data/test/integration_helpers.rb +33 -0
  53. data/test/test_helper.rb +83 -0
  54. data/test/unit/git/commit/test_checkout.rb +31 -0
  55. data/test/unit/git/commit/test_each.rb +30 -0
  56. data/test/unit/git/commit/test_rememberance.rb +21 -0
  57. data/test/unit/git/commit/test_validation.rb +34 -0
  58. data/test/unit/git/repository/test_at.rb +23 -0
  59. data/test/unit/git/repository/test_basename.rb +12 -0
  60. data/test/unit/git/repository/test_branchanme.rb +15 -0
  61. data/test/unit/git/repository/test_guessing.rb +32 -0
  62. data/test/unit/git/working_copy/test_copying.rb +25 -0
  63. data/test/unit/git/working_copy/test_creation.rb +22 -0
  64. data/test/unit/git/working_copy/test_existence.rb +18 -0
  65. data/test/unit/git/working_copy/test_finalization.rb +15 -0
  66. data/test/unit/git/working_copy/test_guessing.rb +35 -0
  67. data/test/unit/git/working_copy/test_rememberance.rb +21 -0
  68. data/test/unit/svn/repository/test_at.rb +19 -0
  69. data/test/unit/svn/repository/test_basename.rb +24 -0
  70. data/test/unit/svn/repository/test_guessing.rb +45 -0
  71. data/test/unit/svn/revision/test_checkout.rb +28 -0
  72. data/test/unit/svn/revision/test_each.rb +22 -0
  73. data/test/unit/svn/revision/test_rememberance.rb +38 -0
  74. data/test/unit/svn/revision/test_validation.rb +50 -0
  75. data/test/unit/svn/working_copy/test_copying.rb +26 -0
  76. data/test/unit/svn/working_copy/test_creation.rb +16 -0
  77. data/test/unit/svn/working_copy/test_existence.rb +23 -0
  78. data/test/unit/svn/working_copy/test_externals.rb +56 -0
  79. data/test/unit/svn/working_copy/test_finalization.rb +17 -0
  80. data/test/unit/svn/working_copy/test_guessing.rb +18 -0
  81. data/test/unit/svn/working_copy/test_merging.rb +47 -0
  82. data/test/unit/svn/working_copy/test_rememberance.rb +26 -0
  83. data/test/unit/test_info.rb +37 -0
  84. data/test/unit/test_lock_unlock.rb +47 -0
  85. data/test/unit/test_repository.rb +51 -0
  86. data/test/unit/test_revision.rb +31 -0
  87. data/test/unit/working_copy/test_guessing.rb +35 -0
  88. data/test/unit/working_copy/test_info.rb +14 -0
  89. data/test/unit/working_copy/test_rememberance.rb +42 -0
  90. data/test/unit/working_copy/test_validate.rb +63 -0
  91. data/website/index.html +11 -0
  92. data/website/index.txt +39 -0
  93. data/website/javascripts/rounded_corners_lite.inc.js +285 -0
  94. data/website/stylesheets/screen.css +138 -0
  95. data/website/template.rhtml +48 -0
  96. metadata +244 -0
@@ -0,0 +1,34 @@
1
+ desc 'Release the website and new gem version'
2
+ task :deploy => [:check_version, :website, :release] do
3
+ puts "Remember to create SVN tag:"
4
+ puts "svn copy svn+ssh://#{rubyforge_username}@rubyforge.org/var/svn/#{PATH}/trunk " +
5
+ "svn+ssh://#{rubyforge_username}@rubyforge.org/var/svn/#{PATH}/tags/REL-#{VERS} "
6
+ puts "Suggested comment:"
7
+ puts "Tagging release #{CHANGES}"
8
+ end
9
+
10
+ desc 'Runs tasks website_generate and install_gem as a local deployment of the gem'
11
+ task :local_deploy => [:website_generate, :install_gem]
12
+
13
+ task :check_version do
14
+ unless ENV['VERSION']
15
+ puts 'Must pass a VERSION=x.y.z release version'
16
+ exit
17
+ end
18
+ unless ENV['VERSION'] == VERS
19
+ puts "Please update your version.rb to match the release version, currently #{VERS}"
20
+ exit
21
+ end
22
+ end
23
+
24
+ desc 'Install the package as a gem, without generating documentation(ri/rdoc)'
25
+ task :install_gem_no_doc => [:clean, :package] do
26
+ sh "#{'sudo ' unless Hoe::WINDOZE }gem install pkg/*.gem --no-rdoc --no-ri"
27
+ end
28
+
29
+ namespace :manifest do
30
+ desc 'Recreate Manifest.txt to include ALL files'
31
+ task :refresh do
32
+ `rake check_manifest | patch -p0 > Manifest.txt`
33
+ end
34
+ end
@@ -0,0 +1,7 @@
1
+ task :ruby_env do
2
+ RUBY_APP = if RUBY_PLATFORM =~ /java/
3
+ "jruby"
4
+ else
5
+ "ruby"
6
+ end unless defined? RUBY_APP
7
+ end
@@ -0,0 +1,6 @@
1
+ task :samples do
2
+ Dir["samples/*"].each do |sample|
3
+ next if sample =~ /common/
4
+ ruby sample
5
+ end
6
+ end
data/tasks/test.rake ADDED
@@ -0,0 +1,69 @@
1
+ require "rake/testtask"
2
+
3
+ Rake.application.instance_variable_get("@tasks").delete("test")
4
+ Rake::TestTask.new("test") do |t|
5
+ t.libs << "test"
6
+ t.test_files = FileList['test/**/test_*.rb']
7
+ t.verbose = true
8
+ t.warning = false
9
+ end
10
+
11
+ namespace :test do
12
+ Rake::TestTask.new("units") do |t|
13
+ t.libs << "test"
14
+ t.test_files = FileList['test/unit/**/test_*.rb']
15
+ t.verbose = true
16
+ t.warning = false
17
+ end
18
+
19
+ Rake::TestTask.new("integration") do |t|
20
+ t.libs << "test"
21
+ t.test_files = FileList['test/integration/**/test_*.rb']
22
+ t.verbose = true
23
+ t.warning = false
24
+ end
25
+
26
+ Rake::TestTask.new("recent") do |t|
27
+ t.libs << "test"
28
+ t.verbose = true
29
+ t.warning = false
30
+
31
+ # 10 minutes ago
32
+ cutoff_at = Time.now - 10 * 60
33
+
34
+ t.test_files = FileList["test/integration/**/test_*.rb", "test/unit/**/test_*.rb"].select do |path|
35
+ File.mtime(path) > cutoff_at
36
+ end
37
+ end
38
+
39
+ desc "Prepares an SVN and Git repository for manual testing"
40
+ task :prep do
41
+ require "pathname"
42
+ PISTON_ROOT = Pathname.new(File.expand_path(Dir.pwd))
43
+ MANUAL_ROOT = PISTON_ROOT + "tmp/manual"
44
+ rm_rf MANUAL_ROOT; mkdir MANUAL_ROOT
45
+ REPOS_ROOT = MANUAL_ROOT + "repos"
46
+ REPOS_URL = "file://#{REPOS_ROOT}"
47
+ WC_ROOT = MANUAL_ROOT + "wc"
48
+
49
+ sh "svnadmin create #{REPOS_ROOT}"
50
+ sh "svn checkout #{REPOS_URL} #{WC_ROOT}"
51
+ Dir.chdir(WC_ROOT) do
52
+ sh "svn mkdir project plugins plugins/libcalc plugins/libpower"
53
+ Dir.chdir("plugins/libcalc") do
54
+ File.open("README", "w") {|io| io.puts "libcalc\n-------\n\nThis is libcalc\n"}
55
+ File.open("libcalc.rb", "w") {|io| io.puts "# libcaclc.rb\n# Ensure this is powerful enough\n"}
56
+ end
57
+ Dir.chdir("plugins/libpower") do
58
+ File.open("README", "w") {|io| io.puts "libpower\n-------\n\nThis is libpower\n"}
59
+ end
60
+ sh "svn add plugins/libcalc/README plugins/libcalc/libcalc.rb plugins/libpower/README"
61
+ sh "svn commit -m 'Initial revision'"
62
+ sh "ruby -I#{PISTON_ROOT}/lib #{PISTON_ROOT}/bin/piston import #{REPOS_URL}"
63
+ Dir.chdir("plugins/libcalc") do
64
+ File.open("libcalc.rb", "w") {|io| io.puts "# libcalc.rb\n# Ensure this is powerful enough\n\nclass Libcalc\nend\n"}
65
+ end
66
+ sh "svn commit -m 'Implement libcalc'"
67
+ end
68
+ end
69
+ end
@@ -0,0 +1,17 @@
1
+ desc 'Generate website files'
2
+ task :website_generate => :ruby_env do
3
+ (Dir['website/**/*.txt'] - Dir['website/version*.txt']).each do |txt|
4
+ sh %{ #{RUBY_APP} script/txt2html #{txt} > #{txt.gsub(/txt$/,'html')} }
5
+ end
6
+ end
7
+
8
+ desc 'Upload website files to rubyforge'
9
+ task :website_upload do
10
+ host = "#{rubyforge_username}@rubyforge.org"
11
+ remote_dir = "/var/www/gforge-projects/#{PATH}/"
12
+ local_dir = 'website'
13
+ sh %{rsync -aCv #{local_dir}/ #{host}:#{remote_dir}}
14
+ end
15
+
16
+ desc 'Generate and upload website files'
17
+ task :website => [:website_generate, :website_upload, :publish_docs]
@@ -0,0 +1,99 @@
1
+ require File.expand_path("#{File.dirname(__FILE__)}/../test_helper")
2
+
3
+ class TestGitGit < Piston::TestCase
4
+ attr_reader :root_path, :parent_path, :wc_path
5
+
6
+ def setup
7
+ super
8
+ @root_path = mkpath("tmp/import_git_git")
9
+
10
+ @parent_path = root_path + "parent"
11
+ mkpath(parent_path)
12
+
13
+ @wc_path = root_path + "wc"
14
+ mkpath(wc_path)
15
+
16
+ Dir.chdir(parent_path) do
17
+ git(:init)
18
+ File.open("README", "wb") {|f| f.write "Readme - first commit"}
19
+ File.open("file_in_first_commit", "wb") {|f| f.write "file_in_first_commit"}
20
+ git(:add, ".")
21
+ git(:commit, "-m", "'first commit'")
22
+ end
23
+
24
+ Dir.chdir(wc_path) do
25
+ git(:init)
26
+ File.open("README", "wb") {|f| f.write "Hello World!"}
27
+ Pathname.new("vendor").mkdir
28
+ File.open("vendor/.gitignore", "wb") {|f| f.write "*.swp"}
29
+ git(:add, ".")
30
+ git(:commit, "-m", "'first commit'")
31
+ end
32
+ end
33
+
34
+ def test_import
35
+ Dir.chdir(wc_path) do
36
+ piston(:import, parent_path, "vendor/parent")
37
+ end
38
+
39
+ Dir.chdir(wc_path) do
40
+ assert_equal IMPORT_STATUS.split("\n").sort, git(:status).split("\n").sort
41
+ end
42
+
43
+ info = YAML.load_file(wc_path + "vendor/parent/.piston.yml")
44
+ assert_equal 1, info["format"]
45
+ assert_equal parent_path.to_s, info["repository_url"]
46
+ assert_equal "Piston::Git::Repository", info["repository_class"]
47
+
48
+ response = `git-ls-remote #{parent_path}`
49
+ head_commit = response.grep(/HEAD/).first.chomp.split(/\s+/).first
50
+ assert_equal head_commit, info["handler"][Piston::Git::COMMIT]
51
+ end
52
+
53
+ IMPORT_STATUS = %Q(# On branch master
54
+ # Changes to be committed:
55
+ # (use "git reset HEAD <file>..." to unstage)
56
+ #
57
+ #\tnew file: vendor/parent/.piston.yml
58
+ #\tnew file: vendor/parent/README
59
+ #\tnew file: vendor/parent/file_in_first_commit
60
+ #
61
+ )
62
+
63
+ def test_update
64
+ Dir.chdir(wc_path) do
65
+ piston(:import, parent_path, "vendor/parent")
66
+ end
67
+
68
+ Dir.chdir(wc_path) do
69
+ git(:add, ".")
70
+ git(:commit, "-m", "'next commit'")
71
+ end
72
+
73
+ Dir.chdir(parent_path) do
74
+ File.open("README", "wb") {|f| f.write "Readme - second commit"}
75
+ FileUtils.rm("file_in_first_commit")
76
+ File.open("file_in_second_commit", "wb") {|f| f.write "file_in_second_commit"}
77
+ git(:add, ".")
78
+ git(:commit, "-m", "'second commit'")
79
+ end
80
+
81
+ Dir.chdir(wc_path) do
82
+ piston(:update, "vendor/parent")
83
+ end
84
+
85
+ Dir.chdir(wc_path) do
86
+ assert_equal CHANGE_STATUS.split("\n"), git(:status).split("\n")
87
+ end
88
+ end
89
+
90
+ CHANGE_STATUS = %Q(# On branch master
91
+ # Changes to be committed:
92
+ # (use "git reset HEAD <file>..." to unstage)
93
+ #
94
+ #\tmodified: vendor/parent/.piston.yml
95
+ #\tmodified: vendor/parent/README
96
+ #\tnew file: vendor/parent/file_in_second_commit
97
+ #
98
+ )
99
+ end
@@ -0,0 +1,121 @@
1
+ require File.expand_path("#{File.dirname(__FILE__)}/../test_helper")
2
+
3
+ class TestGitSvn < Piston::TestCase
4
+ attr_reader :root_path, :parent_path, :repos_path, :wc_path
5
+
6
+ def setup
7
+ super
8
+ @root_path = mkpath("/tmp/import_git_svn")
9
+
10
+ @repos_path = @root_path + "repos"
11
+
12
+ @parent_path = root_path + "parent"
13
+ mkpath(parent_path)
14
+
15
+ @wc_path = root_path + "wc"
16
+ mkpath(wc_path)
17
+
18
+ Dir.chdir(parent_path) do
19
+ git(:init)
20
+ File.open(parent_path + "README", "wb") {|f| f.write "Readme - first commit"}
21
+ File.open(parent_path + "file_in_first_commit", "wb") {|f| f.write "file_in_first_commit"}
22
+ git(:add, ".")
23
+ git(:commit, "-m", "'first commit'")
24
+ end
25
+
26
+ svnadmin :create, repos_path
27
+ svn :checkout, "file://#{repos_path}", wc_path
28
+ svn :mkdir, wc_path + "trunk", wc_path + "tags", wc_path + "branches", wc_path + "trunk/vendor"
29
+ svn :commit, wc_path, "--message", "'first commit'"
30
+ end
31
+
32
+ def test_import
33
+ piston(:import, parent_path, wc_path + "trunk/vendor/parent")
34
+
35
+ assert_equal ADD_STATUS.split("\n").sort, svn(:status, wc_path + "trunk/vendor").gsub((wc_path + "trunk/").to_s, "").split("\n").sort
36
+
37
+ info = YAML.load_file(wc_path + "trunk/vendor/parent/.piston.yml")
38
+ assert_equal 1, info["format"]
39
+ assert_equal parent_path.to_s, info["repository_url"]
40
+ assert_equal "Piston::Git::Repository", info["repository_class"]
41
+
42
+ response = `git-ls-remote #{parent_path}`
43
+ head_commit = response.grep(/HEAD/).first.chomp.split(/\s+/).first
44
+ assert_equal head_commit, info["handler"][Piston::Git::COMMIT]
45
+ end
46
+
47
+ def test_import_from_branch
48
+ Dir.chdir(parent_path) do
49
+ git(:branch, "rewrite")
50
+ git(:checkout, "rewrite")
51
+ touch("file_in_branch")
52
+ git(:add, ".")
53
+ git(:commit, "-m", "'commit after branch'")
54
+ end
55
+ piston(:import, "--revision", "origin/rewrite", parent_path, wc_path + "trunk/vendor/parent")
56
+
57
+ assert File.exists?(wc_path + "trunk/vendor/parent/file_in_branch"),
58
+ "Could not find file_in_branch in parent imported directory."
59
+
60
+ info = YAML.load(File.read(wc_path + "trunk/vendor/parent/.piston.yml"))
61
+ assert_equal 1, info["format"]
62
+ assert_equal parent_path.to_s, info["repository_url"]
63
+ assert_equal "Piston::Git::Repository", info["repository_class"]
64
+
65
+ response = `git-ls-remote #{parent_path}`
66
+ head_commit = response.grep(/refs\/heads\/rewrite/).first.chomp.split(/\s+/).first
67
+ assert_equal head_commit, info["handler"][Piston::Git::COMMIT]
68
+ assert_equal "origin/rewrite", info["handler"][Piston::Git::BRANCH]
69
+ end
70
+
71
+ def test_import_from_tag
72
+ Dir.chdir(parent_path) do
73
+ git(:tag, "the_tag_name")
74
+ touch("file_past_tag")
75
+ git(:add, ".")
76
+ git(:commit, "-m", "'commit after tag'")
77
+ end
78
+ piston(:import, "--revision", "the_tag_name", parent_path, wc_path + "trunk/vendor/parent")
79
+
80
+ info = YAML.load(File.read(wc_path + "trunk/vendor/parent/.piston.yml"))
81
+ assert_equal 1, info["format"]
82
+ assert_equal parent_path.to_s, info["repository_url"]
83
+ assert_equal "Piston::Git::Repository", info["repository_class"]
84
+
85
+ response = `git-ls-remote #{parent_path} the_tag_name`
86
+ tagged_commit = response.chomp.split(/\s+/).first
87
+ assert_equal tagged_commit, info["handler"][Piston::Git::COMMIT]
88
+ assert_equal "the_tag_name", info["handler"][Piston::Git::BRANCH]
89
+ end
90
+
91
+ ADD_STATUS = %Q(A vendor/parent
92
+ A vendor/parent/.piston.yml
93
+ A vendor/parent/README
94
+ A vendor/parent/file_in_first_commit
95
+ )
96
+
97
+ def test_update
98
+ piston(:import, parent_path, wc_path + "trunk/vendor/parent")
99
+
100
+ Dir.chdir(wc_path) do
101
+ svn(:commit, "-m", "'next commit'")
102
+ end
103
+
104
+ Dir.chdir(parent_path) do
105
+ File.open(parent_path + "README", "wb") {|f| f.write "Readme - second commit"}
106
+ FileUtils.rm(parent_path + "file_in_first_commit")
107
+ File.open(parent_path + "file_in_second_commit", "wb") {|f| f.write "file_in_second_commit"}
108
+ git(:add, ".")
109
+ git(:commit, "-m", "'second commit'")
110
+ end
111
+
112
+ piston(:update, wc_path + "trunk/vendor/parent")
113
+
114
+ assert_equal CHANGE_STATUS.split("\n").sort, svn(:status, wc_path + "trunk/vendor").gsub((wc_path + "trunk/").to_s, "").split("\n").sort
115
+ end
116
+
117
+ CHANGE_STATUS = %Q(M vendor/parent/.piston.yml
118
+ M vendor/parent/README
119
+ ? vendor/parent/file_in_second_commit
120
+ )
121
+ end
@@ -0,0 +1,47 @@
1
+ require File.expand_path("#{File.dirname(__FILE__)}/../test_helper")
2
+
3
+ class TestImportSvnGit < Piston::TestCase
4
+ attr_reader :root_path, :repos_path, :wc_path
5
+
6
+ def setup
7
+ super
8
+ @root_path = mkpath("/tmp/import_svn_git")
9
+ @repos_path = @root_path + "repos"
10
+ @wc_path = @root_path + "wc"
11
+ mkpath(wc_path)
12
+
13
+ Dir.chdir(wc_path) do
14
+ git(:init)
15
+ File.open(wc_path + "README", "wb") {|f| f.write "Hello World!"}
16
+ (wc_path + "vendor").mkdir
17
+ File.open(wc_path + "vendor/.gitignore", "wb") {|f| f.write "*.swp"}
18
+ git(:add, ".")
19
+ git(:commit, "-m", "'first commit'")
20
+ end
21
+ end
22
+
23
+ def test_import
24
+ Dir.chdir(wc_path) do
25
+ piston :import, "http://dev.rubyonrails.org/svn/rails/plugins/ssl_requirement/", "vendor/ssl_requirement"
26
+ end
27
+
28
+ Dir.chdir(wc_path) do
29
+ assert_equal %Q(# On branch master
30
+ # Changes to be committed:
31
+ # (use "git reset HEAD <file>..." to unstage)
32
+ #
33
+ #\tnew file: vendor/ssl_requirement/.piston.yml
34
+ #\tnew file: vendor/ssl_requirement/README
35
+ #\tnew file: vendor/ssl_requirement/lib/ssl_requirement.rb
36
+ #\tnew file: vendor/ssl_requirement/test/ssl_requirement_test.rb
37
+ #
38
+ ).split("\n").sort, git(:status).split("\n").sort
39
+ end
40
+
41
+ info = YAML.load_file(wc_path + "vendor/ssl_requirement/.piston.yml")
42
+ assert_equal 1, info["format"]
43
+ assert_equal "http://dev.rubyonrails.org/svn/rails/plugins/ssl_requirement/", info["repository_url"]
44
+ assert_equal "Piston::Svn::Repository", info["repository_class"]
45
+ assert_equal "5ecf4fe2-1ee6-0310-87b1-e25e094e27de", info["handler"][Piston::Svn::UUID]
46
+ end
47
+ end
@@ -0,0 +1,38 @@
1
+ require File.expand_path("#{File.dirname(__FILE__)}/../test_helper")
2
+
3
+ class TestImportSvnSvn < Piston::TestCase
4
+ attr_reader :root_path, :repos_path, :wc_path
5
+
6
+ def setup
7
+ super
8
+ @root_path = mkpath("/tmp/import_svn_svn")
9
+ @repos_path = @root_path + "repos"
10
+ @wc_path = @root_path + "wc"
11
+
12
+ svnadmin :create, repos_path
13
+ svn :checkout, "file://#{repos_path}", wc_path
14
+ svn :mkdir, wc_path + "trunk", wc_path + "tags", wc_path + "branches", wc_path + "trunk/vendor"
15
+ svn :commit, wc_path, "--message", "'first commit'"
16
+ end
17
+
18
+ def test_import
19
+ Dir.chdir(wc_path + "trunk/vendor") do # make a test guessing the path where import
20
+ piston :import, "http://dev.rubyonrails.org/svn/rails/plugins/ssl_requirement/"
21
+ end
22
+
23
+ assert_equal "A vendor/ssl_requirement
24
+ A vendor/ssl_requirement/test
25
+ A vendor/ssl_requirement/test/ssl_requirement_test.rb
26
+ A vendor/ssl_requirement/lib
27
+ A vendor/ssl_requirement/lib/ssl_requirement.rb
28
+ A vendor/ssl_requirement/.piston.yml
29
+ A vendor/ssl_requirement/README
30
+ ".split("\n").sort, svn(:status, wc_path + "trunk/vendor/").gsub((wc_path + "trunk/").to_s, "").split("\n").sort
31
+
32
+ info = YAML.load_file(wc_path + "trunk/vendor/ssl_requirement/.piston.yml")
33
+ assert_equal 1, info["format"]
34
+ assert_equal "http://dev.rubyonrails.org/svn/rails/plugins/ssl_requirement/", info["repository_url"]
35
+ assert_equal "Piston::Svn::Repository", info["repository_class"]
36
+ assert_equal "5ecf4fe2-1ee6-0310-87b1-e25e094e27de", info["handler"][Piston::Svn::UUID]
37
+ end
38
+ end