From da93fda81580e9229ffba0f17b5e972e9cd38099 Mon Sep 17 00:00:00 2001 From: Sam Lown Date: Wed, 13 Apr 2011 19:04:09 +0200 Subject: [PATCH] Working on getting tests to work for new design doc checkcodes --- Gemfile.lock | 27 +++++---------- couchrest_model.gemspec | 2 +- lib/couchrest/model/design_doc.rb | 6 ---- lib/couchrest/model/support/couchrest.rb | 19 ----------- .../model/support/couchrest_design.rb | 4 +-- lib/couchrest/model/views.rb | 2 +- spec/couchrest/base_spec.rb | 29 +--------------- spec/couchrest/view_spec.rb | 33 +------------------ spec/spec_helper.rb | 2 +- 9 files changed, 15 insertions(+), 109 deletions(-) delete mode 100644 lib/couchrest/model/support/couchrest.rb diff --git a/Gemfile.lock b/Gemfile.lock index 63be8f1..e6e03aa 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -27,7 +27,6 @@ GEM builder (~> 2.1.2) i18n (~> 0.5.0) activesupport (3.0.6) - bouncy-castle-java (1.5.0145.2) builder (2.1.2) couchrest (1.1.0.pre2) json (~> 1.5.1) @@ -37,12 +36,9 @@ GEM erubis (2.6.6) abstract (>= 1.0.0) i18n (0.5.0) - jruby-openssl (0.7.3) - bouncy-castle-java json (1.5.1) - json (1.5.1-java) mime-types (1.16) - rack (1.2.1) + rack (1.2.2) rack-mount (0.6.14) rack (>= 1.0.0) rack-test (0.5.7) @@ -55,28 +51,21 @@ GEM rake (0.8.7) rest-client (1.6.1) mime-types (>= 1.16) - rspec (2.2.0) - rspec-core (~> 2.2) - rspec-expectations (~> 2.2) - rspec-mocks (~> 2.2) - rspec-core (2.3.0) - rspec-expectations (2.3.0) + rspec (2.5.0) + rspec-core (~> 2.5.0) + rspec-expectations (~> 2.5.0) + rspec-mocks (~> 2.5.0) + rspec-core (2.5.1) + rspec-expectations (2.5.0) diff-lcs (~> 1.1.2) - rspec-mocks (2.3.0) + rspec-mocks (2.5.0) thor (0.14.6) tzinfo (0.3.26) PLATFORMS - java ruby DEPENDENCIES - activemodel (~> 3.0.0) - couchrest (= 1.1.0.pre2) couchrest_model! - jruby-openssl (>= 0.7.3) - mime-types (~> 1.15) rack-test (>= 0.5.7) - railties (~> 3.0.0) rspec (>= 2.0.0) - tzinfo (~> 0.3.22) diff --git a/couchrest_model.gemspec b/couchrest_model.gemspec index 5396663..af8ceca 100644 --- a/couchrest_model.gemspec +++ b/couchrest_model.gemspec @@ -30,6 +30,6 @@ Gem::Specification.new do |s| s.add_dependency(%q, "~> 3.0.0") s.add_development_dependency(%q, ">= 2.0.0") s.add_development_dependency(%q, ">= 0.5.7") - s.add_development_dependency("jruby-openssl", ">= 0.7.3") + # s.add_development_dependency("jruby-openssl", ">= 0.7.3") end diff --git a/lib/couchrest/model/design_doc.rb b/lib/couchrest/model/design_doc.rb index 3b76819..011ae9f 100644 --- a/lib/couchrest/model/design_doc.rb +++ b/lib/couchrest/model/design_doc.rb @@ -103,12 +103,6 @@ module CouchRest design_doc end - # Return true if the two views match - def compare_views(orig, repl) - return false if orig.nil? or repl.nil? - (orig['map'].to_s.strip == repl['map'].to_s.strip) && (orig['reduce'].to_s.strip == repl['reduce'].to_s.strip) - end - end # module ClassMethods end diff --git a/lib/couchrest/model/support/couchrest.rb b/lib/couchrest/model/support/couchrest.rb deleted file mode 100644 index 1d36894..0000000 --- a/lib/couchrest/model/support/couchrest.rb +++ /dev/null @@ -1,19 +0,0 @@ - -module CouchRest - - class Database - - alias :delete_orig! :delete! - def delete! - clear_model_fresh_cache - delete_orig! - end - - # If the database is deleted, ensure that the design docs will be refreshed. - def clear_model_fresh_cache - ::CouchRest::Model::Base.subclasses.each{|klass| klass.req_design_doc_refresh if klass.respond_to?(:req_design_doc_refresh)} - end - - end - -end diff --git a/lib/couchrest/model/support/couchrest_design.rb b/lib/couchrest/model/support/couchrest_design.rb index 45f3d79..d91adbc 100644 --- a/lib/couchrest/model/support/couchrest_design.rb +++ b/lib/couchrest/model/support/couchrest_design.rb @@ -15,8 +15,8 @@ CouchRest::Design.class_eval do base.delete('_rev') result = nil flatten = - lambda{|v| - v.is_a?(Hash) ? v.flatten.map{|v| flatten.call(v)}.flatten : v + lambda {|v| + v.is_a?(Hash) ? v.flatten.map{|v| flatten.call(v)}.flatten : v.to_s } Digest::MD5.hexdigest(flatten.call(base).sort.join('')) end diff --git a/lib/couchrest/model/views.rb b/lib/couchrest/model/views.rb index a72d5da..568a416 100644 --- a/lib/couchrest/model/views.rb +++ b/lib/couchrest/model/views.rb @@ -2,7 +2,7 @@ module CouchRest module Model module Views extend ActiveSupport::Concern - + module ClassMethods # Define a CouchDB view. The name of the view will be the concatenation # of by and the keys joined by _and_ diff --git a/spec/couchrest/base_spec.rb b/spec/couchrest/base_spec.rb index 9af6037..79c0b67 100644 --- a/spec/couchrest/base_spec.rb +++ b/spec/couchrest/base_spec.rb @@ -246,7 +246,6 @@ describe "Model Base" do describe "finding all instances of a model" do before(:all) do - WithTemplateAndUniqueID.req_design_doc_refresh WithTemplateAndUniqueID.all.map{|o| o.destroy} WithTemplateAndUniqueID.database.bulk_delete WithTemplateAndUniqueID.new('important-field' => '1').save @@ -254,11 +253,6 @@ describe "Model Base" do WithTemplateAndUniqueID.new('important-field' => '3').save WithTemplateAndUniqueID.new('important-field' => '4').save end - it "should make the design doc" do - WithTemplateAndUniqueID.all - d = WithTemplateAndUniqueID.design_doc - d['views']['all']['map'].should include('WithTemplateAndUniqueID') - end it "should find all" do rs = WithTemplateAndUniqueID.all rs.length.should == 4 @@ -268,7 +262,7 @@ describe "Model Base" do describe "counting all instances of a model" do before(:each) do @db = reset_test_db! - WithTemplateAndUniqueID.req_design_doc_refresh + # WithTemplateAndUniqueID.req_design_doc_refresh end it ".count should return 0 if there are no docuemtns" do @@ -287,17 +281,11 @@ describe "Model Base" do describe "finding the first instance of a model" do before(:each) do @db = reset_test_db! - # WithTemplateAndUniqueID.req_design_doc_refresh # Removed by Sam Lown, design doc should be loaded automatically WithTemplateAndUniqueID.new('important-field' => '1').save WithTemplateAndUniqueID.new('important-field' => '2').save WithTemplateAndUniqueID.new('important-field' => '3').save WithTemplateAndUniqueID.new('important-field' => '4').save end - it "should make the design doc" do - WithTemplateAndUniqueID.all - d = WithTemplateAndUniqueID.design_doc - d['views']['all']['map'].should include('WithTemplateAndUniqueID') - end it "should find first" do rs = WithTemplateAndUniqueID.first rs['important-field'].should == "1" @@ -308,21 +296,6 @@ describe "Model Base" do end end - describe "lazily refreshing the design document" do - before(:all) do - @db = reset_test_db! - WithTemplateAndUniqueID.new('important-field' => '1').save - end - it "should not save the design doc twice" do - WithTemplateAndUniqueID.all - WithTemplateAndUniqueID.req_design_doc_refresh - WithTemplateAndUniqueID.refresh_design_doc - rev = WithTemplateAndUniqueID.design_doc['_rev'] - WithTemplateAndUniqueID.req_design_doc_refresh - WithTemplateAndUniqueID.refresh_design_doc - WithTemplateAndUniqueID.design_doc['_rev'].should eql(rev) - end - end describe "getting a model with a subobject field" do before(:all) do diff --git a/spec/couchrest/view_spec.rb b/spec/couchrest/view_spec.rb index c276b56..3216174 100644 --- a/spec/couchrest/view_spec.rb +++ b/spec/couchrest/view_spec.rb @@ -56,35 +56,6 @@ describe "Model views" do written_at += 24 * 3600 end end - it "should have a design doc" do - Article.design_doc["views"]["by_date"].should_not be_nil - end - it "should save the design doc" do - Article.by_date #rescue nil - doc = Article.database.get Article.design_doc.id - doc['views']['by_date'].should_not be_nil - end - it "should save design doc if a view changed" do - Article.by_date - orig = Article.stored_design_doc - orig['views']['by_date']['map'] = "function() { }" - Article.database.save_doc(orig) - rev = Article.stored_design_doc['_rev'] - Article.req_design_doc_refresh # prepare for re-load - Article.by_date - orig = Article.stored_design_doc - orig['views']['by_date']['map'].should eql(Article.design_doc['views']['by_date']['map']) - orig['_rev'].should_not eql(rev) - end - it "should not save design doc if not changed" do - Article.by_date - orig = Article.stored_design_doc['_rev'] - Article.req_design_doc_refresh - Article.by_date - Article.stored_design_doc['_rev'].should eql(orig) - end - - it "should return the matching raw view result" do view = Article.by_date :raw => true view['rows'].length.should == 4 @@ -107,9 +78,8 @@ describe "Model views" do Article.view_by :title lambda{Article.by_title}.should_not raise_error end - end - + describe "another model with a simple view" do before(:all) do reset_test_db! @@ -240,7 +210,6 @@ describe "Model views" do lambda{Unattached.all}.should raise_error end it "should query all" do - # Unattached.cleanup_design_docs!(@db) rs = Unattached.all :database => @db rs.length.should == 4 end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 3a865b5..8b234ac 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -32,7 +32,7 @@ RSpec.configure do |config| cr = TEST_SERVER test_dbs = cr.databases.select { |db| db =~ /^#{TESTDB}/ } test_dbs.each do |db| - cr.database(db).delete! rescue nil + # cr.database(db).delete! rescue nil end end end