<div dir="ltr"><div>Hi folks,</div><div>I created <a href="https://pypi.org/project/pytest-mock-generator/" target="_blank">a mock generator for Pytest and published it on PyPI</a>. </div><div>This fixture saves me time when mocking objects, so I&#39;m sharing this with you in the hope that it can save you some time as well. I&#39;d appreciate any feedback you may have.</div><div><br></div><div>The usage is pretty simple:</div><div><br></div><div>Assume you have a module named <span style="background-color:rgb(253,253,253);color:rgb(70,70,70);font-family:&quot;Source Sans Pro&quot;,Helvetica,Arial,sans-serif"> </span><code style="box-sizing:inherit;font-family:&quot;Source Code Pro&quot;,monospace;background-color:rgb(249,249,249);border:1px solid rgb(211,211,211);padding:0px 2px 1px;color:rgb(108,108,108)">tested_module.py</code><span style="background-color:rgb(253,253,253);color:rgb(70,70,70);font-family:&quot;Source Sans Pro&quot;,Helvetica,Arial,sans-serif"> </span>which holds a function to process a string sent to it and then add it to a zip file:</div><div><pre style="white-space:pre-wrap;box-sizing:inherit;font-family:&quot;Source Code Pro&quot;,monospace;font-size:0.85rem;margin-top:30px;margin-bottom:0px;padding:15px;background-color:rgb(249,249,249);border:1px solid rgb(211,211,211);color:rgb(108,108,108);overflow-x:auto"><span style="box-sizing:inherit;color:rgb(0,45,71)">import</span> <span style="box-sizing:inherit;color:rgb(187,0,102)">zipfile</span>

<span style="box-sizing:inherit;color:rgb(0,45,71)">def</span> <span style="box-sizing:inherit;color:rgb(0,109,173)">process_and_zip</span><span style="box-sizing:inherit">(</span><span style="box-sizing:inherit">zip_path</span><span style="box-sizing:inherit">,</span> <span style="box-sizing:inherit">file_name</span><span style="box-sizing:inherit">,</span> <span style="box-sizing:inherit">contents</span><span style="box-sizing:inherit">):</span>
    <span style="box-sizing:inherit">processed_contents</span> <span style="box-sizing:inherit">=</span> <span style="box-sizing:inherit;color:rgb(213,45,64)">&quot;processed &quot;</span> <span style="box-sizing:inherit">+</span> <span style="box-sizing:inherit">contents</span>  <span style="box-sizing:inherit;color:rgb(115,115,115)"># some complex logic</span>
    <span style="box-sizing:inherit;color:rgb(0,45,71)">with</span> <span style="box-sizing:inherit">zipfile</span><span style="box-sizing:inherit">.</span><span style="box-sizing:inherit">ZipFile</span><span style="box-sizing:inherit">(</span><span style="box-sizing:inherit">zip_path</span><span style="box-sizing:inherit">,</span> <span style="box-sizing:inherit;color:rgb(213,45,64)">&#39;w&#39;</span><span style="box-sizing:inherit">)</span> <span style="box-sizing:inherit;color:rgb(0,45,71)">as</span> <span style="box-sizing:inherit">zip_container</span><span style="box-sizing:inherit">:</span>
        <span style="box-sizing:inherit">zip_container</span><span style="box-sizing:inherit">.</span><span style="box-sizing:inherit">writestr</span><span style="box-sizing:inherit">(</span><span style="box-sizing:inherit">file_name</span><span style="box-sizing:inherit">,</span> <span style="box-sizing:inherit">processed_contents</span><span style="box-sizing:inherit">)</span>
</pre><p style="box-sizing:inherit;margin:15px 0px 0px;padding:0px;color:rgb(70,70,70);font-family:&quot;Source Sans Pro&quot;,Helvetica,Arial,sans-serif;font-size:16px;background-color:rgb(253,253,253)"><span style="color:rgb(34,34,34);font-family:Arial,Helvetica,sans-serif;font-size:small;background-color:rgb(255,255,255)">This is the function that you want to test (aka Unit Under Test or UUT). Let&#39;s assume that you don&#39;t want to create a file on the hard drive and wish to mock it instead.</span><br></p><p style="box-sizing:inherit;margin:15px 0px 0px;padding:0px;color:rgb(70,70,70);font-family:&quot;Source Sans Pro&quot;,Helvetica,Arial,sans-serif;font-size:16px;background-color:rgb(253,253,253)"><span style="color:rgb(34,34,34);font-family:Arial,Helvetica,sans-serif;font-size:small;background-color:rgb(255,255,255)">Here is where the mock generator (mg for short) fixture comes to play - it would generate both the arrange and assert sections for you:</span></p><pre style="box-sizing:inherit;font-family:&quot;Source Code Pro&quot;,monospace;font-size:0.85rem;margin-top:30px;margin-bottom:0px;padding:15px;background-color:rgb(249,249,249);border:1px solid rgb(211,211,211);color:rgb(108,108,108);overflow-x:auto"><span class="gmail-kn" style="box-sizing:inherit;color:rgb(0,45,71)">from</span> <span class="gmail-nn" style="box-sizing:inherit;color:rgb(187,0,102)">tests.sample.code.tested_module</span> <span class="gmail-kn" style="box-sizing:inherit;color:rgb(0,45,71)">import</span> <span class="gmail-n" style="box-sizing:inherit">process_and_zip</span>

<span class="gmail-k" style="box-sizing:inherit;color:rgb(0,45,71)">def</span> <span class="gmail-nf" style="box-sizing:inherit;color:rgb(0,109,173)">test_process_and_zip</span><span class="gmail-p" style="box-sizing:inherit">(</span><span class="gmail-n" style="box-sizing:inherit">mocker</span><span class="gmail-p" style="box-sizing:inherit">,</span> <span class="gmail-n" style="box-sizing:inherit"><b>mg</b></span><span class="gmail-p" style="box-sizing:inherit">):</span>
    <span class="gmail-c1" style="box-sizing:inherit;color:rgb(115,115,115)"># arrange: todo  </span>
    <b><span class="gmail-n" style="box-sizing:inherit">mg</span><span class="gmail-o" style="box-sizing:inherit">.</span><span class="gmail-n" style="box-sizing:inherit">generate_uut_mocks_with_asserts</span><span class="gmail-p" style="box-sizing:inherit">(</span><span class="gmail-n" style="box-sizing:inherit">process_and_zip</span><span class="gmail-p" style="box-sizing:inherit">)</span></b>
    
    <span class="gmail-c1" style="box-sizing:inherit;color:rgb(115,115,115)"># act: invoking the tested code</span>
    <span class="gmail-n" style="box-sizing:inherit">process_and_zip</span><span class="gmail-p" style="box-sizing:inherit">(</span><span class="gmail-s1" style="box-sizing:inherit;color:rgb(213,45,64)">&#39;/path/to.zip&#39;</span><span class="gmail-p" style="box-sizing:inherit">,</span> <span class="gmail-s1" style="box-sizing:inherit;color:rgb(213,45,64)">&#39;in_zip.txt&#39;</span><span class="gmail-p" style="box-sizing:inherit">,</span> <span class="gmail-s1" style="box-sizing:inherit;color:rgb(213,45,64)">&#39;foo bar&#39;</span><span class="gmail-p" style="box-sizing:inherit">)</span>
    
    <span class="gmail-c1" style="box-sizing:inherit;color:rgb(115,115,115)"># assert: todo</span>
</pre><p style="box-sizing:inherit;margin:15px 0px 0px;padding:0px;color:rgb(70,70,70);font-family:&quot;Source Sans Pro&quot;,Helvetica,Arial,sans-serif;font-size:16px;background-color:rgb(253,253,253)"><span style="background-color:rgb(255,255,255);color:rgb(34,34,34);font-family:Arial,Helvetica,sans-serif;font-size:small">Note the bold mg fixture usage.</span><br></p><p style="box-sizing:inherit;margin:15px 0px 0px;padding:0px;color:rgb(70,70,70);font-family:&quot;Source Sans Pro&quot;,Helvetica,Arial,sans-serif;font-size:16px;background-color:rgb(253,253,253)"><span style="color:rgb(34,34,34);font-family:Arial,Helvetica,sans-serif;font-size:small;background-color:rgb(255,255,255)">When you execute the test, the following output is printed to the console and copied to the clipboard:</span></p><pre style="box-sizing:inherit;font-family:&quot;Source Code Pro&quot;,monospace;font-size:0.85rem;margin-top:30px;margin-bottom:0px;padding:15px;background-color:rgb(249,249,249);border:1px solid rgb(211,211,211);color:rgb(108,108,108);overflow-x:auto"><span class="gmail-c1" style="box-sizing:inherit;color:rgb(115,115,115)"># mocked dependencies</span>
<span class="gmail-n" style="box-sizing:inherit">mock_ZipFile</span> <span class="gmail-o" style="box-sizing:inherit">=</span> <span class="gmail-n" style="box-sizing:inherit">mocker</span><span class="gmail-o" style="box-sizing:inherit">.</span><span class="gmail-n" style="box-sizing:inherit">MagicMock</span><span class="gmail-p" style="box-sizing:inherit">(</span><span class="gmail-n" style="box-sizing:inherit">name</span><span class="gmail-o" style="box-sizing:inherit">=</span><span class="gmail-s1" style="box-sizing:inherit;color:rgb(213,45,64)">&#39;ZipFile&#39;</span><span class="gmail-p" style="box-sizing:inherit">)</span>
<span class="gmail-n" style="box-sizing:inherit">mocker</span><span class="gmail-o" style="box-sizing:inherit">.</span><span class="gmail-n" style="box-sizing:inherit">patch</span><span class="gmail-p" style="box-sizing:inherit">(</span><span class="gmail-s1" style="box-sizing:inherit;color:rgb(213,45,64)">&#39;tests.sample.code.tested_module.zipfile.ZipFile&#39;</span><span class="gmail-p" style="box-sizing:inherit">,</span> <span class="gmail-n" style="box-sizing:inherit">new</span><span class="gmail-o" style="box-sizing:inherit">=</span><span class="gmail-n" style="box-sizing:inherit">mock_ZipFile</span><span class="gmail-p" style="box-sizing:inherit">)</span>
<span class="gmail-c1" style="box-sizing:inherit;color:rgb(115,115,115)"># calls to generate_asserts, put this after the &#39;act&#39;</span>
<span class="gmail-n" style="box-sizing:inherit">mg</span><span class="gmail-o" style="box-sizing:inherit">.</span><span class="gmail-n" style="box-sizing:inherit">generate_asserts</span><span class="gmail-p" style="box-sizing:inherit">(</span><span class="gmail-n" style="box-sizing:inherit">mock_ZipFile</span><span class="gmail-p" style="box-sizing:inherit">,</span> <span class="gmail-n" style="box-sizing:inherit">name</span><span class="gmail-o" style="box-sizing:inherit">=</span><span class="gmail-s1" style="box-sizing:inherit;color:rgb(213,45,64)">&#39;mock_ZipFile&#39;</span><span class="gmail-p" style="box-sizing:inherit">)</span></pre><p style="box-sizing:inherit;margin:15px 0px 0px;padding:0px;color:rgb(70,70,70);font-family:&quot;Source Sans Pro&quot;,Helvetica,Arial,sans-serif;font-size:16px;background-color:rgb(253,253,253)"><span style="color:rgb(34,34,34);font-family:Arial,Helvetica,sans-serif;font-size:small;background-color:rgb(255,255,255)">You can copy the generated code into the appropriate section and get the following test:</span></p><pre style="box-sizing:inherit;font-family:&quot;Source Code Pro&quot;,monospace;font-size:0.85rem;margin-top:30px;margin-bottom:0px;padding:15px;background-color:rgb(249,249,249);border:1px solid rgb(211,211,211);color:rgb(108,108,108);overflow-x:auto"><span class="gmail-kn" style="box-sizing:inherit;color:rgb(0,45,71)">from</span> <span class="gmail-nn" style="box-sizing:inherit;color:rgb(187,0,102)">tests.sample.code.tested_module</span> <span class="gmail-kn" style="box-sizing:inherit;color:rgb(0,45,71)">import</span> <span class="gmail-n" style="box-sizing:inherit">process_and_zip</span>

<span class="gmail-k" style="box-sizing:inherit;color:rgb(0,45,71)">def</span> <span class="gmail-nf" style="box-sizing:inherit;color:rgb(0,109,173)">test_process_and_zip</span><span class="gmail-p" style="box-sizing:inherit">(</span><span class="gmail-n" style="box-sizing:inherit">mocker</span><span class="gmail-p" style="box-sizing:inherit">,</span> <span class="gmail-n" style="box-sizing:inherit"><b>mg</b></span><span class="gmail-p" style="box-sizing:inherit">):</span>
    <span class="gmail-c1" style="box-sizing:inherit;color:rgb(115,115,115)"># arrange:  </span>
    <span class="gmail-c1" style="box-sizing:inherit;color:rgb(115,115,115)"># mocked dependencies</span>
    <span class="gmail-n" style="box-sizing:inherit">mock_ZipFile</span> <span class="gmail-o" style="box-sizing:inherit">=</span> <span class="gmail-n" style="box-sizing:inherit">mocker</span><span class="gmail-o" style="box-sizing:inherit">.</span><span class="gmail-n" style="box-sizing:inherit">MagicMock</span><span class="gmail-p" style="box-sizing:inherit">(</span><span class="gmail-n" style="box-sizing:inherit">name</span><span class="gmail-o" style="box-sizing:inherit">=</span><span class="gmail-s1" style="box-sizing:inherit;color:rgb(213,45,64)">&#39;ZipFile&#39;</span><span class="gmail-p" style="box-sizing:inherit">)</span>
    <span class="gmail-n" style="box-sizing:inherit">mocker</span><span class="gmail-o" style="box-sizing:inherit">.</span><span class="gmail-n" style="box-sizing:inherit">patch</span><span class="gmail-p" style="box-sizing:inherit">(</span><span class="gmail-s1" style="box-sizing:inherit;color:rgb(213,45,64)">&#39;tests.sample.code.tested_module.zipfile.ZipFile&#39;</span><span class="gmail-p" style="box-sizing:inherit">,</span> <span class="gmail-n" style="box-sizing:inherit">new</span><span class="gmail-o" style="box-sizing:inherit">=</span><span class="gmail-n" style="box-sizing:inherit">mock_ZipFile</span><span class="gmail-p" style="box-sizing:inherit">)</span>
    
    <span class="gmail-c1" style="box-sizing:inherit;color:rgb(115,115,115)"># act: invoking the tested code</span>
    <span class="gmail-n" style="box-sizing:inherit">process_and_zip</span><span class="gmail-p" style="box-sizing:inherit">(</span><span class="gmail-s1" style="box-sizing:inherit;color:rgb(213,45,64)">&#39;/path/to.zip&#39;</span><span class="gmail-p" style="box-sizing:inherit">,</span> <span class="gmail-s1" style="box-sizing:inherit;color:rgb(213,45,64)">&#39;in_zip.txt&#39;</span><span class="gmail-p" style="box-sizing:inherit">,</span> <span class="gmail-s1" style="box-sizing:inherit;color:rgb(213,45,64)">&#39;foo bar&#39;</span><span class="gmail-p" style="box-sizing:inherit">)</span>
    
    <span class="gmail-c1" style="box-sizing:inherit;color:rgb(115,115,115)"># assert: todo</span>
    <span class="gmail-c1" style="box-sizing:inherit;color:rgb(115,115,115)"># calls to generate_asserts, put this after the &#39;act&#39;</span>
<b>    <span class="gmail-n" style="box-sizing:inherit">mg</span><span class="gmail-o" style="box-sizing:inherit">.</span><span class="gmail-n" style="box-sizing:inherit">generate_asserts</span><span class="gmail-p" style="box-sizing:inherit">(</span><span class="gmail-n" style="box-sizing:inherit">mock_ZipFile</span><span class="gmail-p" style="box-sizing:inherit">,</span> <span class="gmail-n" style="box-sizing:inherit">name</span><span class="gmail-o" style="box-sizing:inherit">=</span><span class="gmail-s1" style="box-sizing:inherit;color:rgb(213,45,64)">&#39;mock_ZipFile&#39;</span><span class="gmail-p" style="box-sizing:inherit">)</span></b></pre><p style="box-sizing:inherit;margin:15px 0px 0px;padding:0px;color:rgb(70,70,70);font-family:&quot;Source Sans Pro&quot;,Helvetica,Arial,sans-serif;font-size:16px;background-color:rgb(253,253,253)"><span style="color:rgb(34,34,34);font-family:Arial,Helvetica,sans-serif;font-size:small;background-color:rgb(255,255,255)">So the arrange part is ready and we&#39;re left with filling the assets. In order to generate the asserts code, run the test function once more and you&#39;ll get this input:</span></p><pre style="box-sizing:inherit;font-family:&quot;Source Code Pro&quot;,monospace;font-size:0.85rem;margin-top:30px;margin-bottom:0px;padding:15px;background-color:rgb(249,249,249);border:1px solid rgb(211,211,211);color:rgb(108,108,108);overflow-x:auto"><span class="gmail-k" style="box-sizing:inherit;color:rgb(0,45,71)">assert</span> <span class="gmail-mi" style="box-sizing:inherit;color:rgb(17,106,30)">1</span> <span class="gmail-o" style="box-sizing:inherit">==</span> <span class="gmail-n" style="box-sizing:inherit">mock_ZipFile</span><span class="gmail-o" style="box-sizing:inherit">.</span><span class="gmail-n" style="box-sizing:inherit">call_count</span>
<span class="gmail-n" style="box-sizing:inherit">mock_ZipFile</span><span class="gmail-o" style="box-sizing:inherit">.</span><span class="gmail-n" style="box-sizing:inherit">assert_called_once_with</span><span class="gmail-p" style="box-sizing:inherit">(</span><span class="gmail-s1" style="box-sizing:inherit;color:rgb(213,45,64)">&#39;/path/to.zip&#39;</span><span class="gmail-p" style="box-sizing:inherit">,</span> <span class="gmail-s1" style="box-sizing:inherit;color:rgb(213,45,64)">&#39;w&#39;</span><span class="gmail-p" style="box-sizing:inherit">)</span>
<span class="gmail-n" style="box-sizing:inherit">mock_ZipFile</span><span class="gmail-o" style="box-sizing:inherit">.</span><span class="gmail-n" style="box-sizing:inherit">return_value</span><span class="gmail-o" style="box-sizing:inherit">.</span><span class="gmail-fm" style="box-sizing:inherit">__enter__</span><span class="gmail-o" style="box-sizing:inherit">.</span><span class="gmail-n" style="box-sizing:inherit">assert_called_once_with</span><span class="gmail-p" style="box-sizing:inherit">()</span>
<span class="gmail-n" style="box-sizing:inherit">mock_ZipFile</span><span class="gmail-o" style="box-sizing:inherit">.</span><span class="gmail-n" style="box-sizing:inherit">return_value</span><span class="gmail-o" style="box-sizing:inherit">.</span><span class="gmail-fm" style="box-sizing:inherit">__enter__</span><span class="gmail-o" style="box-sizing:inherit">.</span><span class="gmail-n" style="box-sizing:inherit">return_value</span><span class="gmail-o" style="box-sizing:inherit">.</span><span class="gmail-n" style="box-sizing:inherit">writestr</span><span class="gmail-o" style="box-sizing:inherit">.</span><span class="gmail-n" style="box-sizing:inherit">assert_called_once_with</span><span class="gmail-p" style="box-sizing:inherit">(</span><span class="gmail-s1" style="box-sizing:inherit;color:rgb(213,45,64)">&#39;in_zip.txt&#39;</span><span class="gmail-p" style="box-sizing:inherit">,</span> <span class="gmail-s1" style="box-sizing:inherit;color:rgb(213,45,64)">&#39;processed foo bar&#39;</span><span class="gmail-p" style="box-sizing:inherit">)</span>
<span class="gmail-n" style="box-sizing:inherit">mock_ZipFile</span><span class="gmail-o" style="box-sizing:inherit">.</span><span class="gmail-n" style="box-sizing:inherit">return_value</span><span class="gmail-o" style="box-sizing:inherit">.</span><span class="gmail-fm" style="box-sizing:inherit">__exit__</span><span class="gmail-o" style="box-sizing:inherit">.</span><span class="gmail-n" style="box-sizing:inherit">assert_called_once_with</span><span class="gmail-p" style="box-sizing:inherit">(</span><span class="gmail-kc" style="box-sizing:inherit;color:rgb(17,106,30)">None</span><span class="gmail-p" style="box-sizing:inherit">,</span> <span class="gmail-kc" style="box-sizing:inherit;color:rgb(17,106,30)">None</span><span class="gmail-p" style="box-sizing:inherit">,</span> <span class="gmail-kc" style="box-sizing:inherit;color:rgb(17,106,30)">None</span><span class="gmail-p" style="box-sizing:inherit">)</span></pre><p style="box-sizing:inherit;margin:15px 0px 0px;padding:0px;color:rgb(70,70,70);font-family:&quot;Source Sans Pro&quot;,Helvetica,Arial,sans-serif;font-size:16px;background-color:rgb(253,253,253)"><span style="color:rgb(34,34,34);font-family:Arial,Helvetica,sans-serif;font-size:small;background-color:rgb(255,255,255)">The generated asserts are the actual recorded calls to the mock, made inside </span><span style="background-color:rgb(249,249,249);color:rgb(108,108,108);font-family:&quot;Source Code Pro&quot;,monospace;font-size:0.85rem">process_and_zip</span><span style="background-color:rgb(255,255,255);color:rgb(34,34,34);font-family:Arial,Helvetica,sans-serif;font-size:small">. They cover the creation of the zip file and context, and the call to create a file inside the zip and fill it with data.</span></p><p style="box-sizing:inherit;margin:15px 0px 0px;padding:0px;color:rgb(70,70,70);font-family:&quot;Source Sans Pro&quot;,Helvetica,Arial,sans-serif;font-size:16px;background-color:rgb(253,253,253)"><span style="background-color:rgb(255,255,255);color:rgb(34,34,34);font-family:Arial,Helvetica,sans-serif;font-size:small">Now you can place all or part of the assert calls into your function and you&#39;re done!</span></p><pre style="box-sizing:inherit;font-family:&quot;Source Code Pro&quot;,monospace;font-size:0.85rem;margin-top:30px;margin-bottom:0px;padding:15px;background-color:rgb(249,249,249);border:1px solid rgb(211,211,211);color:rgb(108,108,108);overflow-x:auto"><span class="gmail-kn" style="box-sizing:inherit;color:rgb(0,45,71)">from</span> <span class="gmail-nn" style="box-sizing:inherit;color:rgb(187,0,102)">tests.sample.code.tested_module</span> <span class="gmail-kn" style="box-sizing:inherit;color:rgb(0,45,71)">import</span> <span class="gmail-n" style="box-sizing:inherit">process_and_zip</span>

<span class="gmail-k" style="box-sizing:inherit;color:rgb(0,45,71)">def</span> <span class="gmail-nf" style="box-sizing:inherit;color:rgb(0,109,173)">test_process_and_zip</span><span class="gmail-p" style="box-sizing:inherit">(</span><span class="gmail-n" style="box-sizing:inherit">mocker</span><span class="gmail-p" style="box-sizing:inherit">):</span>
    <span class="gmail-c1" style="box-sizing:inherit;color:rgb(115,115,115)"># arrange:  </span>
    <span class="gmail-c1" style="box-sizing:inherit;color:rgb(115,115,115)"># mocked dependencies</span>
    <span class="gmail-n" style="box-sizing:inherit">mock_ZipFile</span> <span class="gmail-o" style="box-sizing:inherit">=</span> <span class="gmail-n" style="box-sizing:inherit">mocker</span><span class="gmail-o" style="box-sizing:inherit">.</span><span class="gmail-n" style="box-sizing:inherit">MagicMock</span><span class="gmail-p" style="box-sizing:inherit">(</span><span class="gmail-n" style="box-sizing:inherit">name</span><span class="gmail-o" style="box-sizing:inherit">=</span><span class="gmail-s1" style="box-sizing:inherit;color:rgb(213,45,64)">&#39;ZipFile&#39;</span><span class="gmail-p" style="box-sizing:inherit">)</span>
    <span class="gmail-n" style="box-sizing:inherit">mocker</span><span class="gmail-o" style="box-sizing:inherit">.</span><span class="gmail-n" style="box-sizing:inherit">patch</span><span class="gmail-p" style="box-sizing:inherit">(</span><span class="gmail-s1" style="box-sizing:inherit;color:rgb(213,45,64)">&#39;tests.sample.code.tested_module.zipfile.ZipFile&#39;</span><span class="gmail-p" style="box-sizing:inherit">,</span> <span class="gmail-n" style="box-sizing:inherit">new</span><span class="gmail-o" style="box-sizing:inherit">=</span><span class="gmail-n" style="box-sizing:inherit">mock_ZipFile</span><span class="gmail-p" style="box-sizing:inherit">)</span>
    
    <span class="gmail-c1" style="box-sizing:inherit;color:rgb(115,115,115)"># act: invoking the tested code</span>
    <span class="gmail-n" style="box-sizing:inherit">process_and_zip</span><span class="gmail-p" style="box-sizing:inherit">(</span><span class="gmail-s1" style="box-sizing:inherit;color:rgb(213,45,64)">&#39;/path/to.zip&#39;</span><span class="gmail-p" style="box-sizing:inherit">,</span> <span class="gmail-s1" style="box-sizing:inherit;color:rgb(213,45,64)">&#39;in_zip.txt&#39;</span><span class="gmail-p" style="box-sizing:inherit">,</span> <span class="gmail-s1" style="box-sizing:inherit;color:rgb(213,45,64)">&#39;foo bar&#39;</span><span class="gmail-p" style="box-sizing:inherit">)</span>
    
    <span class="gmail-c1" style="box-sizing:inherit;color:rgb(115,115,115)"># assert:</span>
    <span class="gmail-k" style="box-sizing:inherit;color:rgb(0,45,71)">assert</span> <span class="gmail-mi" style="box-sizing:inherit;color:rgb(17,106,30)">1</span> <span class="gmail-o" style="box-sizing:inherit">==</span> <span class="gmail-n" style="box-sizing:inherit">mock_ZipFile</span><span class="gmail-o" style="box-sizing:inherit">.</span><span class="gmail-n" style="box-sizing:inherit">call_count</span>
    <span class="gmail-n" style="box-sizing:inherit">mock_ZipFile</span><span class="gmail-o" style="box-sizing:inherit">.</span><span class="gmail-n" style="box-sizing:inherit">assert_called_once_with</span><span class="gmail-p" style="box-sizing:inherit">(</span><span class="gmail-s1" style="box-sizing:inherit;color:rgb(213,45,64)">&#39;/path/to.zip&#39;</span><span class="gmail-p" style="box-sizing:inherit">,</span> <span class="gmail-s1" style="box-sizing:inherit;color:rgb(213,45,64)">&#39;w&#39;</span><span class="gmail-p" style="box-sizing:inherit">)</span>
    <span class="gmail-n" style="box-sizing:inherit">mock_ZipFile</span><span class="gmail-o" style="box-sizing:inherit">.</span><span class="gmail-n" style="box-sizing:inherit">return_value</span><span class="gmail-o" style="box-sizing:inherit">.</span><span class="gmail-fm" style="box-sizing:inherit">__enter__</span><span class="gmail-o" style="box-sizing:inherit">.</span><span class="gmail-n" style="box-sizing:inherit">assert_called_once_with</span><span class="gmail-p" style="box-sizing:inherit">()</span>
    <span class="gmail-n" style="box-sizing:inherit">mock_ZipFile</span><span class="gmail-o" style="box-sizing:inherit">.</span><span class="gmail-n" style="box-sizing:inherit">return_value</span><span class="gmail-o" style="box-sizing:inherit">.</span><span class="gmail-fm" style="box-sizing:inherit">__enter__</span><span class="gmail-o" style="box-sizing:inherit">.</span><span class="gmail-n" style="box-sizing:inherit">return_value</span><span class="gmail-o" style="box-sizing:inherit">.</span><span class="gmail-n" style="box-sizing:inherit">writestr</span><span class="gmail-o" style="box-sizing:inherit">.</span><span class="gmail-n" style="box-sizing:inherit">assert_called_once_with</span><span class="gmail-p" style="box-sizing:inherit">(</span><span class="gmail-s1" style="box-sizing:inherit;color:rgb(213,45,64)">&#39;in_zip.txt&#39;</span><span class="gmail-p" style="box-sizing:inherit">,</span> <span class="gmail-s1" style="box-sizing:inherit;color:rgb(213,45,64)">&#39;processed foo bar&#39;</span><span class="gmail-p" style="box-sizing:inherit">)</span>
    <span class="gmail-n" style="box-sizing:inherit">mock_ZipFile</span><span class="gmail-o" style="box-sizing:inherit">.</span><span class="gmail-n" style="box-sizing:inherit">return_value</span><span class="gmail-o" style="box-sizing:inherit">.</span><span class="gmail-fm" style="box-sizing:inherit">__exit__</span><span class="gmail-o" style="box-sizing:inherit">.</span><span class="gmail-n" style="box-sizing:inherit">assert_called_once_with</span><span class="gmail-p" style="box-sizing:inherit">(</span><span class="gmail-kc" style="box-sizing:inherit;color:rgb(17,106,30)">None</span><span class="gmail-p" style="box-sizing:inherit">,</span> <span class="gmail-kc" style="box-sizing:inherit;color:rgb(17,106,30)">None</span><span class="gmail-p" style="box-sizing:inherit">,</span> <span class="gmail-kc" style="box-sizing:inherit;color:rgb(17,106,30)">None</span><span class="gmail-p" style="box-sizing:inherit">)</span></pre><p style="box-sizing:inherit;margin:15px 0px 0px;padding:0px;color:rgb(70,70,70);font-family:&quot;Source Sans Pro&quot;,Helvetica,Arial,sans-serif;font-size:16px;background-color:rgb(253,253,253)"><span style="background-color:rgb(255,255,255);color:rgb(34,34,34);font-family:Arial,Helvetica,sans-serif;font-size:small">Pretty easy and quick, right? Imagine all the time you can save in wiring mocks and writing the asserts.</span></p><p style="box-sizing:inherit;margin:15px 0px 0px;padding:0px;color:rgb(70,70,70);font-family:&quot;Source Sans Pro&quot;,Helvetica,Arial,sans-serif;font-size:16px;background-color:rgb(253,253,253)"><span style="background-color:rgb(255,255,255);color:rgb(34,34,34);font-family:Arial,Helvetica,sans-serif;font-size:small"><br></span></p><div><p style="box-sizing:inherit;margin:15px 0px 0px;padding:0px;color:rgb(70,70,70);font-family:&quot;Source Sans Pro&quot;,Helvetica,Arial,sans-serif;font-size:16px;background-color:rgb(253,253,253)"><span style="color:rgb(34,34,34);font-family:Arial,Helvetica,sans-serif;font-size:small;background-color:rgb(255,255,255)"><b>If you&#39;ve made it till the end of the email, please let me know what you think :)</b></span></p><p style="box-sizing:inherit;margin:15px 0px 0px;padding:0px;color:rgb(70,70,70);font-family:&quot;Source Sans Pro&quot;,Helvetica,Arial,sans-serif;font-size:16px;background-color:rgb(253,253,253)"><span style="color:rgb(34,34,34);font-family:Arial,Helvetica,sans-serif;font-size:small;background-color:rgb(255,255,255)"><b>And if you are using the library and encounter any issue, you can <a href="https://github.com/pksol/pytest-mock-generator/issues/new/choose">open an issue here</a>.</b></span></p><p style="box-sizing:inherit;margin:15px 0px 0px;padding:0px;color:rgb(70,70,70);font-family:&quot;Source Sans Pro&quot;,Helvetica,Arial,sans-serif;font-size:16px;background-color:rgb(253,253,253)"><br>Thanks.<br>Peter</p></div></div><div dir="rtl" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div style="display:inline"></div></div></div></div>