crab 0.2.7 → 0.2.8

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.
Files changed (98) hide show
  1. data/README.md +0 -1
  2. data/bin/crab +27 -14
  3. data/bin/crab-help +10 -2
  4. data/bin/crab-it +25 -11
  5. data/bin/crab-it-help +11 -2
  6. data/bin/crab-it-list +25 -15
  7. data/bin/crab-iteration +25 -11
  8. data/bin/crab-iteration-help +11 -2
  9. data/bin/crab-iteration-list +25 -15
  10. data/bin/crab-login +24 -13
  11. data/bin/crab-logout +22 -9
  12. data/bin/crab-project +42 -32
  13. data/bin/crab-rel +25 -11
  14. data/bin/crab-rel-help +12 -3
  15. data/bin/crab-rel-list +23 -15
  16. data/bin/crab-release +25 -11
  17. data/bin/crab-release-help +12 -3
  18. data/bin/crab-release-list +23 -15
  19. data/bin/crab-st +24 -11
  20. data/bin/crab-st-add +18 -10
  21. data/bin/crab-st-change +53 -39
  22. data/bin/crab-st-create +18 -10
  23. data/bin/crab-st-del +19 -11
  24. data/bin/crab-st-delete +19 -11
  25. data/bin/crab-st-find +32 -21
  26. data/bin/crab-st-help +11 -2
  27. data/bin/crab-st-list +32 -21
  28. data/bin/crab-st-ls +32 -21
  29. data/bin/crab-st-move +26 -14
  30. data/bin/crab-st-mv +26 -14
  31. data/bin/crab-st-new +18 -10
  32. data/bin/crab-st-pull +28 -20
  33. data/bin/crab-st-ren +26 -14
  34. data/bin/crab-st-rename +26 -14
  35. data/bin/crab-st-rm +19 -11
  36. data/bin/crab-st-show +19 -11
  37. data/bin/crab-st-up +53 -39
  38. data/bin/crab-st-update +53 -39
  39. data/bin/crab-story +24 -11
  40. data/bin/crab-story-add +18 -10
  41. data/bin/crab-story-change +53 -39
  42. data/bin/crab-story-create +18 -10
  43. data/bin/crab-story-del +19 -11
  44. data/bin/crab-story-delete +19 -11
  45. data/bin/crab-story-diff +54 -0
  46. data/bin/crab-story-find +32 -21
  47. data/bin/crab-story-help +11 -2
  48. data/bin/crab-story-list +32 -21
  49. data/bin/crab-story-ls +32 -21
  50. data/bin/crab-story-move +26 -14
  51. data/bin/crab-story-mv +26 -14
  52. data/bin/crab-story-new +18 -10
  53. data/bin/crab-story-pull +28 -20
  54. data/bin/crab-story-ren +26 -14
  55. data/bin/crab-story-rename +26 -14
  56. data/bin/crab-story-rm +19 -11
  57. data/bin/crab-story-show +19 -11
  58. data/bin/crab-story-up +53 -39
  59. data/bin/crab-story-update +53 -39
  60. data/bin/crab-tc +24 -11
  61. data/bin/crab-tc-add +32 -20
  62. data/bin/crab-tc-change +18 -8
  63. data/bin/crab-tc-create +32 -20
  64. data/bin/crab-tc-del +18 -10
  65. data/bin/crab-tc-delete +18 -10
  66. data/bin/crab-tc-find +32 -21
  67. data/bin/crab-tc-help +11 -2
  68. data/bin/crab-tc-list +32 -21
  69. data/bin/crab-tc-ls +32 -21
  70. data/bin/crab-tc-new +32 -20
  71. data/bin/crab-tc-rm +18 -10
  72. data/bin/crab-tc-show +28 -15
  73. data/bin/crab-tc-up +18 -8
  74. data/bin/crab-tc-update +18 -8
  75. data/bin/crab-testcase +24 -11
  76. data/bin/crab-testcase-add +32 -20
  77. data/bin/crab-testcase-change +18 -8
  78. data/bin/crab-testcase-create +32 -20
  79. data/bin/crab-testcase-del +18 -10
  80. data/bin/crab-testcase-delete +18 -10
  81. data/bin/crab-testcase-find +32 -21
  82. data/bin/crab-testcase-help +11 -2
  83. data/bin/crab-testcase-list +32 -21
  84. data/bin/crab-testcase-ls +32 -21
  85. data/bin/crab-testcase-new +32 -20
  86. data/bin/crab-testcase-rm +18 -10
  87. data/bin/crab-testcase-show +28 -15
  88. data/bin/crab-testcase-up +18 -8
  89. data/bin/crab-testcase-update +18 -8
  90. data/bin/crab-truncate +1 -0
  91. data/bin/crab-version +2 -1
  92. data/features/subcommand-help.feature +1 -0
  93. data/lib/crab.rb +2 -0
  94. data/lib/crab/cucumber_to_rally_adapter.rb +48 -0
  95. data/lib/crab/rally.rb +21 -1
  96. data/lib/crab/utilities.rb +10 -2
  97. data/lib/crab/version.rb +1 -1
  98. metadata +7 -4
@@ -1,29 +1,41 @@
1
+ #!/usr/bin/env ruby
1
2
  # vim: set ft=ruby :
2
3
  require 'crab'
3
4
 
4
- include Crab::Utilities
5
+ class Crab::TestCaseCreate
5
6
 
6
- opts = add_or_update_options <<-BANNER
7
- crab testcase create: add a test case to a story in Rally
7
+ class << self
8
8
 
9
- Usage: crab testcase create <story> <name> [options*]
10
- BANNER
9
+ include Crab::Utilities
11
10
 
12
- story_id = ARGV.shift
13
- unless story_id
14
- $stderr.puts "Error: Story ID not provided."
15
- system "crab-testcase-help"
16
- exit 1
17
- end
11
+ def run(args=ARGV)
12
+ opts = add_or_update_options <<-BANNER, args
13
+ crab testcase create: add a test case to a story in Rally
18
14
 
19
- name = ARGV.join(" ")
20
- unless name
21
- $stderr.puts "Error: Test case name not provided."
22
- system "crab-testcase-help"
23
- exit 1
24
- end
15
+ Usage: crab testcase create <story> <name> [options*]
16
+ BANNER
17
+
18
+ story_id = args.shift
19
+ unless story_id
20
+ logger.error "Error: Story ID not provided."
21
+ system "crab-testcase-help"
22
+ exit 1
23
+ end
25
24
 
26
- Crab::Rally.new(opts[:dry]) do |rally|
27
- tc = rally.create_test_case(story_id, name, sanitize_options(opts))
28
- puts "#{tc.story.formatted_id}/#{tc.formatted_id}: #{tc.name} (#{tc.tags.join(" ")})"
25
+ name = args.join(" ")
26
+ unless name
27
+ logger.error "Error: Test case name not provided."
28
+ system "crab-testcase-help"
29
+ exit 1
30
+ end
31
+
32
+ Crab::Rally.new(opts[:dry]) do |rally|
33
+ tc = rally.create_test_case(story_id, name, sanitize_options(opts))
34
+ puts "#{tc.story.formatted_id}/#{tc.formatted_id}: #{tc.name} (#{tc.tags.join(" ")})"
35
+ end
36
+
37
+ end
38
+ end
29
39
  end
40
+
41
+ Crab::TestCaseCreate.run
@@ -1,18 +1,26 @@
1
+ #!/usr/bin/env ruby
1
2
  # vim: set ft=ruby :
2
3
  require 'crab'
3
4
 
4
- Trollop::options do
5
- banner <<-BANNER
5
+ class Crab::TestCaseDelete
6
+
7
+ def self.run(args=ARGV)
8
+ Trollop::options(args) do
9
+ banner <<-BANNER
6
10
  crab testcase delete: delete a test case in Rally
7
11
 
8
12
  Usage: crab testcase delete <id> [options*]
9
- BANNER
10
- opt :dry, "Dry-run (don't change anything)", :short => "-D", :default => false
11
- end
13
+ BANNER
14
+ opt :dry, "Dry-run (don't change anything)", :short => "-D", :default => false
15
+ end
12
16
 
13
- tc_id = ARGV.shift
14
- Crab::Rally.new(opts[:dry]) do |rally|
15
- tc = rally.find_test_case(tc_id)
16
- tc.delete
17
- puts "Test case #{tc_id} deleted."
17
+ tc_id = args.shift
18
+ Crab::Rally.new(opts[:dry]) do |rally|
19
+ tc = rally.find_test_case(tc_id)
20
+ tc.delete
21
+ puts "Test case #{tc_id} deleted."
22
+ end
23
+ end
18
24
  end
25
+
26
+ Crab::TestCaseDelete.run
@@ -1,18 +1,26 @@
1
+ #!/usr/bin/env ruby
1
2
  # vim: set ft=ruby :
2
3
  require 'crab'
3
4
 
4
- Trollop::options do
5
- banner <<-BANNER
5
+ class Crab::TestCaseDelete
6
+
7
+ def self.run(args=ARGV)
8
+ Trollop::options(args) do
9
+ banner <<-BANNER
6
10
  crab testcase delete: delete a test case in Rally
7
11
 
8
12
  Usage: crab testcase delete <id> [options*]
9
- BANNER
10
- opt :dry, "Dry-run (don't change anything)", :short => "-D", :default => false
11
- end
13
+ BANNER
14
+ opt :dry, "Dry-run (don't change anything)", :short => "-D", :default => false
15
+ end
12
16
 
13
- tc_id = ARGV.shift
14
- Crab::Rally.new(opts[:dry]) do |rally|
15
- tc = rally.find_test_case(tc_id)
16
- tc.delete
17
- puts "Test case #{tc_id} deleted."
17
+ tc_id = args.shift
18
+ Crab::Rally.new(opts[:dry]) do |rally|
19
+ tc = rally.find_test_case(tc_id)
20
+ tc.delete
21
+ puts "Test case #{tc_id} deleted."
22
+ end
23
+ end
18
24
  end
25
+
26
+ Crab::TestCaseDelete.run
@@ -1,34 +1,45 @@
1
+ #!/usr/bin/env ruby
1
2
  # vim: set ft=ruby :
2
3
  require 'crab'
3
4
 
4
- include Crab::Utilities
5
+ class Crab::TestCaseFind
5
6
 
6
- opts = Trollop::options do
7
- banner <<-BANNER
7
+ class << self
8
+
9
+ include Crab::Utilities
10
+
11
+ def run(args=ARGV)
12
+ opts = Trollop::options(args) do
13
+ banner <<-BANNER
8
14
  crab testcase find: find a testcase in Rally
9
15
 
10
16
  Usage: crab testcase find [options*] [text]
11
- BANNER
12
- opt :project, "Project to use (required unless set by 'crab project')", :short => "-p", :type => String
13
- opt :story, "Limit search to testcases of this story", :short => "-s", :type => String
14
- opt :priority, "Priority (one of: #{Crab::TestCase::PRIORITIES.join(" ")}", :short => '-P', :type => String
15
- opt :risk, "Risk (one of: #{Crab::TestCase::RISKS.join(" ")})", :short => '-r', :type => String
16
- opt :method, "Method (one of: #{Crab::TestCase::METHODS.join(" ")})", :short => '-m', :type => String
17
- opt :type, "Type (one of: #{Crab::TestCase::TYPES.join(" ")})", :short => '-t', :type => String
18
- opt :dry, "Dry-run (don't change anything)", :short => "-D", :default => false
19
- end
17
+ BANNER
18
+ opt :project, "Project to use (required unless set by 'crab project')", :short => "-p", :type => String
19
+ opt :story, "Limit search to testcases of this story", :short => "-s", :type => String
20
+ opt :priority, "Priority (one of: #{Crab::TestCase::PRIORITIES.join(" ")}", :short => '-P', :type => String
21
+ opt :risk, "Risk (one of: #{Crab::TestCase::RISKS.join(" ")})", :short => '-r', :type => String
22
+ opt :method, "Method (one of: #{Crab::TestCase::METHODS.join(" ")})", :short => '-m', :type => String
23
+ opt :type, "Type (one of: #{Crab::TestCase::TYPES.join(" ")})", :short => '-t', :type => String
24
+ opt :dry, "Dry-run (don't change anything)", :short => "-D", :default => false
25
+ end
20
26
 
21
- pattern = ARGV.map(&:strip).reject(&:empty?)
22
- project_name = valid_project_name(opts)
27
+ pattern = args.map(&:strip).reject(&:empty?)
28
+ project_name = valid_project_name(opts)
23
29
 
24
- Crab::Rally.new(opts[:dry]) do |rally|
25
- project = rally.find_project(project_name)
26
- Trollop::die "Project #{opts[:project].inspect} not found" if project.nil?
30
+ Crab::Rally.new(opts[:dry]) do |rally|
31
+ project = rally.find_project(project_name)
32
+ Trollop::die "Project #{opts[:project].inspect} not found" if project.nil?
27
33
 
28
- find_opts = {}
29
- find_opts[:story] = rally.find_story_with_id opts[:story] if opts[:story_given]
34
+ find_opts = {}
35
+ find_opts[:story] = rally.find_story_with_id opts[:story] if opts[:story_given]
30
36
 
31
- rally.find_testcases(project, pattern, find_opts).each do |tc|
32
- puts "#{tc.story.formatted_id}/#{tc.formatted_id}: #{tc.name} (#{tc.tags.join(" ")})"
37
+ rally.find_testcases(project, pattern, find_opts).each do |tc|
38
+ puts "#{tc.story.formatted_id}/#{tc.formatted_id}: #{tc.name} (#{tc.tags.join(" ")})"
39
+ end
40
+ end
41
+ end
33
42
  end
34
43
  end
44
+
45
+ Crab::TestCaseFind.run
@@ -1,6 +1,11 @@
1
+ #!/usr/bin/env ruby
1
2
  # vim: set ft=ruby :
3
+ require 'crab'
2
4
 
3
- puts <<-HELP
5
+ class Crab::TestCaseHelp
6
+
7
+ def self.run
8
+ puts <<-HELP
4
9
  Usage: crab testcase <command> [options*]
5
10
 
6
11
  Available commands:
@@ -14,4 +19,8 @@ Usage: crab testcase <command> [options*]
14
19
  update Update a test case (name, priority, testing method, etc)
15
20
 
16
21
  --help, -h: Show this message
17
- HELP
22
+ HELP
23
+ end
24
+ end
25
+
26
+ Crab::TestCaseHelp.run
@@ -1,34 +1,45 @@
1
+ #!/usr/bin/env ruby
1
2
  # vim: set ft=ruby :
2
3
  require 'crab'
3
4
 
4
- include Crab::Utilities
5
+ class Crab::TestCaseFind
5
6
 
6
- opts = Trollop::options do
7
- banner <<-BANNER
7
+ class << self
8
+
9
+ include Crab::Utilities
10
+
11
+ def run(args=ARGV)
12
+ opts = Trollop::options(args) do
13
+ banner <<-BANNER
8
14
  crab testcase find: find a testcase in Rally
9
15
 
10
16
  Usage: crab testcase find [options*] [text]
11
- BANNER
12
- opt :project, "Project to use (required unless set by 'crab project')", :short => "-p", :type => String
13
- opt :story, "Limit search to testcases of this story", :short => "-s", :type => String
14
- opt :priority, "Priority (one of: #{Crab::TestCase::PRIORITIES.join(" ")}", :short => '-P', :type => String
15
- opt :risk, "Risk (one of: #{Crab::TestCase::RISKS.join(" ")})", :short => '-r', :type => String
16
- opt :method, "Method (one of: #{Crab::TestCase::METHODS.join(" ")})", :short => '-m', :type => String
17
- opt :type, "Type (one of: #{Crab::TestCase::TYPES.join(" ")})", :short => '-t', :type => String
18
- opt :dry, "Dry-run (don't change anything)", :short => "-D", :default => false
19
- end
17
+ BANNER
18
+ opt :project, "Project to use (required unless set by 'crab project')", :short => "-p", :type => String
19
+ opt :story, "Limit search to testcases of this story", :short => "-s", :type => String
20
+ opt :priority, "Priority (one of: #{Crab::TestCase::PRIORITIES.join(" ")}", :short => '-P', :type => String
21
+ opt :risk, "Risk (one of: #{Crab::TestCase::RISKS.join(" ")})", :short => '-r', :type => String
22
+ opt :method, "Method (one of: #{Crab::TestCase::METHODS.join(" ")})", :short => '-m', :type => String
23
+ opt :type, "Type (one of: #{Crab::TestCase::TYPES.join(" ")})", :short => '-t', :type => String
24
+ opt :dry, "Dry-run (don't change anything)", :short => "-D", :default => false
25
+ end
20
26
 
21
- pattern = ARGV.map(&:strip).reject(&:empty?)
22
- project_name = valid_project_name(opts)
27
+ pattern = args.map(&:strip).reject(&:empty?)
28
+ project_name = valid_project_name(opts)
23
29
 
24
- Crab::Rally.new(opts[:dry]) do |rally|
25
- project = rally.find_project(project_name)
26
- Trollop::die "Project #{opts[:project].inspect} not found" if project.nil?
30
+ Crab::Rally.new(opts[:dry]) do |rally|
31
+ project = rally.find_project(project_name)
32
+ Trollop::die "Project #{opts[:project].inspect} not found" if project.nil?
27
33
 
28
- find_opts = {}
29
- find_opts[:story] = rally.find_story_with_id opts[:story] if opts[:story_given]
34
+ find_opts = {}
35
+ find_opts[:story] = rally.find_story_with_id opts[:story] if opts[:story_given]
30
36
 
31
- rally.find_testcases(project, pattern, find_opts).each do |tc|
32
- puts "#{tc.story.formatted_id}/#{tc.formatted_id}: #{tc.name} (#{tc.tags.join(" ")})"
37
+ rally.find_testcases(project, pattern, find_opts).each do |tc|
38
+ puts "#{tc.story.formatted_id}/#{tc.formatted_id}: #{tc.name} (#{tc.tags.join(" ")})"
39
+ end
40
+ end
41
+ end
33
42
  end
34
43
  end
44
+
45
+ Crab::TestCaseFind.run
@@ -1,34 +1,45 @@
1
+ #!/usr/bin/env ruby
1
2
  # vim: set ft=ruby :
2
3
  require 'crab'
3
4
 
4
- include Crab::Utilities
5
+ class Crab::TestCaseFind
5
6
 
6
- opts = Trollop::options do
7
- banner <<-BANNER
7
+ class << self
8
+
9
+ include Crab::Utilities
10
+
11
+ def run(args=ARGV)
12
+ opts = Trollop::options(args) do
13
+ banner <<-BANNER
8
14
  crab testcase find: find a testcase in Rally
9
15
 
10
16
  Usage: crab testcase find [options*] [text]
11
- BANNER
12
- opt :project, "Project to use (required unless set by 'crab project')", :short => "-p", :type => String
13
- opt :story, "Limit search to testcases of this story", :short => "-s", :type => String
14
- opt :priority, "Priority (one of: #{Crab::TestCase::PRIORITIES.join(" ")}", :short => '-P', :type => String
15
- opt :risk, "Risk (one of: #{Crab::TestCase::RISKS.join(" ")})", :short => '-r', :type => String
16
- opt :method, "Method (one of: #{Crab::TestCase::METHODS.join(" ")})", :short => '-m', :type => String
17
- opt :type, "Type (one of: #{Crab::TestCase::TYPES.join(" ")})", :short => '-t', :type => String
18
- opt :dry, "Dry-run (don't change anything)", :short => "-D", :default => false
19
- end
17
+ BANNER
18
+ opt :project, "Project to use (required unless set by 'crab project')", :short => "-p", :type => String
19
+ opt :story, "Limit search to testcases of this story", :short => "-s", :type => String
20
+ opt :priority, "Priority (one of: #{Crab::TestCase::PRIORITIES.join(" ")}", :short => '-P', :type => String
21
+ opt :risk, "Risk (one of: #{Crab::TestCase::RISKS.join(" ")})", :short => '-r', :type => String
22
+ opt :method, "Method (one of: #{Crab::TestCase::METHODS.join(" ")})", :short => '-m', :type => String
23
+ opt :type, "Type (one of: #{Crab::TestCase::TYPES.join(" ")})", :short => '-t', :type => String
24
+ opt :dry, "Dry-run (don't change anything)", :short => "-D", :default => false
25
+ end
20
26
 
21
- pattern = ARGV.map(&:strip).reject(&:empty?)
22
- project_name = valid_project_name(opts)
27
+ pattern = args.map(&:strip).reject(&:empty?)
28
+ project_name = valid_project_name(opts)
23
29
 
24
- Crab::Rally.new(opts[:dry]) do |rally|
25
- project = rally.find_project(project_name)
26
- Trollop::die "Project #{opts[:project].inspect} not found" if project.nil?
30
+ Crab::Rally.new(opts[:dry]) do |rally|
31
+ project = rally.find_project(project_name)
32
+ Trollop::die "Project #{opts[:project].inspect} not found" if project.nil?
27
33
 
28
- find_opts = {}
29
- find_opts[:story] = rally.find_story_with_id opts[:story] if opts[:story_given]
34
+ find_opts = {}
35
+ find_opts[:story] = rally.find_story_with_id opts[:story] if opts[:story_given]
30
36
 
31
- rally.find_testcases(project, pattern, find_opts).each do |tc|
32
- puts "#{tc.story.formatted_id}/#{tc.formatted_id}: #{tc.name} (#{tc.tags.join(" ")})"
37
+ rally.find_testcases(project, pattern, find_opts).each do |tc|
38
+ puts "#{tc.story.formatted_id}/#{tc.formatted_id}: #{tc.name} (#{tc.tags.join(" ")})"
39
+ end
40
+ end
41
+ end
33
42
  end
34
43
  end
44
+
45
+ Crab::TestCaseFind.run
@@ -1,29 +1,41 @@
1
+ #!/usr/bin/env ruby
1
2
  # vim: set ft=ruby :
2
3
  require 'crab'
3
4
 
4
- include Crab::Utilities
5
+ class Crab::TestCaseCreate
5
6
 
6
- opts = add_or_update_options <<-BANNER
7
- crab testcase create: add a test case to a story in Rally
7
+ class << self
8
8
 
9
- Usage: crab testcase create <story> <name> [options*]
10
- BANNER
9
+ include Crab::Utilities
11
10
 
12
- story_id = ARGV.shift
13
- unless story_id
14
- $stderr.puts "Error: Story ID not provided."
15
- system "crab-testcase-help"
16
- exit 1
17
- end
11
+ def run(args=ARGV)
12
+ opts = add_or_update_options <<-BANNER, args
13
+ crab testcase create: add a test case to a story in Rally
18
14
 
19
- name = ARGV.join(" ")
20
- unless name
21
- $stderr.puts "Error: Test case name not provided."
22
- system "crab-testcase-help"
23
- exit 1
24
- end
15
+ Usage: crab testcase create <story> <name> [options*]
16
+ BANNER
17
+
18
+ story_id = args.shift
19
+ unless story_id
20
+ logger.error "Error: Story ID not provided."
21
+ system "crab-testcase-help"
22
+ exit 1
23
+ end
25
24
 
26
- Crab::Rally.new(opts[:dry]) do |rally|
27
- tc = rally.create_test_case(story_id, name, sanitize_options(opts))
28
- puts "#{tc.story.formatted_id}/#{tc.formatted_id}: #{tc.name} (#{tc.tags.join(" ")})"
25
+ name = args.join(" ")
26
+ unless name
27
+ logger.error "Error: Test case name not provided."
28
+ system "crab-testcase-help"
29
+ exit 1
30
+ end
31
+
32
+ Crab::Rally.new(opts[:dry]) do |rally|
33
+ tc = rally.create_test_case(story_id, name, sanitize_options(opts))
34
+ puts "#{tc.story.formatted_id}/#{tc.formatted_id}: #{tc.name} (#{tc.tags.join(" ")})"
35
+ end
36
+
37
+ end
38
+ end
29
39
  end
40
+
41
+ Crab::TestCaseCreate.run
@@ -1,18 +1,26 @@
1
+ #!/usr/bin/env ruby
1
2
  # vim: set ft=ruby :
2
3
  require 'crab'
3
4
 
4
- Trollop::options do
5
- banner <<-BANNER
5
+ class Crab::TestCaseDelete
6
+
7
+ def self.run(args=ARGV)
8
+ Trollop::options(args) do
9
+ banner <<-BANNER
6
10
  crab testcase delete: delete a test case in Rally
7
11
 
8
12
  Usage: crab testcase delete <id> [options*]
9
- BANNER
10
- opt :dry, "Dry-run (don't change anything)", :short => "-D", :default => false
11
- end
13
+ BANNER
14
+ opt :dry, "Dry-run (don't change anything)", :short => "-D", :default => false
15
+ end
12
16
 
13
- tc_id = ARGV.shift
14
- Crab::Rally.new(opts[:dry]) do |rally|
15
- tc = rally.find_test_case(tc_id)
16
- tc.delete
17
- puts "Test case #{tc_id} deleted."
17
+ tc_id = args.shift
18
+ Crab::Rally.new(opts[:dry]) do |rally|
19
+ tc = rally.find_test_case(tc_id)
20
+ tc.delete
21
+ puts "Test case #{tc_id} deleted."
22
+ end
23
+ end
18
24
  end
25
+
26
+ Crab::TestCaseDelete.run