if args.imagefile:
        raise NotImplementedError("Sorry, but the imagefile argument was not carried forward in the re-implementation.  Please feel free to request this feature be re-implemented if you need it.")

    pre = None
    post = None
    for infile in args.infiles:
        pre = post
        post = infile

        _logger.info(">>> Reading %s." % infile)

        if not pre is None:
            diffdfxml = make_differential_dfxml.make_differential_dfxml(
              pre,
              post,
              diff_mode="idifference",
              ignore_filename_function=ignorable_name
            )
            diffdfxml.program = sys.argv[0]
            diffdfxml.program_version = __version__
            if args.xmlfilename:
                _logger.debug("Opening temp file for writing.")
                with open(args.xmlfilename, "w") as fh:
                    diffdfxml.print_dfxml(output_fh=fh)
            summarize_differential_dfxml.report(
              diffdfxml,
              sort_by=args.sort_by,
              summary=args.summary,
              timestamp=args.timestamp
            )
    d_from_disk_again = Objects.parse(tempxml2_path)

    for (iteration, d) in enumerate((d_in_memory, d_from_disk, d_from_disk_again)):
        _logger.info("Checking iteration: %d." % iteration)
        for o in d:
            #_logger.debug(repr(o))
            if isinstance(o, Objects.FileObject):
                if "deleted" in o.annos:
                    _name = o.original_fileobject.filename
                else:
                    _name = o.filename
                expected_fileobject_diffs = {
                  ("i_am_new.txt"): set([]),
                  ("i_will_be_deleted.txt"): set([]),
                  ("i_will_be_modified.txt"): set(["filesize","mtime","ctime","atime","data_brs","md5","sha1"]),
                  ("i_will_be_accessed.txt"): set(["atime", "data_brs"])
                }
                if o.diffs != expected_fileobject_diffs[_name]:
                    _logger.info("FAILED: %r." % _name)
                    _logger.info("Expected diffs: %r;" % expected_fileobject_diffs[_name])
                    _logger.info("Received diffs: %r." % o.diffs)
                    assert False
                _logger.info("PASSED: %r." % _name)

    #TODO Once the old idifference.py is retired, remove the Python3-only bit.
    if sys.version_info >= (3,1):
        import summarize_differential_dfxml
        for sortby in "times", "path":
            _logger.info("Summarizing, sorting by %s." % sortby)
            summarize_differential_dfxml.report(d_from_disk_again, sort_by=sortby)
                else:
                    _name = o.filename
                expected_fileobject_diffs = {
                    ("i_am_new.txt"):
                    set([]),
                    ("i_will_be_deleted.txt"):
                    set([]),
                    ("i_will_be_modified.txt"):
                    set([
                        "filesize", "mtime", "ctime", "atime", "data_brs",
                        "md5", "sha1"
                    ]),
                    ("i_will_be_accessed.txt"):
                    set(["atime", "data_brs"])
                }
                if o.diffs != expected_fileobject_diffs[_name]:
                    _logger.info("FAILED: %r." % _name)
                    _logger.info("Expected diffs: %r;" %
                                 expected_fileobject_diffs[_name])
                    _logger.info("Received diffs: %r." % o.diffs)
                    assert False
                _logger.info("PASSED: %r." % _name)

    #TODO Once the old idifference.py is retired, remove the Python3-only bit.
    if sys.version_info >= (3, 1):
        import summarize_differential_dfxml
        for sortby in "times", "path":
            _logger.info("Summarizing, sorting by %s." % sortby)
            summarize_differential_dfxml.report(d_from_disk_again,
                                                sort_by=sortby)
示例#4
0
    if args.imagefile:
        raise NotImplementedError("Sorry, but the imagefile argument was not carried forward in the re-implementation.  Please feel free to request this feature be re-implemented if you need it.")

    pre = None
    post = None
    for infile in args.infiles:
        pre = post
        post = infile

        _logger.info(">>> Reading %s." % infile)

        if not pre is None:
            diffdfxml = make_differential_dfxml.make_differential_dfxml(
              pre,
              post,
              diff_mode="idifference",
              ignore_filename_function=ignorable_name
            )
            diffdfxml.program = sys.argv[0]
            diffdfxml.program_version = __version__
            if args.xmlfilename:
                _logger.debug("Opening temp file for writing.")
                with open(args.xmlfilename, "w") as fh:
                    diffdfxml.print_dfxml(output_fh=fh)
            summarize_differential_dfxml.report(
              diffdfxml,
              sort_by=args.sort_by,
              summary=args.summary,
              timestamp=args.timestamp
            )