def test_compress_7zip(self): fLOG( __file__, self._testMethodName, OutputPrint=__name__ == "__main__") fold = get_temp_folder(__file__, "temp_compress_7zip") url = "https://docs.python.org/3.5/library/ftplib.html" f = download(url, fold) if is_travis_or_appveyor() != "travis": out7 = os.path.join(fold, "try.7z") r = zip7_files(out7, [f], fLOG=fLOG, temp_folder=fold) fLOG(r) if not os.path.exists(out7): raise FileNotFoundError(out7) else: warnings.warn( "unzipping files with 7z on a is not tested on appveyor") return if sys.version_info[0] == 2: typbytes = bytearray else: typbytes = bytes if is_travis_or_appveyor() == "appveyor": warnings.warn( "py7zlib.py requires to be updated with the github version") return from py7zlib import COMPRESSION_METHOD_COPY fLOG("***", COMPRESSION_METHOD_COPY) res = un7zip_files(out7) assert isinstance(res, list) self.assertEqual(len(res), 1) fLOG(res[0][0]) if not isinstance(res[0][1], (typbytes, str)): raise TypeError(type(res[0][1])) assert res[0][0].endswith("ftplib.html") fold = get_temp_folder(__file__, "temp_compress_7zip2") res = un7zip_files(out7, where_to=fold, fLOG=fLOG) if sys.version_info[0] == 2: return self.assertEqual(len(res), 1) s = res[0].replace("\\", "/") if not s.endswith("_unittests/ut_filehelper/temp_compress_7zip2/ftplib.html"): raise Exception(res[0])
def test_download_zip(self): fLOG( __file__, self._testMethodName, OutputPrint=__name__ == "__main__") fold = get_temp_folder(__file__, "temp_download") url = "https://docs.python.org/3.5/library/ftplib.html" f = download(url, fold) fLOG(f) assert os.path.exists(f) if not f.endswith("ftplib.html"): raise Exception(f) out = os.path.join(fold, "try.html.gz") r = gzip_files(out, [f], fLOG=fLOG) fLOG(r) assert os.path.exists(out) out = os.path.join(fold, "try.zip") r = zip_files(out, [f], fLOG=fLOG) fLOG(r) assert os.path.exists(out) if is_travis_or_appveyor() is None: out7 = os.path.join(fold, "try.7z") r = zip7_files(out7, [f, out], fLOG=fLOG, temp_folder=fold) fLOG(r) if not os.path.exists(out7): raise FileNotFoundError(out7) else: fLOG("skip 7z")
def test_transfer_ftp_true(self): fLOG( __file__, self._testMethodName, OutputPrint=__name__ == "__main__") if sys.version_info[0] < 3: warnings.warn( "No testing transfer FTP on Pyghon 2.7 (issue with str and bytes)") return import keyring machine = os.environ.get( "COMPUTERNAME", os.environ.get("HOSTNAME", "CI")) try: user = keyring.get_password("web", machine + "user") pwd = keyring.get_password("web", machine + "pwd") except RuntimeError: user = None pwd = None if user is None: if not is_travis_or_appveyor(): raise Exception("user password is empty, machine='{0}', username='******'".format( machine, os.environ.get("USERNAME", None))) else: return web = TransferFTP("ftp.xavierdupre.fr", user, pwd, fLOG=fLOG) r = web.ls(".") fLOG(r) assert isinstance(r, list)
def test_notebook_runner(self): fLOG( __file__, self._testMethodName, OutputPrint=__name__ == "__main__") temp = get_temp_folder(__file__, "temp_notebook") nbfile = os.path.join(temp, "..", "data", "simple_example.ipynb") assert os.path.exists(nbfile) addpath = os.path.normpath(os.path.join(temp, "..", "..", "..", "src")) assert os.path.exists(addpath) outfile = os.path.join(temp, "out_notebook.ipynb") assert not os.path.exists(outfile) if sys.version_info[0] == 2: return kernel_name = None if is_travis_or_appveyor() is not None else install_python_kernel_for_unittest( "pyquickhelper") stat, out = run_notebook(nbfile, working_dir=temp, outfilename=outfile, additional_path=[addpath], kernel_name=kernel_name) fLOG(stat) fLOG(out) assert os.path.exists(outfile) assert "No module named 'pyquickhelper'" not in out assert "datetime.datetime(2015, 3, 2" in out
def test_notebook_raw(self): fLOG( __file__, self._testMethodName, OutputPrint=__name__ == "__main__") if sys.version_info[0] == 2: # does not work on Python 2 return path = os.path.abspath(os.path.split(__file__)[0]) fold = os.path.normpath(os.path.join(path, "data")) nbs = [os.path.join(fold, _) for _ in os.listdir(fold) if "TD_2A" in _] assert len(nbs) > 0 formats = ["latex", "present", "ipynb", "html", "python", "rst", "pdf", "docx"][:1] temp = get_temp_folder(__file__, "temp_nb_bug_raw") if is_travis_or_appveyor() is not None: warnings.warn( "travis, appveyor, unable to test TestNoteBooksBug.test_notebook") return res = process_notebooks(nbs, temp, temp, formats=formats) fLOG("*****", len(res)) for _ in res: fLOG(_) assert os.path.exists(_[0]) check = os.path.join(temp, "TD_2A_Eco_Web_Scraping.tex") with open(check, "r", encoding="utf8") as f: content = f.read() if "\\begin{verbatim" not in content: raise Exception(content)
def test_notebook(self): fLOG(__file__, self._testMethodName, OutputPrint=__name__ == "__main__") if sys.version_info[0] == 2: # does not work on Python 2 return path = os.path.abspath(os.path.split(__file__)[0]) fold = os.path.normpath(os.path.join(path, "notebooks2")) nbs = [os.path.join(fold, _) for _ in os.listdir(fold) if ".ipynb" in _] formats = ["present", "ipynb", "html", "python", "rst", "pdf", "docx"] temp = get_temp_folder(__file__, "temp_nb_bug2") if is_travis_or_appveyor() is not None: warnings.warn("travis, appveyor, unable to test TestNoteBooksBug.test_notebook") return nbs2 = [] for r in nbs: r2 = os.path.join(temp, os.path.split(r)[-1]) shutil.copy(r, r2) nbs2.append(r2) r = upgrade_notebook(r2) fLOG("change", r) res = process_notebooks(nbs2, temp, temp, formats=formats, exc=False) fLOG("*****", len(res)) for _ in res: fLOG(_) assert os.path.exists(_[0]) check = os.path.join(temp, "miparcours.tex") with open(check, "r", encoding="utf8") as f: content = f.read() assert "\\end{document}" in content
def test_ie(self): fLOG( __file__, self._testMethodName, OutputPrint=__name__ == "__main__") if is_travis_or_appveyor() == "travis" or "anaconda" in sys.executable.lower() or sys.version_info[0] == 2 \ or "yquickhelper_condavir" in sys.executable: if sys.version_info[0] == 2: warnings.warn( "skipping on travis and with anaconda or python 2.7: " + sys.executable) else: warnings.warn( "skipping on travis and with anaconda: " + sys.executable) return if not ie_layout_html(): fLOG("updating layout.html") r = fix_ie_layout_html() assert r try: assert ie_layout_html() except AttributeError: return
def test_notebook_extension(self): fLOG( __file__, self._testMethodName, OutputPrint=__name__ == "__main__") d = get_jupyter_datadir() fLOG("get_jupyter_datadir", d) fLOG("extension") try: ext = get_installed_notebook_extension() except FileNotFoundError: if is_travis_or_appveyor() == "travis": # does not work on travis due to permission error warnings.warn( "travis, unable to test TestNotebookExtensions.test_notebook_extension") return ext = [] if len(ext) == 0: fLOG("installation") out = install_notebook_extension() fLOG(out) fLOG("extension") ext = get_installed_notebook_extension() assert len(ext) > 0 for e in ext: fLOG(e) if "IPython-notebook-extensions-master/usability/search-replace/main" not in ext and \ 'IPython-notebook-extensions-master/nbextensions/usability/search-replace/main' not in ext and \ 'jupyter_contrib_nbextensions-master/src/jupyter_contrib_nbextensions/nbextensions/search-replace/main' not in ext: raise Exception(ext)
def test_notebook_latex(self): fLOG( __file__, self._testMethodName, OutputPrint=__name__ == "__main__") if sys.version_info[0] == 2: # does not work on Python 2 return path = os.path.abspath(os.path.split(__file__)[0]) fold = os.path.normpath(os.path.join(path, "notebooks_latex")) nbs = [os.path.join(fold, _) for _ in os.listdir(fold) if ".ipynb" in _] formats = ["ipynb", "html", "python", "rst", "pdf", "docx"] temp = os.path.join(path, "temp_nb_bug_latex") if not os.path.exists(temp): os.mkdir(temp) for file in os.listdir(temp): os.remove(os.path.join(temp, file)) if is_travis_or_appveyor() is not None: warnings.warn( "travis, appveyor, unable to test TestNoteBooksBugLatex.test_notebook_latex") return res = process_notebooks(nbs, temp, temp, formats=formats) fLOG("*****", len(res)) for _ in res: fLOG(_) assert os.path.exists(_[0])
def test_rst2html_png_bug(self): fLOG( __file__, self._testMethodName, OutputPrint=__name__ == "__main__") if is_travis_or_appveyor(): # it requires latex return if sys.version_info[:2] <= (2, 7): # i don't want to fix it for Python 2.7 return temp = get_temp_folder(__file__, "temp_rst2html_png_latex") rst = os.path.join(os.path.abspath( os.path.dirname(__file__)), "data", "puzzle_girafe.rst") with open(rst, "r", encoding="utf-8") as f: content = f.read() text = rst2html(content, fLOG=fLOG, outdir=temp, imgmath_latex_preamble=""" \\newcommand{\\acc}[1]{\\left\\{#1\\right\\}} \\newcommand{\\cro}[1]{\\left[#1\\right]} \\newcommand{\\pa}[1]{\\left(#1\\right)} \\newcommand{\\girafedec}[3]{ \\begin{array}{ccccc} #1 &=& #2 &+& #3 \\\\ a' &=& a &-& o \\end{array}} \\newcommand{\\vecteur}[2]{\\pa{#1,\\dots,#2}} \\newcommand{\\R}[0]{\\mathbb{R}} \\newcommand{\\N}[0]{\\mathbb{N}} """) # fLOG(text) ji = os.path.join(temp, "out.html") with open(ji, "w", encoding="utf-8") as f: f.write(text)
def test_notebook_runner_empty(self): fLOG( __file__, self._testMethodName, OutputPrint=__name__ == "__main__") if sys.version_info[0] == 2: # written in Python 3 return temp = get_temp_folder(__file__, "temp_notebook_empty") nbfile = os.path.join( temp, "..", "data", "td2a_cenonce_session_4B.ipynb") assert os.path.exists(nbfile) addpath = os.path.normpath(os.path.join(temp, "..", "..", "..", "src")) assert os.path.exists(addpath) kernel_name = None if is_travis_or_appveyor() is not None else install_python_kernel_for_unittest( "pyquickhelper") outfile = os.path.join(temp, "out_notebook.ipynb") assert not os.path.exists(outfile) out = run_notebook(nbfile, working_dir=temp, outfilename=outfile, additional_path=[addpath], fLOG=fLOG, kernel_name=kernel_name) fLOG(out) assert os.path.exists(outfile) assert "No module named 'pyquickhelper'" not in out
def test_run_base_script(self): fLOG( __file__, self._testMethodName, OutputPrint=__name__ == "__main__") if is_travis_or_appveyor() == "travis": # no end on travis return this = os.path.abspath(__file__) this = os.path.join(os.path.dirname( this), "example_venv_base_simple.py") if is_virtual_environment(): fLOG("virtual_environment") out = run_base_script(this, file=True, fLOG=fLOG) else: fLOG("no virtual_environment") out = run_base_script(this, file=True, fLOG=fLOG) if sys.version_info[0] == 2: if "(u'example_venv_base_simple.py', u'execution')" not in out: raise Exception(out) else: if "example_venv_base_simple.py execution" not in out: raise Exception(out)
def test_ping(self): fLOG( __file__, self._testMethodName, OutputPrint=__name__ == "__main__") if is_travis_or_appveyor() == "travis": return machine = self.get_machine() out = ping_machine(machine, fLOG=fLOG) fLOG(out) assert len(out) > 0
def test_exe(self): fLOG( __file__, self._testMethodName, OutputPrint=__name__ == "__main__") command = "dir" if sys.platform.startswith("win32") else "ls" yml = """ language: python python: - {{Python35}} before_script: - %s after_script: - %s {{PLATFORM}} script: - %s """ % (command, command, command) temp = get_temp_folder(__file__, "temp_yaml_exe") context = dict(Python34="fake", Python35=os.path.dirname(sys.executable), Python27=None, Anaconda3=None, Anaconda2=None, WinPython35=None, project_name="pyquickhelper", root_path="ROOT", PLATFORM="win") obj, name = load_yaml(yml, context=context) assert name is not None res = list(enumerate_convert_yaml_into_instructions( obj, variables=context)) for r, var in res: conv = convert_sequence_into_batch_file(r, variables=var) assert ("%s " % command) in conv fLOG("####", conv) ext = "bat" if command == "dir" else "sh" name = os.path.join(temp, "yml.%s" % ext) with open(name, "w") as f: f.write(conv) if is_travis_or_appveyor() == "travis": warnings.warn("Test disabled on travis") else: out, err = run_cmd(name, wait=True) fLOG("###") fLOG(out) if "BEFORE_SCRIPT" not in out: raise Exception( "{0}\nERR\n{2}\n#########\n{1}".format(out, conv, err)) if "AFTER_SCRIPT" not in out: raise Exception( "{0}\nERR\n{2}\n#########\n{1}".format(out, conv, err)) if "SCRIPT" not in out: raise Exception( "{0}\nERR\n{2}\n#########\n{1}".format(out, conv, err))
def test_latex2rst(self): fLOG( __file__, self._testMethodName, OutputPrint=__name__ == "__main__") if is_travis_or_appveyor(): warnings.warn("unable to test it due to pandoc") return temp = get_temp_folder(__file__, "temp_latex2rst") data = os.path.join(temp, "..", "data", "chap9_thread.tex") output = os.path.join(temp, "chap9_thread.rst") temp_file = os.path.join(temp, "chap_utf8.tex") out, err = latex2rst(data, output, encoding="latin-1", fLOG=fLOG, temp_file=temp_file) assert os.path.exists(output)
def test_notebook_number(self): fLOG( __file__, self._testMethodName, OutputPrint=__name__ == "__main__") temp = get_temp_folder(__file__, "temp_notebook_number") nbfile = os.path.join(temp, "..", "data", "simple_example.ipynb") assert os.path.exists(nbfile) outfile = os.path.join(temp, "out_nb.ipynb") res = remove_execution_number(nbfile, outfile) assert res assert os.path.exists(outfile) assert '"execution_count": null' in res if is_travis_or_appveyor() != "travis": change_file_status(outfile) change_file_status(temp, strict=True)
def test_ipython_cython_extension(self): fLOG( __file__, self._testMethodName, OutputPrint=__name__ == "__main__") if sys.version_info[0] == 2 or "condavir" in sys.executable: return if is_travis_or_appveyor() == "appveyor": # we skip that as it would imply # we modify the pyhon distribution return if sys.version_info[:2] <= (3, 4): ipython_cython_extension()
def test_rst2html_png(self): fLOG(__file__, self._testMethodName, OutputPrint=__name__ == "__main__") if is_travis_or_appveyor(): # it requires latex return if sys.version_info[0] == 2: return temp = get_temp_folder(__file__, "temp_rst2html_png") rst = os.path.join(os.path.abspath(os.path.dirname(__file__)), "data", "hermionne.rst") with open(rst, "r", encoding="utf-8") as f: content = f.read() text = rst2html(content, fLOG=fLOG, outdir=temp) # fLOG(text) ji = os.path.join(temp, "out.html") with open(ji, "w", encoding="utf-8") as f: f.write(text)
def test_pip_show(self): fLOG( __file__, self._testMethodName, OutputPrint=__name__ == "__main__") info = get_package_info("pandas") # if "license" not in info: # raise Exception(str(info)) if "version" not in info: raise Exception(str(info)) if is_travis_or_appveyor() != "travis" and sys.version_info[0] >= 3: info = get_package_info("sphinx") # if "license" not in info: # raise Exception(str(info)) if "version" not in info: raise Exception(str(info))
def test_uncompress_7zip(self): fLOG( __file__, self._testMethodName, OutputPrint=__name__ == "__main__") import pylzma # use github version, not pypi version (2016-11-11) # this version does not include a fix to read file produced by the # latest version of 7z assert pylzma if is_travis_or_appveyor() == "appveyor": warnings.warn( "unzipping files with 7z on a is not tested on appveyor") return fold = get_temp_folder(__file__, "temp_uncompress_7zip") data = os.path.join(fold, "..", "data", "ftplib.7z") files = un7zip_files(data, where_to=fold, fLOG=fLOG) self.assertEqual(len(files), 1)
def test_conf_sphinx(self): fLOG( __file__, self._testMethodName, OutputPrint=__name__ == "__main__") ff = os.path.abspath(os.path.dirname(__file__)) ff = os.path.join( ff, "..", "..", "_doc", "sphinxdoc", "source", "conf.py") if sys.version_info[0] == 2: return assert os.path.exists(ff) import sphinx_rtd_theme as skip_ d = {} try: set_sphinx_variables( ff, "thisname", "XD", 2014, "sphinx_rtd_theme", None, # sphinx_rtd_theme.theme_path, d, use_mathjax=True) except FileNotFoundError as e: if "dot.exe" in str(e) and is_travis_or_appveyor() == "appveyor": # we skip unless we install graphviz --> too long automated # build return else: raise e for k, v in d.items(): fLOG(k, "\t=", v)
def test_notebook(self): fLOG( __file__, self._testMethodName, OutputPrint=__name__ == "__main__") if sys.version_info[0] == 2: # does not work on Python 2 return path = os.path.abspath(os.path.split(__file__)[0]) fold = os.path.normpath(os.path.join(path, "notebooks")) nbs = [os.path.join(fold, _) for _ in os.listdir(fold) if ".ipynb" in _] formats = ["slides", "present", "ipynb", "html", "python", "rst", "pdf", "docx"] temp = get_temp_folder(__file__, "temp_nb_bug") if is_travis_or_appveyor() is not None: warnings.warn( "travis, appveyor, unable to test TestNoteBooksBug.test_notebook") return res = process_notebooks(nbs, temp, temp, formats=formats) fLOG("*****", len(res)) for _ in res: if not os.path.exists(_[0]): raise Exception(_[0]) check = os.path.join(temp, "td1a_correction_session4.tex") with open(check, "r", encoding="utf8") as f: content = f.read() if "\\section{" not in content: raise Exception(content) checks = [os.path.join(temp, "reveal.js"), os.path.join(temp, "require.js")] for check in checks: if not os.path.exists(check): raise Exception(check)
def test_notebook_svg(self): fLOG( __file__, self._testMethodName, OutputPrint=__name__ == "__main__") if sys.version_info[0] == 2: # does not work on Python 2 return path = os.path.abspath(os.path.split(__file__)[0]) fold = os.path.normpath(os.path.join(path, "notebooks_svg")) nbs = [os.path.join(fold, _) for _ in os.listdir(fold) if ".ipynb" in _] formats = ["latex", "pdf"] temp = os.path.join(path, "temp_nb_bug_svg") if not os.path.exists(temp): os.mkdir(temp) for file in os.listdir(temp): os.remove(os.path.join(temp, file)) if is_travis_or_appveyor() is not None: warnings.warn( "travis, appveyor, unable to test TestNoteBooksBugSvg.test_notebook_svg") return setup_environment_for_help() res = process_notebooks(nbs, temp, temp, formats=formats) fLOG("*****", len(res)) for _ in res: fLOG(_) assert os.path.exists(_[0]) with open(os.path.join(temp, "seance4_projection_population_correction.tex"), "r", encoding="utf8") as f: content = f.read() exp = "seance4_projection_population_correction_50_0.pdf" if exp not in content: raise Exception(content)
def test_notebook_comment(self): fLOG( __file__, self._testMethodName, OutputPrint=__name__ == "__main__") if sys.version_info[0] == 2: # does not work on Python 2 return path = os.path.abspath(os.path.split(__file__)[0]) fold = os.path.normpath(os.path.join(path, "notebooks_comment")) nbs = [os.path.join(fold, _) for _ in os.listdir(fold) if ".ipynb" in _] formats = ["rst", ] temp = os.path.join(path, "temp_nb_comment") if not os.path.exists(temp): os.mkdir(temp) for file in os.listdir(temp): os.remove(os.path.join(temp, file)) if is_travis_or_appveyor() is not None: warnings.warn( "travis, appveyor, unable to test TestNoteBooksBugRst.test_notebook_rst") return res = process_notebooks(nbs, temp, temp, formats=formats) fLOG("*****", len(res)) for _ in res: fLOG(_) assert os.path.exists(_[0]) with open(os.path.join(temp, "example_with_comments.rst"), "r", encoding="utf8") as f: lines = f.readlines() nb = 0 for line in lines: if line.startswith(".. index:: comment, notebook, rst"): nb += 1
def test_notebook_read_write(self): fLOG( __file__, self._testMethodName, OutputPrint=__name__ == "__main__") if sys.version_info[0] == 2: # written in Python 3 return temp = get_temp_folder(__file__, "temp_notebook_read_write") nbfile = os.path.join(temp, "..", "data", "simple_example.ipynb") assert os.path.exists(nbfile) # For some reason, if this instruction is included in the build, # the travis build completes but never ends. # This is removed from the whole list on tavis. if is_travis_or_appveyor() == "travis": warnings.warn( "This test prevents travis from ending. The process never stops.") return nb = read_nb(nbfile, kernel=False) outfile = os.path.join(temp, "out_notebook.ipynb") nb.to_json(outfile) assert os.path.exists(outfile) with open(nbfile, "r", encoding="utf8") as f: c1 = f.read().replace("\r", "") with open(outfile, "r", encoding="utf8") as f: c2 = f.read().replace("\r", "") if c1 != c2: l1 = c1.strip("\n ").split("\n") l2 = c2.strip("\n ").split("\n") for i, cc in enumerate(zip(l1, l2)): a, b = cc if a.strip(" \n") != b.strip(" \n"): raise Exception( "difference at line {0}\n1: [{1}]-[{3}]\n2: [{2}]-[{4}]".format(i, a, b, type(a), type(b))) if len(l1) != len(l2): raise Exception("different length")
def test_clone_repo(self): fLOG( __file__, self._testMethodName, OutputPrint=__name__ == "__main__") if sys.version_info[0] == 2: return fold = os.path.abspath(os.path.split(__file__)[0]) temp = os.path.join(fold, "temp_clone_repo") if os.path.exists(temp): removedirs(temp, use_command_line=True) if not os.path.exists(temp): os.mkdir(temp) if is_travis_or_appveyor() is not None: return to = os.path.join(temp, "pq") out, err = clone(to, "github.com", "sdpython", "pyquickhelper") fLOG("OUT:", out) fLOG("ERR:", err) assert "Cloning into" in err assert os.path.exists( os.path.join( to, "src", "pyquickhelper", "__init__.py")) out, err = rebase(to, "github.com", "sdpython", "pyquickhelper") fLOG("OUT:", out) fLOG("ERR:", err) r = change_file_status(temp) assert len(r) > 0
def test_notebook_pdf(self): fLOG( __file__, self._testMethodName, OutputPrint=__name__ == "__main__") if sys.version_info[0] == 2: # does not work on Python 2 return path = os.path.abspath(os.path.split(__file__)[0]) fold = os.path.normpath(os.path.join(path, "notebooks")) nbs = [os.path.join(fold, _) for _ in os.listdir(fold) if ".ipynb" in _] formats = ["latex", "pdf"] temp = os.path.join(path, "temp_nb_bug_pdf") if not os.path.exists(temp): os.mkdir(temp) for file in os.listdir(temp): os.remove(os.path.join(temp, file)) if is_travis_or_appveyor() is not None: warnings.warn( "travis, appveyor, unable to test TestNoteBooksBug.test_notebook_pdf") return res = process_notebooks(nbs, temp, temp, formats=formats) fLOG("*****", len(res)) for _ in res: fLOG(_) assert os.path.exists(_[0]) check = os.path.join(temp, "td1a_correction_session4.tex") with open(check, "r", encoding="utf8") as f: content = f.read() if "\\section{" not in content: raise Exception(content)
def test_notebook_rst(self): fLOG( __file__, self._testMethodName, OutputPrint=__name__ == "__main__") if sys.version_info[0] == 2: # does not work on Python 2 return path = os.path.abspath(os.path.split(__file__)[0]) fold = os.path.normpath(os.path.join(path, "notebooks_rst")) nbs = [os.path.join(fold, _) for _ in os.listdir(fold) if ".ipynb" in _] formats = ["rst", ] temp = os.path.join(path, "temp_nb_bug_rst") if not os.path.exists(temp): os.mkdir(temp) for file in os.listdir(temp): os.remove(os.path.join(temp, file)) if is_travis_or_appveyor() is not None: warnings.warn( "travis, appveyor, unable to test TestNoteBooksBugRst.test_notebook_rst") return res = process_notebooks(nbs, temp, temp, formats=formats) fLOG("*****", len(res)) for _ in res: fLOG(_) assert os.path.exists(_[0]) with open(os.path.join(temp, "having_a_form_in_a_notebook.rst"), "r", encoding="utf8") as f: content = f.read() exp = "<#Animated-output>`" if exp in content or exp.lower() not in content: raise Exception(content)
def test_cache_urls(self): fLOG( __file__, self._testMethodName, OutputPrint=__name__ == "__main__") if sys.version_info[0] == 2: # notebooks are not converted into python 2.7, so not tested return kernel_name = None if is_travis_or_appveyor() is not None else install_python_kernel_for_unittest( "pyquickhelper") temp = get_temp_folder(__file__, "temp_cache_urls") fnb = os.path.normpath(os.path.join( os.path.abspath(os.path.dirname(__file__)), "..", "..", "_doc", "notebooks")) keepnote = [os.path.join(fnb, "example_about_files.ipynb")] addpaths = [os.path.normpath(os.path.join( os.path.abspath(os.path.dirname(__file__)), "..", "..", "src"))] res = execute_notebook_list( temp, keepnote, fLOG=fLOG, valid=None, additional_path=addpaths, kernel_name=kernel_name, cache_urls=["https://docs.python.org/3.4/library/urllib.request.html"]) assert len(res) > 0 fails = [(os.path.split(k)[-1], v) for k, v in sorted(res.items()) if not v[0]] for f in fails: fLOG(f) for k, v in sorted(res.items()): name = os.path.split(k)[-1] fLOG(name, v[0], v[1]) if len(fails) > 0: raise fails[0][1][-1]
def test_run_notebook(self): fLOG( __file__, self._testMethodName, OutputPrint=__name__ == "__main__") if sys.version_info[0] == 2: # notebooks are not converted into python 2.7, so not tested return if compare_module_version(IPython.__version__, "4.0.0") < 0: # IPython is not recnt enough return kernel_name = None if is_travis_or_appveyor() is not None else install_python_kernel_for_unittest( "pyquickhelper") temp = get_temp_folder(__file__, "temp_run_notebooks") fnb = os.path.normpath(os.path.join( os.path.abspath(os.path.dirname(__file__)), "..", "..", "_doc", "notebooks")) keepnote = [] for f in os.listdir(fnb): if os.path.splitext(f)[-1] == ".ipynb": if "example_pyquickhelper" in f: code_init = "form1={'version': 'modified', 'module': 'anything'}" keepnote.append((os.path.join(fnb, f), code_init)) elif "having_a_form" in f: code_init = "myvar='my value'\nform1={'version': 'modified', 'module': 'anything'}" code_init += "\ncredential={'password': '******', 'login': '******'}" code_init += "\nmy_address={'last_name': 'dupre', 'combined': 'xavier dupre', 'first_name': 'xavier'}" keepnote.append((os.path.join(fnb, f), code_init)) else: keepnote.append(os.path.join(fnb, f)) assert len(keepnote) > 0 def valid(cell): if "open_html_form" in cell: return False if "open_window_params" in cell: return False if '<div style="position:absolute' in cell: return False return True import jyquickhelper addpaths = [os.path.normpath(os.path.join( os.path.abspath(os.path.dirname(__file__)), "..", "..", "src")), os.path.normpath(os.path.join(os.path.abspath(os.path.dirname(jyquickhelper.__file__)), ".."))] if is_travis_or_appveyor() == "travis": keepnote = [_ for _ in keepnote if "javascript_extension" not in _] res = execute_notebook_list( temp, keepnote, fLOG=fLOG, valid=valid, additional_path=addpaths, kernel_name=kernel_name) assert len(res) > 0 fails = [(os.path.split(k)[-1], v) for k, v in sorted(res.items()) if not v[0]] for f in fails: fLOG(f) for k, v in sorted(res.items()): name = os.path.split(k)[-1] fLOG(name, v[0], v[1]) if len(fails) > 0: raise fails[0][1][-1]