def test_prestodelta_file_creation(self):

        path = os.path.join(self.metadata_file_dir, REPO_DATA_DIR_NAME, PRESTO_DELTA_FILE_NAME)

        context = PrestodeltaXMLFileContext(self.metadata_file_dir)

        context._open_metadata_file_handle()
        context._close_metadata_file_handle()

        self.assertTrue(os.path.exists(path))
Example #2
0
    def test_prestodelta_unit_metadata(self):

        path = os.path.join(self.metadata_file_dir, REPO_DATA_DIR_NAME,
                            PRESTO_DELTA_FILE_NAME)

        handle = open(os.path.join(DATA_DIR, 'prestodelta.xml'), 'r')
        generator = packages.package_list_generator(
            handle, 'newpackage', presto.process_package_element)

        prestodelta_unit = next(generator)

        # double check we've grabbed the right one
        self.assertEqual(prestodelta_unit.metadata['new_package'], 'yum')
        self.assertEqual(prestodelta_unit.unit_key['release'], '16.fc16')

        context = PrestodeltaXMLFileContext(self.metadata_file_dir)
        context._open_metadata_file_handle()
        context.add_unit_metadata(prestodelta_unit)
        context._close_metadata_file_handle()

        prestodelta_handle = gzip.open(path, 'r')
        content = prestodelta_handle.read()
        prestodelta_handle.close()

        self.assertEqual(content.count('name="yum"'), 1)
        self.assertEqual(content.count('epoch="0"'),
                         2)  # also matches oldepoch
        self.assertEqual(content.count('version="3.4.3"'),
                         2)  # also matches oldversion
        self.assertEqual(content.count('release="16.fc16"'), 1)
        self.assertEqual(content.count('arch="noarch"'), 1)
        self.assertEqual(content.count('oldepoch="0"'), 1)
        self.assertEqual(content.count('oldversion="3.4.3"'), 1)
        self.assertEqual(content.count('oldrelease="11.fc16"'), 1)
        self.assertEqual(
            content.count(
                '<filename>drpms/yum-3.4.3-11.fc16_3.4.3-16.fc16.noarch.drpm</filename>'
            ), 1)
        self.assertEqual(
            content.count(
                '<sequence>yum-3.4.3-11.fc16'
                '-fa4535420dc8db63b7349d4262e3920b211141321242121222421212124242121272421212121212a121'
                '2121286272121212309f210ee210be2108e210fc210de110ae110fd110cd1108c110db110ab110fa110ca1'
                '109a110b9110a8110f710c710e6108610d510a510f4109410d310a310f2109210e11</sequence>'
            ), 1)
        self.assertEqual(content.count('<size>183029</size>'), 1)
        self.assertEqual(
            content.count(
                '<checksum '
                'type="sha256">77fad55681f652e06e8ba8fd6f11e505c4d85041ee30a37bbf8f573c4fb8f570'
                '</checksum>'), 1)
Example #3
0
    def test_prestodelta_unit_metadata(self):

        path = os.path.join(self.metadata_file_dir,
                            REPO_DATA_DIR_NAME,
                            PRESTO_DELTA_FILE_NAME)

        handle = open(os.path.join(DATA_DIR, 'prestodelta.xml'), 'r')
        generator = packages.package_list_generator(handle, 'newpackage',
                                                    presto.process_package_element)

        prestodelta_unit = next(generator)

        # double check we've grabbed the right one
        self.assertEqual(prestodelta_unit.metadata['new_package'], 'yum')
        self.assertEqual(prestodelta_unit.unit_key['release'], '16.fc16')

        context = PrestodeltaXMLFileContext(self.metadata_file_dir)
        context._open_metadata_file_handle()
        context.add_unit_metadata(prestodelta_unit)
        context._close_metadata_file_handle()

        prestodelta_handle = gzip.open(path, 'r')
        content = prestodelta_handle.read()
        prestodelta_handle.close()

        self.assertEqual(content.count('name="yum"'), 1)
        self.assertEqual(content.count('epoch="0"'), 2)  # also matches oldepoch
        self.assertEqual(content.count('version="3.4.3"'), 2)  # also matches oldversion
        self.assertEqual(content.count('release="16.fc16"'), 1)
        self.assertEqual(content.count('arch="noarch"'), 1)
        self.assertEqual(content.count('oldepoch="0"'), 1)
        self.assertEqual(content.count('oldversion="3.4.3"'), 1)
        self.assertEqual(content.count('oldrelease="11.fc16"'), 1)
        self.assertEqual(
            content.count('<filename>drpms/yum-3.4.3-11.fc16_3.4.3-16.fc16.noarch.drpm</filename>'),
            1)
        self.assertEqual(content.count(
            '<sequence>yum-3.4.3-11.fc16'
            '-fa4535420dc8db63b7349d4262e3920b211141321242121222421212124242121272421212121212a121'
            '2121286272121212309f210ee210be2108e210fc210de110ae110fd110cd1108c110db110ab110fa110ca1'
            '109a110b9110a8110f710c710e6108610d510a510f4109410d310a310f2109210e11</sequence>'),
            1)
        self.assertEqual(content.count('<size>183029</size>'), 1)
        self.assertEqual(content.count(
            '<checksum '
            'type="sha256">77fad55681f652e06e8ba8fd6f11e505c4d85041ee30a37bbf8f573c4fb8f570'
            '</checksum>'),
            1)
    def test_prestodelta_opening_closing_tags(self):

        path = os.path.join(self.metadata_file_dir, REPO_DATA_DIR_NAME, PRESTO_DELTA_FILE_NAME)

        context = PrestodeltaXMLFileContext(self.metadata_file_dir)

        context._open_metadata_file_handle()

        self.assertRaises(NotImplementedError, context._write_root_tag_close)

        context._write_root_tag_open()

        try:
            context._write_root_tag_close()

        except Exception, e:
            self.fail(e.message)