<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>ruby on rails rspec paperclip on random thoughts</title><link>https://awesomeprogrammer.com/categories/ruby-on-rails-rspec-paperclip/</link><description>Recent content in ruby on rails rspec paperclip on random thoughts</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate>Fri, 24 Aug 2012 00:00:00 +0000</lastBuildDate><atom:link href="https://awesomeprogrammer.com/categories/ruby-on-rails-rspec-paperclip/index.xml" rel="self" type="application/rss+xml"/><item><title>Stubbing paperclip file upload with rspec</title><link>https://awesomeprogrammer.com/blog/2012/08/24/stubbing-paperclip-file-upload-with-rspec/</link><pubDate>Fri, 24 Aug 2012 00:00:00 +0000</pubDate><guid>https://awesomeprogrammer.com/blog/2012/08/24/stubbing-paperclip-file-upload-with-rspec/</guid><description><![CDATA[<p>Here&rsquo;s small chunk of code that will help you out with testing paperclip. Basically it will stub any fie upload of any instance for given model. So now you won&rsquo;t be left with ridiculous amount of files created after each test run. Yay!</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-ruby" data-lang="ruby"><span style="display:flex;"><span><span style="color:#66d9ef">module</span> PaperclipMacros
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">def</span> <span style="color:#a6e22e">stub_paperclip</span>(model)
</span></span><span style="display:flex;"><span>    before <span style="color:#66d9ef">do</span>
</span></span><span style="display:flex;"><span>      model<span style="color:#f92672">.</span>any_instance<span style="color:#f92672">.</span>stub(<span style="color:#e6db74">:save_attached_files</span>)<span style="color:#f92672">.</span>and_return(<span style="color:#66d9ef">true</span>)
</span></span><span style="display:flex;"><span>      model<span style="color:#f92672">.</span>any_instance<span style="color:#f92672">.</span>stub(<span style="color:#e6db74">:delete_attached_files</span>)<span style="color:#f92672">.</span>and_return(<span style="color:#66d9ef">true</span>)
</span></span><span style="display:flex;"><span>      <span style="color:#66d9ef">Paperclip</span><span style="color:#f92672">::</span><span style="color:#66d9ef">Attachment</span><span style="color:#f92672">.</span>any_instance<span style="color:#f92672">.</span>stub(<span style="color:#e6db74">:post_process</span>)<span style="color:#f92672">.</span>and_return(<span style="color:#66d9ef">true</span>)
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">end</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">end</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">end</span>
</span></span></code></pre></div><p>Put that file somehere under <code>spec/support/</code> and in your <code>spec_helper.rb</code> include it like using <code>config.extend PaperclipMacros</code>. Now later in your test (of models or controllers, whatever) you can call it like that:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-ruby" data-lang="ruby"><span style="display:flex;"><span>describe <span style="color:#66d9ef">Download</span> <span style="color:#66d9ef">do</span>
</span></span><span style="display:flex;"><span>  stub_paperclip(<span style="color:#66d9ef">Download</span>)
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">...</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">end</span>
</span></span></code></pre></div>]]></description><content:encoded><![CDATA[<p>Here&rsquo;s small chunk of code that will help you out with testing paperclip. Basically it will stub any fie upload of any instance for given model. So now you won&rsquo;t be left with ridiculous amount of files created after each test run. Yay!</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-ruby" data-lang="ruby"><span style="display:flex;"><span><span style="color:#66d9ef">module</span> PaperclipMacros
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">def</span> <span style="color:#a6e22e">stub_paperclip</span>(model)
</span></span><span style="display:flex;"><span>    before <span style="color:#66d9ef">do</span>
</span></span><span style="display:flex;"><span>      model<span style="color:#f92672">.</span>any_instance<span style="color:#f92672">.</span>stub(<span style="color:#e6db74">:save_attached_files</span>)<span style="color:#f92672">.</span>and_return(<span style="color:#66d9ef">true</span>)
</span></span><span style="display:flex;"><span>      model<span style="color:#f92672">.</span>any_instance<span style="color:#f92672">.</span>stub(<span style="color:#e6db74">:delete_attached_files</span>)<span style="color:#f92672">.</span>and_return(<span style="color:#66d9ef">true</span>)
</span></span><span style="display:flex;"><span>      <span style="color:#66d9ef">Paperclip</span><span style="color:#f92672">::</span><span style="color:#66d9ef">Attachment</span><span style="color:#f92672">.</span>any_instance<span style="color:#f92672">.</span>stub(<span style="color:#e6db74">:post_process</span>)<span style="color:#f92672">.</span>and_return(<span style="color:#66d9ef">true</span>)
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">end</span>
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">end</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">end</span>
</span></span></code></pre></div><p>Put that file somehere under <code>spec/support/</code> and in your <code>spec_helper.rb</code> include it like using <code>config.extend PaperclipMacros</code>. Now later in your test (of models or controllers, whatever) you can call it like that:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-ruby" data-lang="ruby"><span style="display:flex;"><span>describe <span style="color:#66d9ef">Download</span> <span style="color:#66d9ef">do</span>
</span></span><span style="display:flex;"><span>  stub_paperclip(<span style="color:#66d9ef">Download</span>)
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">...</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">end</span>
</span></span></code></pre></div>]]></content:encoded></item></channel></rss>