Reputation: 453
I have a rails 3.2 app with paperclip 3.2 and I have a model that has a required paperclip attachment(thumb). How can I create valid objects without having the file saved to the filesystem or S3. What I currently have is below but this saves to the filesystem on each run. Is there a way to have a valid episode without uploading everytime?
class Episode
include Mongoid::Document
include Mongoid::Paperclip
has_mongoid_attached_file :thumb
validates_attachment_presence :thumb
end
require 'spec_helper'
describe Episode do
it "has a valid factory" do
Fabricate.build(:episode).should be_valid
end
end
Fabricator(:episode) do
thumb { File.open(File.join(Rails.root, 'spec', 'fabricators', 'assets', 'thumb.jpg'))}
end
Upvotes: 3
Views: 977
Reputation: 3895
Found this:
http://room118solutions.com/2011/05/25/stubbing-paperclip-during-testing/
for Paperclip 3.0: There were some significant changes in Paperclip 3.0, you should now use something like this:
spec/support/stub_paperclip_attachments.rb
module Paperclip
class Attachment
def save
@queued_for_delete = []
@queued_for_write = {}
true
end
private
def post_process
true
end
end
# This is only necessary if you're validating the content-type
class ContentTypeDetector
private
def empty?
false
end
end
end
Upvotes: 6