Example #1
0
class PrimaryXMLFileContextTests(unittest.TestCase):
    def setUp(self):
        self.working_dir = tempfile.mkdtemp()
        self.context = PrimaryXMLFileContext(self.working_dir, 3)

    def tearDown(self):
        shutil.rmtree(self.working_dir)

    def test_init(self):
        self.assertEquals(self.context.fast_forward, False)
        self.assertEquals(self.context.num_packages, 3)

    def test_add_unit_metadata(self):
        self.context.metadata_file_handle = mock.Mock()
        self.context.add_unit_metadata(mock.Mock(metadata={'repodata': {'primary': 'bar'}}))
        self.context.metadata_file_handle.write.assert_called_once_with('bar')

    def test_add_unit_metadata_unicode(self):
        """
        Test that the primary repodata is passed as a str even if it's a unicode object.
        """
        self.context.metadata_file_handle = mock.Mock()
        expected_call = 'some unicode'
        metadata = {
            'repodata': {'primary': unicode(expected_call)}
        }
        self.context.add_unit_metadata(mock.Mock(metadata=metadata))
        self.context.metadata_file_handle.write.assert_called_once_with(expected_call)
Example #2
0
class PrimaryXMLFileContextTests(unittest.TestCase):
    def setUp(self):
        self.working_dir = tempfile.mkdtemp()
        self.context = PrimaryXMLFileContext(self.working_dir, 3)

    def tearDown(self):
        shutil.rmtree(self.working_dir)

    def test_init(self):
        self.assertEquals(self.context.fast_forward, False)
        self.assertEquals(self.context.num_packages, 3)

    def test_add_unit_metadata(self):
        self.context.metadata_file_handle = mock.Mock()
        self.context.add_unit_metadata(
            mock.Mock(metadata={'repodata': {
                'primary': 'bar'
            }}))
        self.context.metadata_file_handle.write.assert_called_once_with('bar')

    def test_add_unit_metadata_unicode(self):
        """
        Test that the primary repodata is passed as a str even if it's a unicode object.
        """
        self.context.metadata_file_handle = mock.Mock()
        expected_call = 'some unicode'
        metadata = {'repodata': {'primary': unicode(expected_call)}}
        self.context.add_unit_metadata(mock.Mock(metadata=metadata))
        self.context.metadata_file_handle.write.assert_called_once_with(
            expected_call)
Example #3
0
class PrimaryXMLFileContextTests(unittest.TestCase):
    def setUp(self):
        self.working_dir = tempfile.mkdtemp()
        self.context = PrimaryXMLFileContext(self.working_dir,
                                             3,
                                             checksum_type='sha256')
        self.unit = mock.Mock()
        self.unit.render_primary.return_value = 'somexml'

    def tearDown(self):
        shutil.rmtree(self.working_dir)

    def test_init(self):
        self.assertEquals(self.context.fast_forward, False)
        self.assertEquals(self.context.num_packages, 3)

    def test_add_unit_metadata(self):
        self.context.metadata_file_handle = mock.Mock()
        self.context.add_unit_metadata(self.unit)
        self.context.metadata_file_handle.write.assert_called_once_with(
            'somexml')
        self.unit.render_primary.assert_called_once_with('sha256')

    def test_add_unit_metadata_unicode(self):
        """
        Test that the primary repodata is passed as a str even if it's a unicode object.
        """
        self.context.metadata_file_handle = mock.Mock()
        expected_call = u'some unicode'
        self.unit.render_primary.return_value = expected_call
        self.context.add_unit_metadata(self.unit)
        self.context.metadata_file_handle.write.assert_called_once_with(
            expected_call)
        self.unit.render_primary.assert_called_once_with('sha256')
Example #4
0
 def setUp(self):
     self.working_dir = tempfile.mkdtemp()
     self.context = PrimaryXMLFileContext(self.working_dir,
                                          3,
                                          checksum_type='sha256')
     self.unit = mock.Mock()
     self.unit.render_primary.return_value = 'somexml'
Example #5
0
class PrimaryXMLFileContextTests(unittest.TestCase):
    def setUp(self):
        self.working_dir = tempfile.mkdtemp()
        self.context = PrimaryXMLFileContext(self.working_dir, 3, checksum_type='sha256')
        self.unit = mock.Mock()
        self.unit.render_primary.return_value = 'somexml'

    def tearDown(self):
        shutil.rmtree(self.working_dir)

    def test_init(self):
        self.assertEquals(self.context.fast_forward, False)
        self.assertEquals(self.context.num_packages, 3)

    def test_add_unit_metadata(self):
        self.context.metadata_file_handle = mock.Mock()
        self.context.add_unit_metadata(self.unit)
        self.context.metadata_file_handle.write.assert_called_once_with('somexml')
        self.unit.render_primary.assert_called_once_with('sha256')

    def test_add_unit_metadata_unicode(self):
        """
        Test that the primary repodata is passed as a str even if it's a unicode object.
        """
        self.context.metadata_file_handle = mock.Mock()
        expected_call = u'some unicode'
        self.unit.render_primary.return_value = expected_call
        self.context.add_unit_metadata(self.unit)
        self.context.metadata_file_handle.write.assert_called_once_with(expected_call)
        self.unit.render_primary.assert_called_once_with('sha256')
    def test_primary_file_creation(self):

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

        context = PrimaryXMLFileContext(self.metadata_file_dir, 0)

        context._open_metadata_file_handle()
        context._close_metadata_file_handle()

        self.assertTrue(os.path.exists(path))
Example #7
0
    def process_main(self, unit=None):
        wd = self.get_working_dir()
        total = len(self.parent.publish_msi.units +
                    self.parent.publish_msm.units)
        checksum_type = 'sha256'
        with PrimaryXMLFileContext(wd, total, checksum_type) as primary:
            units = itertools.chain(self.parent.publish_msi.units,
                                    self.parent.publish_msm.units)
            for unit in units:
                primary.add_unit_metadata(unit)
        with FilelistsXMLFileContext(wd, checksum_type) as filelists:
            for unit in units:
                filelists.add_unit_metadata(unit)
        with OtherXMLFileContext(wd, checksum_type) as other:
            for unit in units:
                other.add_unit_metadata(unit)

        with RepomdXMLFileContext(wd, checksum_type) as repomd:
            repomd.add_metadata_file_metadata('primary',
                                              primary.metadata_file_path,
                                              primary.checksum)
            repomd.add_metadata_file_metadata('filelists',
                                              filelists.metadata_file_path,
                                              filelists.checksum)
            repomd.add_metadata_file_metadata('other',
                                              other.metadata_file_path,
                                              other.checksum)
Example #8
0
class PrimaryXMLFileContextTests(unittest.TestCase):

    def setUp(self):
        self.working_dir = tempfile.mkdtemp()
        self.context = PrimaryXMLFileContext(self.working_dir, 3)

    def tearDown(self):
        shutil.rmtree(self.working_dir)

    def test_init(self):
        self.assertEquals(self.context.fast_forward, False)
        self.assertEquals(self.context.num_packages, 3)

    def test_add_unit_metadata(self):
        self.context.metadata_file_handle = mock.Mock()
        self.context.add_unit_metadata(mock.Mock(metadata={'repodata': {'primary': 'bar'}}))
        self.context.metadata_file_handle.write.assert_called_once_with('bar')
    def test_primary_closing_tag(self):

        context = PrimaryXMLFileContext(self.metadata_file_dir, 0)
        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)
    def test_primary_unit_metadata(self):

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

        unit = self._generate_rpm("seems-legit")

        context = PrimaryXMLFileContext(self.metadata_file_dir, 1)

        context._open_metadata_file_handle()
        context.add_unit_metadata(unit)
        context._close_metadata_file_handle()

        handle = gzip.open(path, "r")
        content = handle.read()
        handle.close()

        self.assertEqual(content, "PRIMARY")
    def test_primary_opening_tag(self):

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

        context = PrimaryXMLFileContext(self.metadata_file_dir, 0)

        context._open_metadata_file_handle()
        context._write_root_tag_open()
        context._close_metadata_file_handle()

        self.assertNotEqual(os.path.getsize(path), 0)

        primary_handle = gzip.open(path, "r")
        content = primary_handle.read()
        primary_handle.close()

        self.assertTrue(content.startswith("<metadata"))
        self.assertEqual(content.count('xmlns="%s"' % COMMON_NAMESPACE), 1)
        self.assertEqual(content.count('xmlns:rpm="%s"' % RPM_NAMESPACE), 1)
        self.assertEqual(content.count('packages="0"'), 1)
Example #12
0
 def setUp(self):
     self.working_dir = tempfile.mkdtemp()
     self.context = PrimaryXMLFileContext(self.working_dir, 3)
Example #13
0
 def setUp(self):
     self.working_dir = tempfile.mkdtemp()
     self.context = PrimaryXMLFileContext(self.working_dir, 3)
Example #14
0
 def setUp(self):
     self.working_dir = tempfile.mkdtemp()
     self.context = PrimaryXMLFileContext(self.working_dir, 3, checksum_type='sha256')
     self.unit = mock.Mock()
     self.unit.render_primary.return_value = 'somexml'