@@ -11843,11 +11843,11 @@ <h1 id="Efficient-use-of-pytest-fixtures">Efficient use of <code>pytest</code> f
1184311843< div  class ="output_subarea output_stream output_stdout output_text "> 
1184411844< pre > Requirement already satisfied: pytest in /Users/jerry/.virtualenvs/learn-python3/lib/python3.5/site-packages (3.5.0)
1184511845Requirement already satisfied: ipytest in /Users/jerry/.virtualenvs/learn-python3/lib/python3.5/site-packages (0.2.2)
11846- Requirement already satisfied: py>=1.5.0 in /Users/jerry/.virtualenvs/learn-python3/lib/python3.5/site-packages (from pytest) (1.5.3)
11847- Requirement already satisfied: attrs>=17.4.0 in /Users/jerry/.virtualenvs/learn-python3/lib/python3.5/site-packages (from pytest) (17.4.0)
1184811846Requirement already satisfied: pluggy<0.7,>=0.5 in /Users/jerry/.virtualenvs/learn-python3/lib/python3.5/site-packages (from pytest) (0.6.0)
1184911847Requirement already satisfied: six>=1.10.0 in /Users/jerry/.virtualenvs/learn-python3/lib/python3.5/site-packages (from pytest) (1.11.0)
1185011848Requirement already satisfied: more-itertools>=4.0.0 in /Users/jerry/.virtualenvs/learn-python3/lib/python3.5/site-packages (from pytest) (4.1.0)
11849+ Requirement already satisfied: attrs>=17.4.0 in /Users/jerry/.virtualenvs/learn-python3/lib/python3.5/site-packages (from pytest) (17.4.0)
11850+ Requirement already satisfied: py>=1.5.0 in /Users/jerry/.virtualenvs/learn-python3/lib/python3.5/site-packages (from pytest) (1.5.3)
1185111851Requirement already satisfied: setuptools in /Users/jerry/.virtualenvs/learn-python3/lib/python3.5/site-packages (from pytest) (39.0.1)
1185211852</ pre > 
1185311853</ div > 
@@ -12215,13 +12215,88 @@ <h3 id="monkeypatch"><a href="https://docs.pytest.org/en/latest/reference.html#_
1221512215</ div > 
1221612216< div  class ="inner_cell "> 
1221712217< div  class ="text_cell_render border-box-sizing rendered_html "> 
12218- < h2  id ="Fixture-scope "> Fixture scope< a  class ="anchor-link " href ="#Fixture-scope "> ¶</ a > </ h2 > 
12218+ < h3  id ="tmpdir "> < a  href ="https://docs.pytest.org/en/latest/tmpdir.html#the-tmpdir-fixture "> < code > tmpdir</ code > </ a > < a  class ="anchor-link " href ="#tmpdir "> ¶</ a > </ h3 > < p > < a  href ="https://docs.pytest.org/en/latest/tmpdir.html#the-tmpdir-fixture "> < code > tmpdir</ code > </ a >  fixture provides functionality for creating temporary files and directories.</ p > 
12219+ 
1221912220</ div > 
1222012221</ div > 
1222112222</ div > 
1222212223< div  class ="cell border-box-sizing code_cell rendered "> 
1222312224< div  class ="input "> 
1222412225< div  class ="prompt input_prompt "> In [12]:</ div > 
12226+ < div  class ="inner_cell "> 
12227+  < div  class ="input_area "> 
12228+ < div  class =" highlight hl-ipython3 "> < pre > < span > </ span > < span  class ="k "> def</ span >  < span  class ="nf "> word_count_of_txt_file</ span > < span  class ="p "> (</ span > < span  class ="n "> file_path</ span > < span  class ="p "> ):</ span > 
12229+  < span  class ="k "> with</ span >  < span  class ="nb "> open</ span > < span  class ="p "> (</ span > < span  class ="n "> file_path</ span > < span  class ="p "> ,</ span >  < span  class ="s1 "> 'r'</ span > < span  class ="p "> )</ span >  < span  class ="k "> as</ span >  < span  class ="n "> f</ span > < span  class ="p "> :</ span > 
12230+  < span  class ="n "> content</ span >  < span  class ="o "> =</ span >  < span  class ="n "> f</ span > < span  class ="o "> .</ span > < span  class ="n "> read</ span > < span  class ="p "> ()</ span > 
12231+  < span  class ="k "> return</ span >  < span  class ="nb "> len</ span > < span  class ="p "> (</ span > < span  class ="n "> content</ span > < span  class ="o "> .</ span > < span  class ="n "> split</ span > < span  class ="p "> ())</ span > 
12232+ </ pre > </ div > 
12233+ 
12234+ </ div > 
12235+ </ div > 
12236+ </ div > 
12237+ 
12238+ </ div > 
12239+ < div  class ="cell border-box-sizing code_cell rendered "> 
12240+ < div  class ="input "> 
12241+ < div  class ="prompt input_prompt "> In [13]:</ div > 
12242+ < div  class ="inner_cell "> 
12243+  < div  class ="input_area "> 
12244+ < div  class =" highlight hl-ipython3 "> < pre > < span > </ span > < span  class ="o "> %%</ span > < span  class ="k "> run_pytest</ span > [clean] '-s'
12245+ 
12246+ def test_word_count(tmpdir):
12247+  test_file = tmpdir.join('test.txt')
12248+  test_file.write('This is example content of seven words')
12249+  res = word_count_of_txt_file(str(test_file)) # str returns the path
12250+  assert res == 7
12251+ </ pre > </ div > 
12252+ 
12253+ </ div > 
12254+ </ div > 
12255+ </ div > 
12256+ 
12257+ < div  class ="output_wrapper "> 
12258+ < div  class ="output "> 
12259+ 
12260+ 
12261+ < div  class ="output_area "> 
12262+ 
12263+ < div  class ="prompt "> </ div > 
12264+ 
12265+ 
12266+ < div  class ="output_subarea output_stream output_stdout output_text "> 
12267+ < pre > =========================================================== test session starts ===========================================================
12268+ platform darwin -- Python 3.5.4, pytest-3.5.0, py-1.5.3, pluggy-0.6.0
12269+ rootdir: /Users/jerry/github/jerry-git/learn-python3, inifile: pytest.ini
12270+ plugins: nbval-0.9.0
12271+ collected 1 item
12272+ 
12273+ pytest_fixtures.py .
12274+ 
12275+ ============================================================ warnings summary =============================================================
12276+ None
12277+  Module already imported so cannot be rewritten: nbval
12278+ 
12279+ -- Docs: http://doc.pytest.org/en/latest/warnings.html
12280+ ================================================== 1 passed, 1 warnings in 0.03 seconds ===================================================
12281+ </ pre > 
12282+ </ div > 
12283+ </ div > 
12284+ 
12285+ </ div > 
12286+ </ div > 
12287+ 
12288+ </ div > 
12289+ < div  class ="cell border-box-sizing text_cell rendered "> < div  class ="prompt input_prompt "> 
12290+ </ div > 
12291+ < div  class ="inner_cell "> 
12292+ < div  class ="text_cell_render border-box-sizing rendered_html "> 
12293+ < h2  id ="Fixture-scope "> Fixture scope< a  class ="anchor-link " href ="#Fixture-scope "> ¶</ a > </ h2 > 
12294+ </ div > 
12295+ </ div > 
12296+ </ div > 
12297+ < div  class ="cell border-box-sizing code_cell rendered "> 
12298+ < div  class ="input "> 
12299+ < div  class ="prompt input_prompt "> In [14]:</ div > 
1222512300< div  class ="inner_cell "> 
1222612301 < div  class ="input_area "> 
1222712302< div  class =" highlight hl-ipython3 "> < pre > < span > </ span > < span  class ="c1 "> # scope is function also by default</ span > 
@@ -12245,7 +12320,7 @@ <h2 id="Fixture-scope">Fixture scope<a class="anchor-link" href="#Fixture-scope"
1224512320</ div > 
1224612321< div  class ="cell border-box-sizing code_cell rendered "> 
1224712322< div  class ="input "> 
12248- < div  class ="prompt input_prompt "> In [13 ]:</ div > 
12323+ < div  class ="prompt input_prompt "> In [15 ]:</ div > 
1224912324< div  class ="inner_cell "> 
1225012325 < div  class ="input_area "> 
1225112326< div  class =" highlight hl-ipython3 "> < pre > < span > </ span > < span  class ="o "> %%</ span > < span  class ="k "> run_pytest</ span > [clean] '-s'
@@ -12311,7 +12386,7 @@ <h2 id="Setup-teardown-behaviour">Setup-teardown behaviour<a class="anchor-link"
1231112386</ div > 
1231212387< div  class ="cell border-box-sizing code_cell rendered "> 
1231312388< div  class ="input "> 
12314- < div  class ="prompt input_prompt "> In [14 ]:</ div > 
12389+ < div  class ="prompt input_prompt "> In [16 ]:</ div > 
1231512390< div  class ="inner_cell "> 
1231612391 < div  class ="input_area "> 
1231712392< div  class =" highlight hl-ipython3 "> < pre > < span > </ span > < span  class ="nd "> @pytest</ span > < span  class ="o "> .</ span > < span  class ="n "> fixture</ span > 
@@ -12328,7 +12403,7 @@ <h2 id="Setup-teardown-behaviour">Setup-teardown behaviour<a class="anchor-link"
1232812403</ div > 
1232912404< div  class ="cell border-box-sizing code_cell rendered "> 
1233012405< div  class ="input "> 
12331- < div  class ="prompt input_prompt "> In [15 ]:</ div > 
12406+ < div  class ="prompt input_prompt "> In [17 ]:</ div > 
1233212407< div  class ="inner_cell "> 
1233312408 < div  class ="input_area "> 
1233412409< div  class =" highlight hl-ipython3 "> < pre > < span > </ span > < span  class ="o "> %%</ span > < span  class ="k "> run_pytest</ span > [clean] '-s'
@@ -12390,7 +12465,7 @@ <h2 id="Using-fixtures-automatically">Using fixtures automatically<a class="anch
1239012465</ div > 
1239112466< div  class ="cell border-box-sizing code_cell rendered "> 
1239212467< div  class ="input "> 
12393- < div  class ="prompt input_prompt "> In [16 ]:</ div > 
12468+ < div  class ="prompt input_prompt "> In [18 ]:</ div > 
1239412469< div  class ="inner_cell "> 
1239512470 < div  class ="input_area "> 
1239612471< div  class =" highlight hl-ipython3 "> < pre > < span > </ span > < span  class ="nd "> @pytest</ span > < span  class ="o "> .</ span > < span  class ="n "> fixture</ span > < span  class ="p "> (</ span > < span  class ="n "> autouse</ span > < span  class ="o "> =</ span > < span  class ="kc "> True</ span > < span  class ="p "> )</ span > 
@@ -12405,7 +12480,7 @@ <h2 id="Using-fixtures-automatically">Using fixtures automatically<a class="anch
1240512480</ div > 
1240612481< div  class ="cell border-box-sizing code_cell rendered "> 
1240712482< div  class ="input "> 
12408- < div  class ="prompt input_prompt "> In [17 ]:</ div > 
12483+ < div  class ="prompt input_prompt "> In [19 ]:</ div > 
1240912484< div  class ="inner_cell "> 
1241012485 < div  class ="input_area "> 
1241112486< div  class =" highlight hl-ipython3 "> < pre > < span > </ span > < span  class ="o "> %%</ span > < span  class ="k "> run_pytest</ span > [clean] '-s'
@@ -12448,7 +12523,7 @@ <h2 id="Using-fixtures-automatically">Using fixtures automatically<a class="anch
1244812523 Module already imported so cannot be rewritten: nbval
1244912524
1245012525-- Docs: http://doc.pytest.org/en/latest/warnings.html
12451- ================================================== 2 passed, 1 warnings in 0.02  seconds ===================================================
12526+ ================================================== 2 passed, 1 warnings in 0.03  seconds ===================================================
1245212527</ pre > 
1245312528</ div > 
1245412529</ div > 
0 commit comments