def test_file_diff_output(): with tmpdir() as tmp: f = "%s/%s" % (tmp, "diff") fd = open(f, "w") assert not diff("tests/resources/util-diff/newf", "tests/resources/util-diff/orig", output_fd=fd) fd.close() cp1 = open(f, "r").read() cp2 = open("tests/resources/util-diff/diff", "r").read() assert cp1 == cp2
def test_file_diff_ret(): null = open("/dev/null", "w") assert not diff("tests/resources/util-diff/newf", "tests/resources/util-diff/orig", output_fd=null)
def run(self, verbose=False): templates = self._context['templates'][:] templates.reverse() for template in templates: template = "%s.json" % (template) try: context = self._workspace._look_up('contexts', template) context = load_config(context) self.set_global_context(context) except NoSuchCallableError as e: pass self._run_hook("init") if "todo" in self._context: return {} source, version = self.get_source_and_version() version = version['upstream'] tm = self.get_template_stack() with tmpdir() as tmp: self.path = "%s/%s-%s" % (tmp, source, version) path = self.path mkdir(path) self._run_hook("tmpdir", path=tmp) tm.render(path) self._run_hook("pre-build", path=path) self._run_builds() self._run_hook("post-build", path=path) self._run_hook("pre-check", path=path) self._run_checks() self._run_hook("post-check", path=path) results = {} for checker in self._context['checkers']: pristine = "%s/%s" % (self._test_path, checker) output = "%s/%s" % (tmp, checker) if os.path.exists(pristine): # OK, let's verify if os.path.exists(output): with open("/dev/null", "w") as null: if diff(pristine, output, output_fd=null): results[checker] = "passed" else: results[checker] = "failed" if verbose: print "================================" print "Checker match failure:" print " -> %s" % (self.name) print " -> %s" % (checker) print "--------------------------------" diff(pristine, output) print "================================" else: results[checker] = "no-output" else: results[checker] = "no-pristine" self._run_hook("finally", path=path) return results