def setUp(self):
     self.config = Config(["--no-extra-mkdirs", "/dummy"])
     self.writer = DumpWriterMock(self)
     self.revision_mapper = RevisionMapper(self.config)
     self.processor = LumpPostProcessor(self.config, self.revision_mapper, self.writer)
     self.processor.parent_directory_lump_generator = ParentDirectoryGeneratorMock(self.processor)
class TestLumpPostProcessor(TestCase):
    def setUp(self):
        self.config = Config(["--no-extra-mkdirs", "/dummy"])
        self.writer = DumpWriterMock(self)
        self.revision_mapper = RevisionMapper(self.config)
        self.processor = LumpPostProcessor(self.config, self.revision_mapper, self.writer)
        self.processor.parent_directory_lump_generator = ParentDirectoryGeneratorMock(self.processor)

    def test_dont_drop_empty_revs(self):
        self.config.keep_empty_revs = True

        lump = SvnLump()
        lump.set_header("Revision-number", "12")
        self.processor.write_lump(lump)

        lump = SvnLump()
        lump.set_header("Revision-number", "13")
        self.processor.write_lump(lump)

        lump = SvnLump()
        lump.set_header("Node-kind", "file")
        self.processor.write_lump(lump)

        self.assertEqual(len(self.writer.lumps), 3)
        self.assertEqual(self.writer.lumps[0].get_header("Revision-number"), "12")
        self.assertEqual(self.writer.lumps[1].get_header("Revision-number"), "13")
        self.assertEqual(self.writer.lumps[2].get_header("Node-kind"), "file")

    def test_drop_empty_revs(self):
        lump = SvnLump()
        lump.set_header("Revision-number", "12")
        self.processor.write_lump(lump)

        lump = SvnLump()
        lump.set_header("Revision-number", "13")
        self.processor.write_lump(lump)

        lump = SvnLump()
        lump.set_header("Node-kind", "file")
        self.processor.write_lump(lump)

        self.assertEqual(len(self.writer.lumps), 2)
        self.assertEqual(self.writer.lumps[0].get_header("Revision-number"), "13")
        self.assertEqual(self.writer.lumps[1].get_header("Node-kind"), "file")

    def test_map_dropped_revs(self):
        lump = SvnLump()
        lump.set_header("Revision-number", "12")
        self.processor.write_lump(lump)

        lump = SvnLump()
        lump.set_header("Node-kind", "file")
        self.processor.write_lump(lump)

        # Dropped rev
        lump = SvnLump()
        lump.set_header("Revision-number", "13")
        self.processor.write_lump(lump)

        lump = SvnLump()
        lump.set_header("Revision-number", "14")
        self.processor.write_lump(lump)

        lump = SvnLump()
        lump.set_header("Node-kind", "file")
        lump.set_header("Node-copyfrom-rev", "13")
        self.processor.write_lump(lump)

        self.assertEqual(len(self.writer.lumps), 4)
        self.assertEqual(self.writer.lumps[2].get_header("Revision-number"), "14")
        self.assertEqual(self.writer.lumps[3].get_header("Node-copyfrom-rev"), "12")

    def test_fix_content_length_text(self):
        lump = SvnLump()
        lump.set_header("Node-kind", "file")
        lump.set_header("Text-content-length", "3")
        fh = StringIO("bla")
        lump.content = ContentTin(fh, 3, "FAKE-MD5SUM")

        self.processor.write_lump(lump)

        self.assertEqual(len(self.writer.lumps), 1)
        self.assertEqual(self.writer.lumps[0].get_header("Text-content-length"), "3")
        self.assertEqual(self.writer.lumps[0].get_header("Content-length"), "3")

    def test_fix_content_length_prop_no_old(self):
        lump = SvnLump()
        lump.set_header("Node-kind", "file")
        lump.properties = {"blub": "XXX"}

        self.processor.write_lump(lump)

        self.assertEqual(len(self.writer.lumps), 1)
        self.assertEqual(self.writer.lumps[0].get_header("Prop-content-length"), "27")
        self.assertEqual(self.writer.lumps[0].get_header("Content-length"), "27")

    def test_fix_content_length_prop_with_old(self):
        lump = SvnLump()
        lump.set_header("Node-kind", "file")
        lump.set_header("Prop-content-length", "26")
        lump.set_header("Content-length", "26")
        lump.properties = {"blub": "XXX"}

        self.processor.write_lump(lump)

        self.assertEqual(len(self.writer.lumps), 1)
        self.assertEqual(self.writer.lumps[0].get_header("Prop-content-length"), "27")
        self.assertEqual(self.writer.lumps[0].get_header("Content-length"), "27")

    def test_fix_content_length_text_and_prop(self):
        lump = SvnLump()
        lump.set_header("Node-kind", "file")
        lump.set_header("Text-content-length", "3")
        lump.properties = {"blub": "XXX"}
        fh = StringIO("bla")
        lump.content = ContentTin(fh, 3, "FAKE-MD5SUM")

        self.processor.write_lump(lump)

        self.assertEqual(len(self.writer.lumps), 1)
        self.assertEqual(self.writer.lumps[0].get_header("Text-content-length"), "3")
        self.assertEqual(self.writer.lumps[0].get_header("Prop-content-length"), "27")
        self.assertEqual(self.writer.lumps[0].get_header("Content-length"), "30")

    def test_create_parent_dirs(self):
        self.config.create_parent_dirs = True

        lump = SvnLump()
        lump.set_header("Revision-number", "12")
        self.processor.write_lump(lump)

        self.assertEqual(len(self.writer.lumps), 3)
        self.assertEqual(self.writer.lumps[0].get_header("Revision-number"), "12")
        self.assertEqual(self.writer.lumps[1].get_header("ParentDirectoryGeneratorMockLump"), "1of2")
        self.assertEqual(self.writer.lumps[2].get_header("ParentDirectoryGeneratorMockLump"), "2of2")
Пример #3
0
class TestLumpPostProcessor(TestCase):
    def setUp(self):
        self.config = Config( [ '--no-extra-mkdirs', '/dummy' ] )
        self.writer = DumpWriterMock(self)
        self.revision_mapper = RevisionMapper(self.config)
        self.processor = LumpPostProcessor(self.config, self.revision_mapper, self.writer)
        self.processor.parent_directory_lump_generator = ParentDirectoryGeneratorMock(self.processor)

    def test_dont_drop_empty_revs(self):
        self.config.keep_empty_revs = True

        lump = SvnLump()
        lump.set_header('Revision-number', '12')
        self.processor.write_lump(lump)

        lump = SvnLump()
        lump.set_header('Revision-number', '13')
        self.processor.write_lump(lump)

        lump = SvnLump()
        lump.set_header('Node-kind', 'file')
        self.processor.write_lump(lump)

        self.assertEqual(len(self.writer.lumps), 3)
        self.assertEqual(self.writer.lumps[0].get_header('Revision-number'), '12')
        self.assertEqual(self.writer.lumps[1].get_header('Revision-number'), '13')
        self.assertEqual(self.writer.lumps[2].get_header('Node-kind'), 'file')

    def test_drop_empty_revs(self):
        lump = SvnLump()
        lump.set_header('Revision-number', '12')
        self.processor.write_lump(lump)

        lump = SvnLump()
        lump.set_header('Revision-number', '13')
        self.processor.write_lump(lump)

        lump = SvnLump()
        lump.set_header('Node-kind', 'file')
        self.processor.write_lump(lump)

        self.assertEqual(len(self.writer.lumps), 2)
        self.assertEqual(self.writer.lumps[0].get_header('Revision-number'), '13')
        self.assertEqual(self.writer.lumps[1].get_header('Node-kind'), 'file')
   
    def test_map_dropped_revs(self):
        lump = SvnLump()
        lump.set_header('Revision-number', '12')
        self.processor.write_lump(lump)

        lump = SvnLump()
        lump.set_header('Node-kind', 'file')
        self.processor.write_lump(lump)

        # Dropped rev
        lump = SvnLump()
        lump.set_header('Revision-number', '13')
        self.processor.write_lump(lump)

        lump = SvnLump()
        lump.set_header('Revision-number', '14')
        self.processor.write_lump(lump)

        lump = SvnLump()
        lump.set_header('Node-kind', 'file')
        lump.set_header('Node-copyfrom-rev', '13')
        self.processor.write_lump(lump)


        self.assertEqual(len(self.writer.lumps), 4)
        self.assertEqual(self.writer.lumps[2].get_header('Revision-number'), '14')
        self.assertEqual(self.writer.lumps[3].get_header('Node-copyfrom-rev'), '12')

    def test_fix_content_length_text(self):
        lump = SvnLump()
        lump.set_header('Node-kind', 'file')
        lump.set_header('Text-content-length', '3')
        fh = StringIO('bla')
        lump.content = ContentTin(fh, 3, 'FAKE-MD5SUM')

        self.processor.write_lump(lump)

        self.assertEqual(len(self.writer.lumps), 1)
        self.assertEqual(self.writer.lumps[0].get_header('Text-content-length'), '3')
        self.assertEqual(self.writer.lumps[0].get_header('Content-length'), '3')

    def test_fix_content_length_prop_no_old(self):
        lump = SvnLump()
        lump.set_header('Node-kind', 'file')
        lump.properties = { 'blub': 'XXX' }

        self.processor.write_lump(lump)

        self.assertEqual(len(self.writer.lumps), 1)
        self.assertEqual(self.writer.lumps[0].get_header('Prop-content-length'), '27')
        self.assertEqual(self.writer.lumps[0].get_header('Content-length'), '27')

    def test_fix_content_length_prop_with_old(self):
        lump = SvnLump()
        lump.set_header('Node-kind', 'file')
        lump.set_header('Prop-content-length', '26')
        lump.set_header('Content-length', '26')
        lump.properties = { 'blub': 'XXX' }

        self.processor.write_lump(lump)

        self.assertEqual(len(self.writer.lumps), 1)
        self.assertEqual(self.writer.lumps[0].get_header('Prop-content-length'), '27')
        self.assertEqual(self.writer.lumps[0].get_header('Content-length'), '27')

    def test_fix_content_length_text_and_prop(self):
        lump = SvnLump()
        lump.set_header('Node-kind', 'file')
        lump.set_header('Text-content-length', '3')
        lump.properties = { 'blub': 'XXX' }
        fh = StringIO('bla')
        lump.content = ContentTin(fh, 3, 'FAKE-MD5SUM')

        self.processor.write_lump(lump)

        self.assertEqual(len(self.writer.lumps), 1)
        self.assertEqual(self.writer.lumps[0].get_header('Text-content-length'), '3')
        self.assertEqual(self.writer.lumps[0].get_header('Prop-content-length'), '27')
        self.assertEqual(self.writer.lumps[0].get_header('Content-length'), '30')

    def test_create_parent_dirs(self):
        self.config.create_parent_dirs = True

        lump = SvnLump()
        lump.set_header('Revision-number', '12')
        self.processor.write_lump(lump)

        self.assertEqual(len(self.writer.lumps), 3)
        self.assertEqual(self.writer.lumps[0].get_header('Revision-number'), '12')
        self.assertEqual(self.writer.lumps[1].get_header('ParentDirectoryGeneratorMockLump'), '1of2')
        self.assertEqual(self.writer.lumps[2].get_header('ParentDirectoryGeneratorMockLump'), '2of2')
Пример #4
0
 def setUp(self):
     self.config = Config( [ '--no-extra-mkdirs', '/dummy' ] )
     self.writer = DumpWriterMock(self)
     self.revision_mapper = RevisionMapper(self.config)
     self.processor = LumpPostProcessor(self.config, self.revision_mapper, self.writer)
     self.processor.parent_directory_lump_generator = ParentDirectoryGeneratorMock(self.processor)
Пример #5
0
class TestLumpPostProcessor(TestCase):
    def setUp(self):
        self.config = Config(['--no-extra-mkdirs', '/dummy'])
        self.writer = DumpWriterMock(self)
        self.revision_mapper = RevisionMapper(self.config)
        self.processor = LumpPostProcessor(self.config, self.revision_mapper, self.writer)
        self.processor.parent_directory_lump_generator = ParentDirectoryGeneratorMock(self.processor)

    def test_dont_drop_empty_revs(self):
        self.config.keep_empty_revs = True

        lump = SvnLump()
        lump.set_header('Revision-number', '12')
        self.processor.write_lump(lump)

        lump = SvnLump()
        lump.set_header('Revision-number', '13')
        self.processor.write_lump(lump)

        lump = SvnLump()
        lump.set_header('Node-kind', 'file')
        self.processor.write_lump(lump)

        self.assertEqual(len(self.writer.lumps), 3)
        self.assertEqual(self.writer.lumps[0].get_header('Revision-number'), '12')
        self.assertEqual(self.writer.lumps[1].get_header('Revision-number'), '13')
        self.assertEqual(self.writer.lumps[2].get_header('Node-kind'), 'file')

    def test_drop_empty_revs(self):
        lump = SvnLump()
        lump.set_header('Revision-number', '12')
        self.processor.write_lump(lump)

        lump = SvnLump()
        lump.set_header('Revision-number', '13')
        self.processor.write_lump(lump)

        lump = SvnLump()
        lump.set_header('Node-kind', 'file')
        self.processor.write_lump(lump)

        self.assertEqual(len(self.writer.lumps), 2)
        self.assertEqual(self.writer.lumps[0].get_header('Revision-number'), '13')
        self.assertEqual(self.writer.lumps[1].get_header('Node-kind'), 'file')

    def test_map_dropped_revs(self):
        lump = SvnLump()
        lump.set_header('Revision-number', '12')
        self.processor.write_lump(lump)

        lump = SvnLump()
        lump.set_header('Node-kind', 'file')
        self.processor.write_lump(lump)

        # Dropped rev
        lump = SvnLump()
        lump.set_header('Revision-number', '13')
        self.processor.write_lump(lump)

        lump = SvnLump()
        lump.set_header('Revision-number', '14')
        self.processor.write_lump(lump)

        lump = SvnLump()
        lump.set_header('Node-kind', 'file')
        lump.set_header('Node-copyfrom-rev', '13')
        self.processor.write_lump(lump)

        self.assertEqual(len(self.writer.lumps), 4)
        self.assertEqual(self.writer.lumps[2].get_header('Revision-number'), '14')
        self.assertEqual(self.writer.lumps[3].get_header('Node-copyfrom-rev'), '12')

    def test_fix_content_length_text(self):
        lump = SvnLump()
        lump.set_header('Node-kind', 'file')
        lump.set_header('Text-content-length', '3')
        fh = StringIO('bla')
        lump.content = ContentTin(fh, 3, 'FAKE-MD5SUM')

        self.processor.write_lump(lump)

        self.assertEqual(len(self.writer.lumps), 1)
        self.assertEqual(self.writer.lumps[0].get_header('Text-content-length'), '3')
        self.assertEqual(self.writer.lumps[0].get_header('Content-length'), '3')

    def test_fix_content_length_prop_no_old(self):
        lump = SvnLump()
        lump.set_header('Node-kind', 'file')
        lump.properties = {'blub': 'XXX'}

        self.processor.write_lump(lump)

        self.assertEqual(len(self.writer.lumps), 1)
        self.assertEqual(self.writer.lumps[0].get_header('Prop-content-length'), '27')
        self.assertEqual(self.writer.lumps[0].get_header('Content-length'), '27')

    def test_fix_content_length_prop_with_old(self):
        lump = SvnLump()
        lump.set_header('Node-kind', 'file')
        lump.set_header('Prop-content-length', '26')
        lump.set_header('Content-length', '26')
        lump.properties = {'blub': 'XXX'}

        self.processor.write_lump(lump)

        self.assertEqual(len(self.writer.lumps), 1)
        self.assertEqual(self.writer.lumps[0].get_header('Prop-content-length'), '27')
        self.assertEqual(self.writer.lumps[0].get_header('Content-length'), '27')

    def test_fix_content_length_text_and_prop(self):
        lump = SvnLump()
        lump.set_header('Node-kind', 'file')
        lump.set_header('Text-content-length', '3')
        lump.properties = {'blub': 'XXX'}
        fh = StringIO('bla')
        lump.content = ContentTin(fh, 3, 'FAKE-MD5SUM')

        self.processor.write_lump(lump)

        self.assertEqual(len(self.writer.lumps), 1)
        self.assertEqual(self.writer.lumps[0].get_header('Text-content-length'), '3')
        self.assertEqual(self.writer.lumps[0].get_header('Prop-content-length'), '27')
        self.assertEqual(self.writer.lumps[0].get_header('Content-length'), '30')

    def test_create_parent_dirs(self):
        self.config.create_parent_dirs = True

        lump = SvnLump()
        lump.set_header('Revision-number', '12')
        self.processor.write_lump(lump)

        self.assertEqual(len(self.writer.lumps), 3)
        self.assertEqual(self.writer.lumps[0].get_header('Revision-number'), '12')
        self.assertEqual(self.writer.lumps[1].get_header('ParentDirectoryGeneratorMockLump'), '1of2')
        self.assertEqual(self.writer.lumps[2].get_header('ParentDirectoryGeneratorMockLump'), '2of2')