# Copyright (C) 2018 Jelmer Vernooij # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . """Test InfoProcessor""" from io import BytesIO try: from StringIO import StringIO except ImportError: from io import StringIO from unittest import TestCase from fastimport import ( parser, ) from fastimport.processors import ( info_processor, ) simple_fast_import_stream = b"""commit refs/heads/master mark :1 committer Jelmer Vernooij 1299718135 +0100 data 7 initial """ class TestFastImportInfo(TestCase): def test_simple(self): stream = BytesIO(simple_fast_import_stream) outf = StringIO() proc = info_processor.InfoProcessor(outf=outf) p = parser.ImportParser(stream) proc.process(p.iter_commands) self.maxDiff = None self.assertEqual(outf.getvalue(), """Command counts: \t0\tblob \t0\tcheckpoint \t1\tcommit \t0\tfeature \t0\tprogress \t0\treset \t0\ttag File command counts: \t0\tfilemodify \t0\tfiledelete \t0\tfilecopy \t0\tfilerename \t0\tfiledeleteall Parent counts: \t1\tparents-0 \t0\ttotal revisions merged Commit analysis: \tno\tblobs referenced by SHA \tno\texecutables \tno\tseparate authors found \tno\tsymlinks Head analysis: \t:1\trefs/heads/master Merges: """)