<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'm sharing this with you in the hope that it can save you some time as well. I'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:"Source Sans Pro",Helvetica,Arial,sans-serif"> </span><code style="box-sizing:inherit;font-family:"Source Code Pro",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:"Source Sans Pro",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:"Source Code Pro",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)">"processed "</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)">'w'</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:"Source Sans Pro",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's assume that you don'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:"Source Sans Pro",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:"Source Code Pro",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)">'/path/to.zip'</span><span class="gmail-p" style="box-sizing:inherit">,</span> <span class="gmail-s1" style="box-sizing:inherit;color:rgb(213,45,64)">'in_zip.txt'</span><span class="gmail-p" style="box-sizing:inherit">,</span> <span class="gmail-s1" style="box-sizing:inherit;color:rgb(213,45,64)">'foo bar'</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:"Source Sans Pro",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:"Source Sans Pro",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:"Source Code Pro",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)">'ZipFile'</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)">'tests.sample.code.tested_module.zipfile.ZipFile'</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 'act'</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)">'mock_ZipFile'</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:"Source Sans Pro",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:"Source Code Pro",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)">'ZipFile'</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)">'tests.sample.code.tested_module.zipfile.ZipFile'</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)">'/path/to.zip'</span><span class="gmail-p" style="box-sizing:inherit">,</span> <span class="gmail-s1" style="box-sizing:inherit;color:rgb(213,45,64)">'in_zip.txt'</span><span class="gmail-p" style="box-sizing:inherit">,</span> <span class="gmail-s1" style="box-sizing:inherit;color:rgb(213,45,64)">'foo bar'</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 'act'</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)">'mock_ZipFile'</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:"Source Sans Pro",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're left with filling the assets. In order to generate the asserts code, run the test function once more and you'll get this input:</span></p><pre style="box-sizing:inherit;font-family:"Source Code Pro",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)">'/path/to.zip'</span><span class="gmail-p" style="box-sizing:inherit">,</span> <span class="gmail-s1" style="box-sizing:inherit;color:rgb(213,45,64)">'w'</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)">'in_zip.txt'</span><span class="gmail-p" style="box-sizing:inherit">,</span> <span class="gmail-s1" style="box-sizing:inherit;color:rgb(213,45,64)">'processed foo bar'</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:"Source Sans Pro",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:"Source Code Pro",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:"Source Sans Pro",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're done!</span></p><pre style="box-sizing:inherit;font-family:"Source Code Pro",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)">'ZipFile'</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)">'tests.sample.code.tested_module.zipfile.ZipFile'</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)">'/path/to.zip'</span><span class="gmail-p" style="box-sizing:inherit">,</span> <span class="gmail-s1" style="box-sizing:inherit;color:rgb(213,45,64)">'in_zip.txt'</span><span class="gmail-p" style="box-sizing:inherit">,</span> <span class="gmail-s1" style="box-sizing:inherit;color:rgb(213,45,64)">'foo bar'</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)">'/path/to.zip'</span><span class="gmail-p" style="box-sizing:inherit">,</span> <span class="gmail-s1" style="box-sizing:inherit;color:rgb(213,45,64)">'w'</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)">'in_zip.txt'</span><span class="gmail-p" style="box-sizing:inherit">,</span> <span class="gmail-s1" style="box-sizing:inherit;color:rgb(213,45,64)">'processed foo bar'</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:"Source Sans Pro",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:"Source Sans Pro",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:"Source Sans Pro",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'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:"Source Sans Pro",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:"Source Sans Pro",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>