tddium-preview 0.5.1 → 0.5.2

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- tddium-preview (0.5.0)
4
+ tddium-preview (0.5.1)
5
5
  bundler
6
6
  highline
7
7
  json
@@ -56,13 +56,14 @@ module TddiumConstant
56
56
  NEW_PASSWORD = "Enter a new password: "
57
57
  PASSWORD_CONFIRMATION = "Confirm your password: "
58
58
  INVITATION_TOKEN = "Enter your invitation token:"
59
- USE_EXISTING_SUITE = "The suite name '%s' already exists. Enter '#{Response::YES}' to use it, or enter a new name:"
59
+ USE_EXISTING_SUITE = "A suite exists '%%s' (branch %s). Enter '#{Response::YES}' to use it, or enter a new repo name:"
60
60
  end
61
61
 
62
62
  module Process
63
63
  TERMINATE_INSTRUCTION = "Press Ctrl-C to stop waiting. Tests will continue running."
64
64
  INTERRUPT = "Interrupted"
65
- STARTING_TEST = "Starting %s tests..."
65
+ GIT_PUSH = "Pushing changes to Tddium..."
66
+ STARTING_TEST = "Startng %s tests..."
66
67
  CHECK_TEST_STATUS = "Use 'tddium status' to check on pending jobs"
67
68
  FINISHED_TEST = "Finished in %s seconds"
68
69
  CHECK_TEST_REPORT = "Test report: %s"
@@ -88,9 +89,10 @@ tddium spec
88
89
  ALREADY_LOGGED_IN = "You're already logged in"
89
90
  LOGGED_IN_SUCCESSFULLY = "Logged in successfully"
90
91
  LOGGED_OUT_SUCCESSFULLY = "Logged out successfully"
91
- USING_PREVIOUS_USER_DATA_FILE = "Using the previous user data file '%s'"
92
- USING_PREVIOUS_MAX_PARALLELISM = "Using the previous value of max_parallelism = %s"
93
- USING_PREVIOUS_TEST_PATTERN = "Using the previous value of test_pattern = %s"
92
+ USING_SPEC_OPTION = {:max_parallelism => "Max number of tests in parallel = %s",
93
+ :user_data_file => "Sending user data from %s",
94
+ :test_pattern => "Selecting tests that match '%s'"}
95
+ REMEMBERED = " (Remembered value)"
94
96
  HEROKU_WELCOME = "
95
97
  Thanks for installing the Tddium Heroku Add-On!
96
98
 
@@ -3,5 +3,5 @@ Copyright (c) 2011 Solano Labs All Rights Reserved
3
3
  =end
4
4
 
5
5
  module TddiumVersion
6
- VERSION = "0.5.1"
6
+ VERSION = "0.5.2"
7
7
  end
data/lib/tddium.rb CHANGED
@@ -134,10 +134,7 @@ class Tddium < Thor
134
134
 
135
135
  test_execution_params = {}
136
136
 
137
- # Set the user data for spec
138
- if user_data_file_path = options[:user_data_file] || current_suite_options["user_data_file"]
139
- say Text::Process::USING_PREVIOUS_USER_DATA_FILE % user_data_file_path if user_data_file_path == current_suite_options["user_data_file"]
140
-
137
+ user_data_file_path = get_remembered_option(options, :user_data_file, nil) do |user_data_file_path|
141
138
  if File.exists?(user_data_file_path)
142
139
  user_data = File.open(user_data_file_path) { |file| file.read }
143
140
  test_execution_params[:user_data_text] = Base64.encode64(user_data)
@@ -147,19 +144,11 @@ class Tddium < Thor
147
144
  end
148
145
  end
149
146
 
150
- # Set max parallelism param
151
- if max_parallelism = options[:max_parallelism] || current_suite_options["max_parallelism"]
152
- say Text::Process::USING_PREVIOUS_MAX_PARALLELISM % max_parallelism if max_parallelism == current_suite_options["max_parallelism"]
147
+ max_parallelism = get_remembered_option(options, :max_parallelism, nil) do |max_parallelism|
153
148
  test_execution_params[:max_parallelism] = max_parallelism
154
149
  end
155
150
 
156
- # Set test_pattern param
157
- if current_suite_options["test_pattern"]
158
- test_pattern = current_suite_options["test_pattern"]
159
- say Text::Process::USING_PREVIOUS_TEST_PATTERN % test_pattern if options[:test_pattern] == current_suite_options["test_pattern"]
160
- else
161
- test_pattern = options[:test_pattern]
162
- end
151
+ test_pattern = get_remembered_option(options, :test_pattern, Default::TEST_PATTERN)
163
152
 
164
153
  start_time = Time.now
165
154
 
@@ -184,13 +173,13 @@ class Tddium < Thor
184
173
  # Register the tests
185
174
  call_api(:post, "#{Api::Path::SESSIONS}/#{session_id}/#{Api::Path::REGISTER_TEST_EXECUTIONS}", {:suite_id => current_suite_id, :tests => test_files})
186
175
 
176
+ say Text::Process::STARTING_TEST % test_files.size
187
177
  # Start the tests
188
178
  start_test_executions = call_api(:post, "#{Api::Path::SESSIONS}/#{session_id}/#{Api::Path::START_TEST_EXECUTIONS}", test_execution_params)
189
179
  tests_not_finished_yet = true
190
180
  finished_tests = {}
191
181
  test_statuses = Hash.new(0)
192
182
 
193
- say Text::Process::STARTING_TEST % test_files.size
194
183
  say Text::Process::CHECK_TEST_REPORT % start_test_executions["report"]
195
184
  say Text::Process::TERMINATE_INSTRUCTION
196
185
  while tests_not_finished_yet do
@@ -305,7 +294,7 @@ class Tddium < Thor
305
294
  current_suite_name = params[:repo_name]
306
295
  if existing_suite
307
296
  # Prompt for using existing suite (unless suite name is passed from command line) or entering new one
308
- params[:repo_name] = prompt(Text::Prompt::USE_EXISTING_SUITE, options[:name], current_suite_name)
297
+ params[:repo_name] = prompt(Text::Prompt::USE_EXISTING_SUITE % params[:branch], options[:name], current_suite_name)
309
298
  if options[:name] || params[:repo_name] == Text::Prompt::Response::YES
310
299
  # Use the existing suite, so assign the value back and exit the loop
311
300
  params[:repo_name] = current_suite_name
@@ -396,6 +385,28 @@ class Tddium < Thor
396
385
  abort msg
397
386
  end
398
387
 
388
+ def get_remembered_option(options, key, default, &block)
389
+ remembered = false
390
+ if options[key] != default
391
+ result = options[key]
392
+ elsif remembered = current_suite_options[key.to_s]
393
+ result = remembered
394
+ remembered = true
395
+ else
396
+ result = default
397
+ end
398
+
399
+ if result
400
+ msg = Text::Process::USING_SPEC_OPTION[key] % result
401
+ msg += Text::Process::REMEMBERED if remembered
402
+ msg += "\n"
403
+ say msg
404
+ yield result if block_given?
405
+ end
406
+ result
407
+ end
408
+
409
+
399
410
  def get_user
400
411
  call_api(:get, Api::Path::USERS, {}, nil, false) rescue nil
401
412
  end
@@ -413,6 +424,7 @@ class Tddium < Thor
413
424
  end
414
425
 
415
426
  def git_push
427
+ say Text::Process::GIT_PUSH
416
428
  system("git push -f #{Git::REMOTE_NAME} #{current_git_branch}")
417
429
  end
418
430
 
data/spec/tddium_spec.rb CHANGED
@@ -1334,7 +1334,7 @@ describe Tddium do
1334
1334
  context "but this user has already registered some suites" do
1335
1335
  before do
1336
1336
  stub_call_api_response(:get, Tddium::Api::Path::SUITES, SAMPLE_SUITES_RESPONSE, {"suites" => []})
1337
- tddium.stub(:ask).with(Tddium::Text::Prompt::USE_EXISTING_SUITE % SAMPLE_APP_NAME).and_return(Tddium::Text::Prompt::Response::YES)
1337
+ tddium.stub(:ask).with(Tddium::Text::Prompt::USE_EXISTING_SUITE % SAMPLE_BRANCH_NAME % SAMPLE_APP_NAME).and_return(Tddium::Text::Prompt::Response::YES)
1338
1338
  end
1339
1339
 
1340
1340
  shared_examples_for "writing the suite to file" do
@@ -1360,8 +1360,8 @@ describe Tddium do
1360
1360
  end
1361
1361
 
1362
1362
  context "passing no cli options" do
1363
- it "should ask the user: '#{Tddium::Text::Prompt::USE_EXISTING_SUITE % SAMPLE_APP_NAME}' " do
1364
- tddium.should_receive(:ask).with(Tddium::Text::Prompt::USE_EXISTING_SUITE % SAMPLE_APP_NAME).and_return("something")
1363
+ it "should ask the user: '#{Tddium::Text::Prompt::USE_EXISTING_SUITE % SAMPLE_BRANCH_NAME % SAMPLE_APP_NAME}' " do
1364
+ tddium.should_receive(:ask).with(Tddium::Text::Prompt::USE_EXISTING_SUITE % SAMPLE_BRANCH_NAME % SAMPLE_APP_NAME).and_return("something")
1365
1365
  run_suite(tddium)
1366
1366
  end
1367
1367
  end
@@ -1404,7 +1404,7 @@ describe Tddium do
1404
1404
  end
1405
1405
 
1406
1406
  context "the user does not want to use the existing suite" do
1407
- before{ tddium.stub(:ask).with(Tddium::Text::Prompt::USE_EXISTING_SUITE % SAMPLE_APP_NAME).and_return("some_other_suite") }
1407
+ before{ tddium.stub(:ask).with(Tddium::Text::Prompt::USE_EXISTING_SUITE % SAMPLE_BRANCH_NAME % SAMPLE_APP_NAME).and_return("some_other_suite") }
1408
1408
 
1409
1409
 
1410
1410
  it "should send a 'POST' request to '#{Tddium::Api::Path::SUITES}'" do
@@ -1438,7 +1438,7 @@ describe Tddium do
1438
1438
 
1439
1439
  context "interactive mode" do
1440
1440
  before do
1441
- tddium.stub(:ask).with(Tddium::Text::Prompt::USE_EXISTING_SUITE % SAMPLE_APP_NAME).and_return("foobar")
1441
+ tddium.stub(:ask).with(Tddium::Text::Prompt::USE_EXISTING_SUITE % SAMPLE_BRANCH_NAME % SAMPLE_APP_NAME).and_return("foobar")
1442
1442
  stub_default_suite_name
1443
1443
  end
1444
1444
 
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: tddium-preview
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.5.1
5
+ version: 0.5.2
6
6
  platform: ruby
7
7
  authors:
8
8
  - Solano Labs
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-05-28 00:00:00 -07:00
13
+ date: 2011-06-02 00:00:00 -07:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency