Пример #1
0
    def test_export_rpm_json(self, mock_isdir, mock_makedirs, mock_open, mock_dump):
        """
        Test that rpm metadata is correctly exported as JSON documents
        """
        # Setup
        metadata = {'repodata': None, 'key': 'value', '_removed_key': 'removed_value'}
        rpm1_key = {'name': 'test1', 'version': '1.0', 'release': '1', 'arch': 'noarch'}
        rpm2_key = {'name': 'test2', 'version': '1.0', 'release': '1', 'arch': 'noarch'}
        rpm1 = AssociatedUnit(ids.TYPE_ID_RPM, rpm1_key, metadata.copy(), None, None, None, None, None)
        rpm2 = AssociatedUnit(ids.TYPE_ID_RPM, rpm2_key, metadata.copy(), None, None, None, None, None)
        rpm_units = [rpm1, rpm2]
        expected_paths = ['/working/dir/test1-1.0-1.noarch.json', '/working/dir/test2-1.0-1.noarch.json']

        # Test
        export_utils.export_rpm_json('/working/dir', rpm_units)
        mock_isdir.assert_called_once_with('/working/dir')
        self.assertEqual(0, mock_makedirs.call_count)
        self.assertEqual(2, mock_open.call_count)
        self.assertEqual(2, mock_dump.call_count)

        self.assertEqual((expected_paths[0], 'w'), mock_open.call_args_list[0][0])
        self.assertEqual((expected_paths[1], 'w'), mock_open.call_args_list[1][0])

        # Expected result is that repodata and anything with a leading _ is removed from the metadata
        metadata.pop('_removed_key')
        metadata.pop('repodata')
        expected_dict1 = {'unit_key': rpm1_key, 'unit_metadata': metadata}
        expected_dict2 = {'unit_key': rpm2_key, 'unit_metadata': metadata}
        self.assertEqual(expected_dict1, mock_dump.call_args_list[0][0][0])
        self.assertEqual(expected_dict2, mock_dump.call_args_list[1][0][0])
Пример #2
0
    def test_working_dir_missing(self, mock_isdir, mock_makedirs):
        """
        Test that when the working directory does not currently exist, it is created
        """
        # Setup
        working_dir = '/some/working/dir'
        mock_isdir.return_value = False

        # Test
        export_utils.export_rpm_json(working_dir, [])
        mock_isdir.assert_called_once_with(working_dir)
        mock_makedirs.assert_called_once_with(working_dir)