cucumba 0.0.5 → 0.0.6
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +5 -0
- data/Gemfile +12 -0
- data/Gemfile.lock +43 -0
- data/History.md +14 -3
- data/Rakefile +5 -33
- data/cucumba.gemspec +17 -45
- data/lib/cucumba.rb +5 -6
- data/lib/cucumba/drb.rb +9 -8
- data/lib/cucumba/{rails.rb → railz.rb} +13 -6
- data/lib/cucumba/railz/klass.rb +27 -0
- data/lib/cucumba/{rails → railz}/runner.rb +1 -1
- data/lib/cucumba/server.rb +1 -1
- data/lib/cucumba/version.rb +3 -0
- data/spec/{cucumba_configuration_spec.rb → configuration_spec.rb} +3 -2
- data/spec/{cucumba_spec_rails.rb → rails_spec.rb} +28 -16
- data/spec/support/sample_app/.gitignore +6 -0
- data/spec/support/sample_app_run.sh +2 -2
- data/tasks/rspec.rake +11 -23
- data/tasks/utils.rake +4 -0
- data/tasks/yard.rake +3 -12
- metadata +22 -130
- data/Manifest.txt +0 -79
- data/config/website.yml.sample +0 -2
- data/lib/cucumba/rails/model.rb +0 -26
- data/script/console +0 -10
- data/script/destroy +0 -14
- data/script/generate +0 -14
- data/script/txt2html +0 -71
- data/spec/spec.opts +0 -1
- data/website/index.html +0 -11
- data/website/index.txt +0 -81
- data/website/javascripts/rounded_corners_lite.inc.js +0 -285
- data/website/stylesheets/screen.css +0 -159
- data/website/template.html.erb +0 -50
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,43 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
cucumba (0.0.6)
|
5
|
+
|
6
|
+
GEM
|
7
|
+
remote: http://rubygems.org/
|
8
|
+
specs:
|
9
|
+
actionmailer (2.3.8)
|
10
|
+
actionpack (= 2.3.8)
|
11
|
+
actionpack (2.3.8)
|
12
|
+
activesupport (= 2.3.8)
|
13
|
+
rack (~> 1.1.0)
|
14
|
+
activerecord (2.3.8)
|
15
|
+
activesupport (= 2.3.8)
|
16
|
+
activeresource (2.3.8)
|
17
|
+
activesupport (= 2.3.8)
|
18
|
+
activesupport (2.3.8)
|
19
|
+
bluecloth (2.0.9)
|
20
|
+
rack (1.1.0)
|
21
|
+
rails (2.3.8)
|
22
|
+
actionmailer (= 2.3.8)
|
23
|
+
actionpack (= 2.3.8)
|
24
|
+
activerecord (= 2.3.8)
|
25
|
+
activeresource (= 2.3.8)
|
26
|
+
activesupport (= 2.3.8)
|
27
|
+
rake (>= 0.8.3)
|
28
|
+
rake (0.8.7)
|
29
|
+
rspec (1.3.0)
|
30
|
+
sqlite3-ruby (1.3.1)
|
31
|
+
yard (0.6.1)
|
32
|
+
|
33
|
+
PLATFORMS
|
34
|
+
ruby
|
35
|
+
|
36
|
+
DEPENDENCIES
|
37
|
+
bluecloth
|
38
|
+
cucumba!
|
39
|
+
rails (= 2.3.8)
|
40
|
+
rake (= 0.8.7)
|
41
|
+
rspec (= 1.3.0)
|
42
|
+
sqlite3-ruby (= 1.3.1)
|
43
|
+
yard (>= 0.6.1)
|
data/History.md
CHANGED
@@ -1,8 +1,19 @@
|
|
1
|
-
0.0.6 (ureleased)
|
2
|
-
|
3
1
|
* TODO
|
4
2
|
* invoking rake tasks
|
5
|
-
*
|
3
|
+
* showing rails load error(add bad envoronment and do there mistage(concat "some string"))
|
4
|
+
* routes(Cucumba[:main].routes.root\_url)
|
5
|
+
* hadling privileged ports(80) with sudo,and fix url method for it
|
6
|
+
* ability to properly run miltiple servers
|
7
|
+
* add loadign rails builtin controller
|
8
|
+
* add drb\_port option to cucumba.yml
|
9
|
+
* add drb\_ip to config file(drb ip to run on)
|
10
|
+
|
11
|
+
0.0.6 (05.10.2010)
|
12
|
+
|
13
|
+
* starting to use bundler
|
14
|
+
* optimized testing
|
15
|
+
* fixed starting drb server(it should run on 127.0.0.1) and not on host described in config/cucumba.yml
|
16
|
+
* refactored internal stuff(Cucumba::Rails => Cucumba::Railz, Cucumba:Railz::Model => Cucumba::Railz::Klass)
|
6
17
|
|
7
18
|
0.0.5 (04.10.2010)
|
8
19
|
------------------
|
data/Rakefile
CHANGED
@@ -1,33 +1,5 @@
|
|
1
|
-
require '
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
Hoe.plugin :newgem
|
8
|
-
Hoe.plugin :website
|
9
|
-
|
10
|
-
# Generate all the Rake tasks
|
11
|
-
# Run 'rake -T' to see list of generated tasks (from gem root directory)
|
12
|
-
$hoe = Hoe.spec 'cucumba' do
|
13
|
-
self.developer 'kucaahbe', 'kucaahbe@ukr.net'
|
14
|
-
self.post_install_message = 'PostInstall.txt'
|
15
|
-
self.rubyforge_name = self.name
|
16
|
-
# self.extra_deps = [['activesupport','>= 2.0.2']]
|
17
|
-
self.extra_dev_deps = [
|
18
|
-
['yard', '>= 0.6.1'],
|
19
|
-
['bluecloth', '2.0.9'],
|
20
|
-
['rails', '2.3.8'],
|
21
|
-
['sqlite3-ruby','1.3.1'],
|
22
|
-
['rspec', '1.3.0']
|
23
|
-
]
|
24
|
-
self.history_file = 'History.md'
|
25
|
-
self.readme_file = 'README.rdoc'
|
26
|
-
end
|
27
|
-
|
28
|
-
require 'newgem/tasks'
|
29
|
-
Dir['tasks/**/*.rake'].each { |t| load t }
|
30
|
-
|
31
|
-
remove_task :default
|
32
|
-
remove_task :spec
|
33
|
-
task :default => ['spec:config', 'spec:rails']
|
1
|
+
require 'bundler'
|
2
|
+
Bundler.setup(:development)
|
3
|
+
Bundler::GemHelper.install_tasks
|
4
|
+
|
5
|
+
Dir['tasks/**/*.rake'].each { |t| load t }
|
data/cucumba.gemspec
CHANGED
@@ -1,52 +1,24 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "cucumba/version"
|
2
4
|
|
3
5
|
Gem::Specification.new do |s|
|
4
|
-
s.name
|
5
|
-
s.version
|
6
|
-
|
7
|
-
s.
|
8
|
-
s.
|
9
|
-
s.
|
10
|
-
s.
|
11
|
-
|
12
|
-
|
13
|
-
this gem will help you}
|
14
|
-
s.email = ["kucaahbe@ukr.net"]
|
15
|
-
s.extra_rdoc_files = ["Manifest.txt", "PostInstall.txt", "website/index.txt"]
|
16
|
-
s.files = ["History.md", "Manifest.txt", "PostInstall.txt", "README.rdoc", "Rakefile", "config/website.yml.sample", "cucumba.gemspec", "generators/cucumba/USAGE", "generators/cucumba/cucumba_generator.rb", "generators/cucumba/templates/config.yml", "generators/cucumba/templates/cucumba", "lib/cucumba.rb", "lib/cucumba/drb.rb", "lib/cucumba/rails.rb", "lib/cucumba/rails/model.rb", "lib/cucumba/rails/runner.rb", "lib/cucumba/server.rb", "script/console", "script/destroy", "script/generate", "script/txt2html", "spec/cucumba_configuration_spec.rb", "spec/cucumba_spec_rails.rb", "spec/spec.opts", "spec/spec_helper.rb", "spec/support/sample_app/README", "spec/support/sample_app/Rakefile", "spec/support/sample_app/app/controllers/application_controller.rb", "spec/support/sample_app/app/controllers/users_controller.rb", "spec/support/sample_app/app/helpers/application_helper.rb", "spec/support/sample_app/app/helpers/users_helper.rb", "spec/support/sample_app/app/models/user.rb", "spec/support/sample_app/app/views/layouts/users.html.erb", "spec/support/sample_app/app/views/users/edit.html.erb", "spec/support/sample_app/app/views/users/index.html.erb", "spec/support/sample_app/app/views/users/new.html.erb", "spec/support/sample_app/app/views/users/show.html.erb", "spec/support/sample_app/config/boot.rb", "spec/support/sample_app/config/database.yml", "spec/support/sample_app/config/environment.rb", "spec/support/sample_app/config/environments/development.rb", "spec/support/sample_app/config/environments/production.rb", "spec/support/sample_app/config/environments/test.rb", "spec/support/sample_app/config/initializers/cookie_verification_secret.rb", "spec/support/sample_app/config/initializers/new_rails_defaults.rb", "spec/support/sample_app/config/initializers/session_store.rb", "spec/support/sample_app/config/routes.rb", "spec/support/sample_app/db/schema.rb", "spec/support/sample_app/public/404.html", "spec/support/sample_app/public/422.html", "spec/support/sample_app/public/500.html", "spec/support/sample_app/public/favicon.ico", "spec/support/sample_app/public/images/rails.png", "spec/support/sample_app/public/index.html", "spec/support/sample_app/public/javascripts/application.js", "spec/support/sample_app/public/javascripts/controls.js", "spec/support/sample_app/public/javascripts/dragdrop.js", "spec/support/sample_app/public/javascripts/effects.js", "spec/support/sample_app/public/javascripts/prototype.js", "spec/support/sample_app/public/robots.txt", "spec/support/sample_app/public/stylesheets/scaffold.css", "spec/support/sample_app/script/about", "spec/support/sample_app/script/console", "spec/support/sample_app/script/dbconsole", "spec/support/sample_app/script/destroy", "spec/support/sample_app/script/generate", "spec/support/sample_app/script/performance/benchmarker", "spec/support/sample_app/script/performance/profiler", "spec/support/sample_app/script/plugin", "spec/support/sample_app/script/runner", "spec/support/sample_app/script/server", "spec/support/sample_app_run.sh", "tasks/rspec.rake", "tasks/yard.rake", "website/index.html", "website/index.txt", "website/javascripts/rounded_corners_lite.inc.js", "website/stylesheets/screen.css", "website/template.html.erb"]
|
17
|
-
s.homepage = %q{http://github.com/hxcoding/cucumba}
|
6
|
+
s.name = "cucumba"
|
7
|
+
s.version = Cucumba::VERSION
|
8
|
+
s.platform = Gem::Platform::RUBY
|
9
|
+
s.authors = ["kucaahbe"]
|
10
|
+
s.email = ["kucaahbe@ukr.net"]
|
11
|
+
s.homepage = "http://rubygems.org/gems/cucumba"
|
12
|
+
s.summary = %q{If you develop more than one rails applications that communicate with each other and you need to test them with something like capybara and also whant to communicate with database - this gem will help you}
|
13
|
+
s.description = s.summary
|
14
|
+
s.homepage = %q{http://github.com/hxcoding/cucumba}
|
18
15
|
s.post_install_message = %q{PostInstall.txt}
|
19
|
-
s.rdoc_options = ["--main", "README.rdoc"]
|
20
|
-
s.require_paths = ["lib"]
|
21
|
-
s.rubyforge_project = %q{cucumba}
|
22
|
-
s.rubygems_version = %q{1.3.7}
|
23
|
-
s.summary = %q{If you develop more than one rails applications that communicate with each other and you need to test them with something like capybara and also whant to communicate with database - this gem will help you}
|
24
16
|
|
25
|
-
if s.respond_to? :specification_version then
|
26
|
-
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
27
|
-
s.specification_version = 3
|
28
17
|
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
s.add_development_dependency(%q<hoe>, [">= 2.6.2"])
|
36
|
-
else
|
37
|
-
s.add_dependency(%q<yard>, [">= 0.6.1"])
|
38
|
-
s.add_dependency(%q<bluecloth>, ["= 2.0.9"])
|
39
|
-
s.add_dependency(%q<rails>, ["= 2.3.8"])
|
40
|
-
s.add_dependency(%q<sqlite3-ruby>, ["= 1.3.1"])
|
41
|
-
s.add_dependency(%q<rspec>, ["= 1.3.0"])
|
42
|
-
s.add_dependency(%q<hoe>, [">= 2.6.2"])
|
43
|
-
end
|
44
|
-
else
|
45
|
-
s.add_dependency(%q<yard>, [">= 0.6.1"])
|
46
|
-
s.add_dependency(%q<bluecloth>, ["= 2.0.9"])
|
47
|
-
s.add_dependency(%q<rails>, ["= 2.3.8"])
|
48
|
-
s.add_dependency(%q<sqlite3-ruby>, ["= 1.3.1"])
|
49
|
-
s.add_dependency(%q<rspec>, ["= 1.3.0"])
|
50
|
-
s.add_dependency(%q<hoe>, [">= 2.6.2"])
|
51
|
-
end
|
18
|
+
s.rubyforge_project = "cucumba"
|
19
|
+
|
20
|
+
s.files = `git ls-files`.split("\n")
|
21
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
22
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
23
|
+
s.require_paths = ["lib"]
|
52
24
|
end
|
data/lib/cucumba.rb
CHANGED
@@ -2,10 +2,9 @@ lib = File.expand_path(File.join(File.dirname(__FILE__),'../lib'))
|
|
2
2
|
$:.unshift(lib) unless $:.include?(lib)
|
3
3
|
|
4
4
|
require 'yaml'
|
5
|
-
require 'cucumba/
|
5
|
+
require 'cucumba/railz'
|
6
6
|
|
7
7
|
module Cucumba
|
8
|
-
VERSION = '0.0.5'
|
9
8
|
|
10
9
|
class ConfigNotFound < StandardError
|
11
10
|
end
|
@@ -23,22 +22,22 @@ module Cucumba
|
|
23
22
|
def self.[] server_name
|
24
23
|
server_name = server_name.to_s
|
25
24
|
if server_name == "_self_"
|
26
|
-
Cucumba::
|
25
|
+
Cucumba::Railz.new(config.first)
|
27
26
|
else
|
28
|
-
Cucumba::
|
27
|
+
Cucumba::Railz.new(config_for(server_name))
|
29
28
|
end
|
30
29
|
end
|
31
30
|
|
32
31
|
private
|
33
32
|
|
34
|
-
def self.config_for
|
33
|
+
def self.config_for server_name
|
35
34
|
config.each do |server_config|
|
36
35
|
if server_config[:name]==server_name
|
37
36
|
return server_config
|
38
37
|
break
|
39
38
|
end
|
40
39
|
end
|
41
|
-
raise Cucumba::
|
40
|
+
raise Cucumba::Railz::ServerNotFound, "server with name '#{server_name}' not described in config file"
|
42
41
|
rescue Errno::ENOENT # yml file not found
|
43
42
|
raise ConfigNotFound, "config not found, run 'cucumba' generator"
|
44
43
|
end
|
data/lib/cucumba/drb.rb
CHANGED
@@ -4,17 +4,17 @@ require 'drb'
|
|
4
4
|
module Cucumba
|
5
5
|
class Drb
|
6
6
|
class Server
|
7
|
-
def
|
8
|
-
Object.const_defined?(
|
7
|
+
def has_constant?(const)
|
8
|
+
Object.const_defined?(const.to_s.classify)
|
9
9
|
end
|
10
10
|
|
11
|
-
def
|
12
|
-
Object.const_get(
|
11
|
+
def constant_has_method?(const,method)
|
12
|
+
Object.const_get(const).respond_to?(method)
|
13
13
|
end
|
14
14
|
|
15
|
-
def
|
16
|
-
logger.info "Processing #{
|
17
|
-
Object.const_get(
|
15
|
+
def invoke_method_on_constant(const,method,*args)
|
16
|
+
logger.info "Processing #{const}.#{method.to_s} (for TODO_IP at #{Time.now.strftime('%Y-%m-%d %H:%M:%S')}) [DRb]"
|
17
|
+
Object.const_get(const).method(method).call(*args.first)
|
18
18
|
rescue Exception => e
|
19
19
|
handle_exception(e)
|
20
20
|
raise RuntimeError, "#{e.class.to_s} #{e.message}"
|
@@ -47,6 +47,7 @@ module Cucumba
|
|
47
47
|
end
|
48
48
|
|
49
49
|
begin
|
50
|
-
DRb.start_service(Cucumba[:_self_].
|
50
|
+
DRb.start_service("druby://127.0.0.1:#{Cucumba[:_self_].drb_port}", Cucumba::Drb::Server.new) if Cucumba[:_self_].run?
|
51
51
|
rescue Errno::EADDRINUSE
|
52
|
+
puts "=> Cucumba DRb server not starting, port #{Cucumba[:_self_].drb_port} already in use"
|
52
53
|
end
|
@@ -1,9 +1,13 @@
|
|
1
1
|
require 'drb'
|
2
|
-
require 'cucumba/
|
2
|
+
require 'cucumba/railz/klass'
|
3
3
|
|
4
4
|
module Cucumba
|
5
|
-
#
|
6
|
-
|
5
|
+
# This class represents you rails application
|
6
|
+
# You get it when through
|
7
|
+
#
|
8
|
+
# Cucumba[:main]
|
9
|
+
# for instance
|
10
|
+
class Railz
|
7
11
|
|
8
12
|
class ServerNotFound < Exception
|
9
13
|
end
|
@@ -36,6 +40,9 @@ module Cucumba
|
|
36
40
|
'druby://'+@host+':'+@drb_port.to_s
|
37
41
|
end
|
38
42
|
|
43
|
+
#--
|
44
|
+
# TODO move to routes
|
45
|
+
#++
|
39
46
|
def rails_root
|
40
47
|
@path
|
41
48
|
end
|
@@ -44,10 +51,10 @@ module Cucumba
|
|
44
51
|
@run
|
45
52
|
end
|
46
53
|
|
47
|
-
def
|
48
|
-
|
54
|
+
def class(class_name)
|
55
|
+
Klass.new(class_name,@server)
|
49
56
|
end
|
50
|
-
alias :
|
57
|
+
alias :c :class
|
51
58
|
|
52
59
|
def execute(code)
|
53
60
|
@server.execute(code)
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module Cucumba
|
2
|
+
class Railz
|
3
|
+
# This class represents some object in rails application
|
4
|
+
class Klass
|
5
|
+
|
6
|
+
class NotFoundError < Exception
|
7
|
+
end
|
8
|
+
|
9
|
+
def initialize(constant,server)
|
10
|
+
@server = server
|
11
|
+
if @server.has_constant?(constant)
|
12
|
+
@constant = constant
|
13
|
+
else
|
14
|
+
raise NotFoundError
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def method_missing(method,*args)
|
19
|
+
if @server.constant_has_method?(@constant,method)
|
20
|
+
@server.invoke_method_on_constant(@constant,method,args)
|
21
|
+
else
|
22
|
+
super
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
data/lib/cucumba/server.rb
CHANGED
@@ -38,7 +38,7 @@ describe "Cucumba configuration" do
|
|
38
38
|
[:name, "name"].each do |server|
|
39
39
|
client = Cucumba[server]
|
40
40
|
|
41
|
-
client.should be_instance_of(Cucumba::
|
41
|
+
client.should be_instance_of(Cucumba::Railz)
|
42
42
|
client.host.should == 'some.host'
|
43
43
|
client.port.should == 4321
|
44
44
|
client.rails_root == '/path/to/rails/app'
|
@@ -76,12 +76,13 @@ describe "Cucumba configuration" do
|
|
76
76
|
it "should raise exception if server not found in config" do
|
77
77
|
Rails.should_receive(:root)
|
78
78
|
YAML.should_receive(:load_file).once.and_return(@good_config)
|
79
|
-
lambda { Cucumba[:wrong] }.should raise_exception(Cucumba::
|
79
|
+
lambda { Cucumba[:wrong] }.should raise_exception(Cucumba::Railz::ServerNotFound)
|
80
80
|
end
|
81
81
|
|
82
82
|
end
|
83
83
|
|
84
84
|
after :all do
|
85
|
+
force_cucumba_reload_config
|
85
86
|
begin
|
86
87
|
remove_fake_rails_module
|
87
88
|
rescue NameError
|
@@ -1,32 +1,40 @@
|
|
1
1
|
require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
2
2
|
|
3
|
-
ENV["RAILS_ENV"] ||= 'test'
|
4
|
-
require File.expand_path(File.dirname(__FILE__) + '/support/sample_app/config/environment')
|
5
|
-
|
6
3
|
describe "Cucumba[:server]" do
|
7
4
|
|
8
|
-
|
9
|
-
|
5
|
+
before :all do
|
6
|
+
@pwd = Dir.pwd; Dir.chdir('spec/support/sample_app')
|
7
|
+
|
8
|
+
require 'active_record'
|
9
|
+
|
10
|
+
active_record_config = YAML.load_file('config/database.yml')
|
11
|
+
|
12
|
+
ActiveRecord::Base.establish_connection(active_record_config["test"])
|
13
|
+
Dir[File.join('app/models/*.rb')].each { |model| load model }
|
10
14
|
end
|
11
15
|
|
12
|
-
|
16
|
+
it "should return instance of Cucumba::Railz" do
|
17
|
+
Cucumba[:test].should be_instance_of(Cucumba::Railz)
|
18
|
+
end
|
19
|
+
|
20
|
+
context "#class" do
|
13
21
|
|
14
|
-
it "should return instace of Cucumba::
|
15
|
-
[ Cucumba[:test].
|
16
|
-
|
22
|
+
it "should return instace of Cucumba::Railz::Klass" do
|
23
|
+
[ Cucumba[:test].class("User"), Cucumba[:test].c("User"), Cucumba[:test].class(:User), Cucumba[:test].c(:User) ].each do |object|
|
24
|
+
object.should be_instance_of(Cucumba::Railz::Klass)
|
17
25
|
end
|
18
26
|
end
|
19
27
|
|
20
28
|
it "should invoke existing methods" do
|
21
29
|
users_count_was = User.all.count
|
22
|
-
Cucumba[:test].
|
30
|
+
Cucumba[:test].c("User").create!(:name => 'test user', :password => 'secret')
|
23
31
|
(User.all.count - users_count_was).should == 1
|
24
32
|
User.last.name.should == 'test user'
|
25
33
|
User.last.password.should == 'secret'
|
26
34
|
end
|
27
35
|
|
28
36
|
it "should invoke method without arguments" do
|
29
|
-
Cucumba[:test].
|
37
|
+
Cucumba[:test].c(:User).columns
|
30
38
|
end
|
31
39
|
|
32
40
|
it "should eval code in server side" do
|
@@ -40,20 +48,24 @@ describe "Cucumba[:server]" do
|
|
40
48
|
end
|
41
49
|
|
42
50
|
it "should invoke this method" do
|
43
|
-
Cucumba[:test].
|
51
|
+
Cucumba[:test].c(:User).method_with_args(:name, :first => 'bla', :last => 'alb')
|
44
52
|
end
|
45
53
|
|
46
|
-
it "should raise exception if
|
47
|
-
lambda { Cucumba[:test].
|
54
|
+
it "should raise exception if class does not exists" do
|
55
|
+
lambda { Cucumba[:test].c("Unknown") }.should raise_exception(Cucumba::Railz::Klass::NotFoundError)
|
48
56
|
end
|
49
57
|
|
50
58
|
it "should raise exception if model's method does not exists" do
|
51
|
-
lambda { Cucumba[:test].
|
59
|
+
lambda { Cucumba[:test].c(:User).blabla }.should raise_exception(NoMethodError)
|
52
60
|
end
|
53
61
|
|
54
62
|
it "should raise exception if exception appears on server" do
|
55
|
-
lambda { Cucumba[:test].
|
63
|
+
lambda { Cucumba[:test].c(:User).create!(:password => 'secret') }.should raise_exception(RuntimeError,"ActiveRecord::RecordInvalid Validation failed: Name can't be blank")
|
56
64
|
end
|
57
65
|
|
58
66
|
end
|
67
|
+
|
68
|
+
after :all do
|
69
|
+
Dir.chdir @pwd
|
70
|
+
end
|
59
71
|
end
|