<div dir="ltr">Hi Bruno,<div><br></div><div>yeah this will solve the case of calling the fixture(which doesnt do function level configuration but rather it takes the backup of certain files in the system before the TC executes and restores them to original state after the TC is complete) before each TC execution . </div><div><br></div><div>But i need the same to be called before the common_configuration part as well like below:</div><div><br></div><div><pre class="gmail-m_-140558713444331243gmail-lang-py gmail-m_-140558713444331243gmail-prettyprint gmail-m_-140558713444331243gmail-prettyprinted" style="white-space:pre-wrap;margin-top:0px;margin-bottom:1em;padding:5px;border:0px;font-size:13px;width:auto;max-height:600px;overflow:auto;font-family:consolas,menlo,monaco,&quot;lucida console&quot;,&quot;liberation mono&quot;,&quot;dejavu sans mono&quot;,&quot;bitstream vera sans mono&quot;,&quot;courier new&quot;,monospace,sans-serif;background-color:rgb(239,240,241);color:rgb(57,51,24);word-wrap:normal"><code style="margin:0px;padding:0px;border:0px;font-family:consolas,menlo,monaco,&quot;lucida console&quot;,&quot;liberation mono&quot;,&quot;dejavu sans mono&quot;,&quot;bitstream vera sans mono&quot;,&quot;courier new&quot;,monospace,sans-serif;white-space:inherit"><span class="gmail-m_-140558713444331243gmail-pln" style="margin:0px;padding:0px;border:0px;color:rgb(48,51,54)">configurationBackup
common_Configuration  
configurationBackup
TC_1
configurationBackup</span><span class="gmail-m_-140558713444331243gmail-pun" style="margin:0px;padding:0px;border:0px;color:rgb(48,51,54)">.</span><span class="gmail-m_-140558713444331243gmail-pln" style="margin:0px;padding:0px;border:0px;color:rgb(48,51,54)">finalizer
configurationBackup
TC_2
configurationBackup</span><span class="gmail-m_-140558713444331243gmail-pun" style="margin:0px;padding:0px;border:0px;color:rgb(48,51,54)">.</span><span class="gmail-m_-140558713444331243gmail-pln" style="margin:0px;padding:0px;border:0px;color:rgb(48,51,54)">finalizer
configurationBackup
TC_3
configurationBackup</span><span class="gmail-m_-140558713444331243gmail-pun" style="margin:0px;padding:0px;border:0px;color:rgb(48,51,54)">.</span><span class="gmail-m_-140558713444331243gmail-pln" style="margin:0px;padding:0px;border:0px;color:rgb(48,51,54)">finalizer
configurationBackup</span><span class="gmail-m_-140558713444331243gmail-pun" style="margin:0px;padding:0px;border:0px;color:rgb(48,51,54)">.</span><span class="gmail-m_-140558713444331243gmail-pln" style="margin:0px;padding:0px;border:0px;color:rgb(48,51,54)">finalizer</span><span class="gmail-m_-140558713444331243gmail-pun" style="margin:0px;padding:0px;border:0px;color:rgb(48,51,54)">(</span><span class="gmail-m_-140558713444331243gmail-pln" style="margin:0px;padding:0px;border:0px;color:rgb(48,51,54)"><wbr>which </span><span class="gmail-m_-140558713444331243gmail-kwd" style="margin:0px;padding:0px;border:0px;color:rgb(16,16,148)">is</span><span class="gmail-m_-140558713444331243gmail-pln" style="margin:0px;padding:0px;border:0px;color:rgb(48,51,54)"> done before common_Configuration</span><span class="gmail-m_-140558713444331243gmail-pun" style="margin:0px;padding:0px;border:0px;color:rgb(48,51,54)">)</span></code></pre><pre class="gmail-m_-140558713444331243gmail-lang-py gmail-m_-140558713444331243gmail-prettyprint gmail-m_-140558713444331243gmail-prettyprinted" style="white-space:pre-wrap;margin-top:0px;margin-bottom:1em;padding:5px;border:0px;font-size:13px;width:auto;max-height:600px;overflow:auto;font-family:consolas,menlo,monaco,&quot;lucida console&quot;,&quot;liberation mono&quot;,&quot;dejavu sans mono&quot;,&quot;bitstream vera sans mono&quot;,&quot;courier new&quot;,monospace,sans-serif;background-color:rgb(239,240,241);color:rgb(57,51,24);word-wrap:normal"><br></pre></div><div class="gmail_extra">My hurdle is to handle both these cases thorugh single fixture itself.. </div><div class="gmail_extra"><br><div class="gmail_quote">As for the fixture for a hook i think i misunderstud modularity funda, where a fixture can use another fixture and tried to apply the same to a hook.. my bad!!</div><div class="gmail_quote"><br></div><div class="gmail_quote">Regards</div><div class="gmail_quote">Arun kaliraja.B</div><div class="gmail_quote"><br></div><div class="gmail_quote"><br></div><div class="gmail_quote">On 8 February 2017 at 20:12, Bruno Oliveira <span dir="ltr">&lt;<a href="mailto:nicoddemus@gmail.com" target="_blank">nicoddemus@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Hi Arun,<br><br><div class="gmail_quote"><span class="gmail-"><div dir="ltr">On Wed, Feb 8, 2017 at 12:22 PM arun kali raja &lt;<a href="mailto:arunsep886@gmail.com" target="_blank">arunsep886@gmail.com</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr" class="gmail-m_3219267671604445846gmail_msg"><div class="gmail-m_3219267671604445846gmail_msg"><br></div><table style="margin:0px;padding:0px;border:0px;font-size:13px;border-collapse:collapse;color:rgb(36,39,41);font-family:arial,&quot;helvetica neue&quot;,helvetica,sans-serif" class="gmail-m_3219267671604445846gmail_msg"><tbody style="margin:0px;padding:0px;border:0px" class="gmail-m_3219267671604445846gmail_msg"><tr style="margin:0px;padding:0px;border:0px" class="gmail-m_3219267671604445846gmail_msg"><td class="gmail-m_3219267671604445846m_158534181183200886gmail-votecell gmail-m_3219267671604445846gmail_msg" style="padding:0px 15px 0px 0px;border:0px;vertical-align:top"><br></td><td class="gmail-m_3219267671604445846m_158534181183200886gmail-postcell gmail-m_3219267671604445846gmail_msg" style="padding:0px;border:0px;vertical-align:top"><div style="margin:0px;padding:0px;border:0px" class="gmail-m_3219267671604445846gmail_msg"><div class="gmail-m_3219267671604445846m_158534181183200886gmail-post-text gmail-m_3219267671604445846gmail_msg" style="margin:0px 0px 5px;padding:0px;border:0px;font-size:15px;width:660px;word-wrap:break-word;line-height:1.3"><p style="margin:0px 0px 1em;padding:0px;border:0px;clear:both" class="gmail-m_3219267671604445846gmail_msg">I tried couple of things.</p><ol style="margin:0px 0px 1em 30px;padding:0px;border:0px" class="gmail-m_3219267671604445846gmail_msg"><li style="margin:0px 0px 0.5em;padding:0px;border:0px;word-wrap:break-word" class="gmail-m_3219267671604445846gmail_msg"><p style="margin:0px;padding:0px;border:0px;clear:both" class="gmail-m_3219267671604445846gmail_msg">declaring configurationBackup in conftest.py as a function level fixture)as an autouse fixture). But the problem here is its executed before common_configuration fixture for TC_1</p></li></ol></div></div></td></tr></tbody></table></div></blockquote><div><br></div></span><div>One way to enforce this order is to make the function-level fixture depend on the module-level fixture (common_configuration?):</div><div><br></div><div>    @pytest.fixture(scope=&#39;module&#39;<wbr>)</div><div>   <span class="gmail-m_3219267671604445846inbox-inbox-Apple-converted-space"> </span>def common_configuration():  <br></div><div>       <span class="gmail-m_3219267671604445846inbox-inbox-Apple-converted-space"> </span>...</div><div><br></div><div>   <span class="gmail-m_3219267671604445846inbox-inbox-Apple-converted-space"> </span>@pytest.fixture(autouse=<wbr>True)</div><div>   <span class="gmail-m_3219267671604445846inbox-inbox-Apple-converted-space"> </span>def function_level_configuration(<wbr>common_configuration):</div><div>   <span class="gmail-m_3219267671604445846inbox-inbox-Apple-converted-space"> </span>    ...</div><span class="gmail-"><div><br></div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr" class="gmail-m_3219267671604445846gmail_msg"><table style="margin:0px;padding:0px;border:0px;font-size:13px;border-collapse:collapse;color:rgb(36,39,41);font-family:arial,&quot;helvetica neue&quot;,helvetica,sans-serif" class="gmail-m_3219267671604445846gmail_msg"><tbody style="margin:0px;padding:0px;border:0px" class="gmail-m_3219267671604445846gmail_msg"><tr style="margin:0px;padding:0px;border:0px" class="gmail-m_3219267671604445846gmail_msg"><td class="gmail-m_3219267671604445846m_158534181183200886gmail-postcell gmail-m_3219267671604445846gmail_msg" style="padding:0px;border:0px;vertical-align:top"><div style="margin:0px;padding:0px;border:0px" class="gmail-m_3219267671604445846gmail_msg"><div class="gmail-m_3219267671604445846m_158534181183200886gmail-post-text gmail-m_3219267671604445846gmail_msg" style="margin:0px 0px 5px;padding:0px;border:0px;font-size:15px;width:660px;word-wrap:break-word;line-height:1.3"><ol style="margin:0px 0px 1em 30px;padding:0px;border:0px" class="gmail-m_3219267671604445846gmail_msg"><li style="margin:0px;padding:0px;border:0px;word-wrap:break-word" class="gmail-m_3219267671604445846gmail_msg"><p style="margin:0px 0px 1em;padding:0px;border:0px;clear:both" class="gmail-m_3219267671604445846gmail_msg">tried using standar pytest hooks. There is a pytest hook pytest_runtest_call.. i was thinking if i can decorate this hook function with my configurationBackup fixture like this:</p></li></ol>      @pytest.mark.usefixtures(&quot;<wbr>configurationBackup&quot;)  </div><div class="gmail-m_3219267671604445846m_158534181183200886gmail-post-text gmail-m_3219267671604445846gmail_msg" style="margin:0px 0px 5px;padding:0px;border:0px;font-size:15px;width:660px;word-wrap:break-word;line-height:1.3">      def pytest_runtest_call(item):</div><div class="gmail-m_3219267671604445846m_158534181183200886gmail-post-text gmail-m_3219267671604445846gmail_msg" style="margin:0px 0px 5px;padding:0px;border:0px;font-size:15px;width:660px;word-wrap:break-word;line-height:1.3">  <br class="gmail-m_3219267671604445846gmail_msg"><p style="margin:0px 0px 1em;padding:0px;border:0px;clear:both" class="gmail-m_3219267671604445846gmail_msg">But this also doesnt seem to work... my configurationBackup fixture is not called at all..</p></div></div></td></tr></tbody></table></div></blockquote><div><br></div></span><div>This is unfortunately a common source of confusion, but &quot;@pytest.mark.usefixtures&quot; only works for test items, not fixtures and hooks. But I believe there&#39;s a note about this in the docs.</div><div><br></div><div>My previous suggestion should work, this kind of dependency between fixtures is common and well supported. If it doesn&#39;t, it means I probably didn&#39;t understand your problem completely, in which case I would ask to post a more detailed pseudo-code which better conveys the problem.</div><div><br></div><div><div>Hope this helps,</div><div>Bruno.</div></div></div></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature">அன்புடன்,<br>
பா. அருண் காளி ராசா </div>
</div></div>