Georg Brandl avatar Georg Brandl committed ff6864c Merge

Merged in shimizukawa/sphinx-fix-testing-fork (pull request #62)

Comments (0)

Files changed (7)

sphinx/highlighting.py

             # just replace all non-ASCII characters.
             src = src.encode('ascii', 'replace')
 
+        if sys.version_info < (3, 2):
+            # Python 3.1 can't proceess '\r' as linesep.
+            # `parser.suite("print('hello')\r\n")` cause error.
+            if '\r\n' in src:
+                src = src.replace('\r\n', '\n')
+
         if parser is None:
             return True
 

sphinx/util/inspect.py

                     del func_defaults[i]
                 except IndexError:
                     pass
-        return inspect.ArgSpec(args, varargs, varkw, func_defaults)
+        if sys.version_info >= (2, 6):
+            return inspect.ArgSpec(args, varargs, varkw, func_defaults)
+        else:
+            return (args, varargs, varkw, func_defaults)
 else:
     getargspec = inspect.getargspec
 

sphinx/util/osutil.py

 
 
 def safe_relpath(path, start=None):
+    from sphinx.util.pycompat import relpath
     try:
-        return os.path.relpath(path, start)
+        return relpath(path, start)
     except ValueError:
         return path
 

sphinx/util/pycompat.py

     except ImportError:
         from itertools import izip_longest as zip_longest
 
+    import os
+    relpath = os.path.relpath
+    del os
+
 else:
     # Python < 2.6
     from itertools import izip, repeat, chain
         except IndexError:
             pass
 
+    from os.path import curdir
+    def relpath(path, start=curdir):
+        """Return a relative version of a path"""
+        from os.path import sep, abspath, commonprefix, join, pardir
+
+        if not path:
+            raise ValueError("no path specified")
+
+        start_list = abspath(start).split(sep)
+        path_list = abspath(path).split(sep)
+
+        # Work out how much of the filepath is shared by start and path.
+        i = len(commonprefix([start_list, path_list]))
+
+        rel_list = [pardir] * (len(start_list)-i) + path_list[i:]
+        if not rel_list:
+            return curdir
+        return join(*rel_list)
+    del curdir
+
 
 # ------------------------------------------------------------------------------
 # Missing builtins and codecs in Python < 2.5

tests/test_build_html.py

 def test_html(app):
     app.builder.build_all()
     html_warnings = html_warnfile.getvalue().replace(os.sep, '/')
-    html_warnings_exp = HTML_WARNINGS % {'root': re.escape(app.srcdir)}
+    html_warnings_exp = HTML_WARNINGS % {
+            'root': re.escape(app.srcdir.replace(os.sep, '/'))}
     assert re.match(html_warnings_exp + '$', html_warnings), \
            'Warnings don\'t match:\n' + \
            '--- Expected (regex):\n' + html_warnings_exp + \
     for fname, paths in HTML_XPATH.iteritems():
         parser = NslessParser()
         parser.entity.update(htmlentitydefs.entitydefs)
-        fp = open(os.path.join(app.outdir, fname))
+        fp = open(os.path.join(app.outdir, fname), 'rb')
         try:
             etree = ET.parse(fp, parser)
         finally:

tests/test_build_latex.py

     LaTeXTranslator.ignore_missing_images = True
     app.builder.build_all()
     latex_warnings = latex_warnfile.getvalue().replace(os.sep, '/')
-    latex_warnings_exp = LATEX_WARNINGS % {'root': re.escape(app.srcdir)}
+    latex_warnings_exp = LATEX_WARNINGS % {
+            'root': re.escape(app.srcdir.replace(os.sep, '/'))}
     assert re.match(latex_warnings_exp + '$', latex_warnings), \
            'Warnings don\'t match:\n' + \
            '--- Expected (regex):\n' + latex_warnings_exp + \

tests/test_build_texinfo.py

     TexinfoTranslator.ignore_missing_images = True
     app.builder.build_all()
     texinfo_warnings = texinfo_warnfile.getvalue().replace(os.sep, '/')
-    texinfo_warnings_exp = TEXINFO_WARNINGS % {'root': re.escape(app.srcdir)}
+    texinfo_warnings_exp = TEXINFO_WARNINGS % {
+            'root': re.escape(app.srcdir.replace(os.sep, '/'))}
     assert re.match(texinfo_warnings_exp + '$', texinfo_warnings), \
            'Warnings don\'t match:\n' + \
            '--- Expected (regex):\n' + texinfo_warnings_exp + \
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.