def __init__(self): import rcssmin cssmin = rcssmin._make_cssmin(python_only=True) self.cssmin = lambda x: cssmin(x, keep_bang_comments=True)
===== YUI ===== YUI tests. """ __author__ = u"Andr\xe9 Malo" __docformat__ = "restructuredtext en" import os as _os import re as _re import rcssmin as _rcssmin # pylint: disable = protected-access py_cssmin = _rcssmin._make_cssmin(python_only=True) import _rcssmin c_cssmin = _rcssmin.cssmin _TESTS = _os.path.dirname(__file__) def find(base, ext, out): """ Find test files """ for name in _os.listdir(_os.path.join(_TESTS, base)): item = "%s/%s" % (base, name) if _os.path.isfile(_os.path.join(_TESTS, item)) \ and item.endswith('.' + ext): outitem = "%s/out/%s.%s" % (base, name[:-len(ext) - 1], out) yield item, outitem
def run_tests(basedir, libdir): """ Run output based tests """ import rcssmin as _rcssmin py_cssmin = _rcssmin._make_cssmin(python_only=True) c_cssmin = _rcssmin._make_cssmin(python_only=False) def run_test(example, output_file): """ Run it """ try: fp = open(example, "r") except IOError: return else: try: input = fp.read() finally: fp.close() def load_output(filename): try: fp = open(filename, "r") except IOError: return None else: try: output = fp.read() finally: fp.close() output = output.strip() if _re.search(r"(?<!\\)(?:\\\\)*\\[0-9a-zA-Z]{1,6}$", output): output += " " return output output = load_output(output_file) output_b = load_output(output_file + ".b") def do_test(cssmin, output, **options): try: genout = cssmin(input, **options) except (KeyboardInterrupt, SystemExit): raise except: return 1, "%(RED)s exc%(NORMAL)s " else: if output is None: return 1, "%(RED)smiss%(NORMAL)s " elif genout == output or genout == output.rstrip(): return 0, "%(GREEN)sOK%(NORMAL)s " else: return 1, "%(RED)sfail%(NORMAL)s " erred, out = do_test(py_cssmin, output) erred, c_out = do_test(c_cssmin, output) erred, out_b = do_test(py_cssmin, output_b, keep_bang_comments=True) erred, c_out_b = do_test(c_cssmin, output_b, keep_bang_comments=True) term.write( "%(out)s %(out_b)s | %(c_out)s %(c_out_b)s - %%(example)s\n" % locals(), example=_os.path.basename(example), ) return erred # end # begin main test code erred = 0 basedir = shell.native(basedir) strip = len(basedir) - len(_os.path.basename(basedir)) for dirname, dirs, files in shell.walk(basedir): dirs[:] = [item for item in dirs if item not in (".svn", ".git", "out")] dirs.sort() files = [item for item in files if item.endswith(".css")] if not files: continue if not _os.path.isdir(_os.path.join(basedir, dirname, "out")): continue term.yellow("---> %s" % (dirname[strip:],)) files.sort() for filename in files: if run_test(_os.path.join(dirname, filename), _os.path.join(dirname, "out", filename[:-4] + ".out")): erred = 1 term.yellow("<--- %s" % (dirname[strip:],)) return erred
def run_tests(basedir, libdir): """ Run output based tests """ import rcssmin as _rcssmin py_cssmin = _rcssmin._make_cssmin(python_only=True) c_cssmin = _rcssmin._make_cssmin(python_only=False) def run_test(example, output_file): """ Run it """ try: fp = open(example, 'r') except IOError: return else: try: input = fp.read() finally: fp.close() def load_output(filename): try: fp = open(filename, 'r') except IOError: return None else: try: output = fp.read() finally: fp.close() output = output.strip() if _re.search(r'(?<!\\)(?:\\\\)*\\[0-9a-zA-Z]{1,6}$', output): output += ' ' return output output = load_output(output_file) output_b = load_output(output_file + '.b') def do_test(cssmin, output, **options): try: genout = cssmin(input, **options) except (KeyboardInterrupt, SystemExit): raise except: return 1, "%(RED)s exc%(NORMAL)s " else: if output is None: return 1, "%(RED)smiss%(NORMAL)s " elif genout == output or genout == output.rstrip(): return 0, "%(GREEN)sOK%(NORMAL)s " else: return 1, "%(RED)sfail%(NORMAL)s " erred, out = do_test(py_cssmin, output) erred, c_out = do_test(c_cssmin, output) erred, out_b = do_test(py_cssmin, output_b, keep_bang_comments=True) erred, c_out_b = do_test(c_cssmin, output_b, keep_bang_comments=True) term.write( "%(out)s %(out_b)s | %(c_out)s %(c_out_b)s - %%(example)s\n" % locals(), example=_os.path.basename(example), ) return erred # end # begin main test code erred = 0 basedir = shell.native(basedir) strip = len(basedir) - len(_os.path.basename(basedir)) for dirname, dirs, files in shell.walk(basedir): dirs[:] = [ item for item in dirs if item not in ('.svn', '.git', 'out') ] dirs.sort() files = [item for item in files if item.endswith('.css')] if not files: continue if not _os.path.isdir(_os.path.join(basedir, dirname, 'out')): continue term.yellow("---> %s" % (dirname[strip:],)) files.sort() for filename in files: if run_test( _os.path.join(dirname, filename), _os.path.join(dirname, 'out', filename[:-4] + '.out'), ): erred = 1 term.yellow("<--- %s" % (dirname[strip:],)) return erred