Пример #1
0
    def test_reformat_rpm_no_provides_details(self):
        """
        Since details wraps the provides field in a metadata dict, test that when the provides field
        isn't specified, reformat_rpm doesn't try and reformat the non-existent field.
        """
        test_rpm = {contents.ASSOCIATION_METADATA_KEYWORD: {
            'requires': [
                {'name': 'name.1',
                 'version': 'version.1',
                 'release': 'release.1',
                 'epoch': 'epoch.1',
                 'flags': 'GT'},
            ]
        }}

        # Test
        command = contents.PackageSearchCommand(None, self.context)
        command._reformat_rpm_provides_requires(test_rpm)

        # Verify
        self.assertTrue(isinstance(test_rpm[contents.ASSOCIATION_METADATA_KEYWORD]['requires'][0],
                                   basestring))
        self.assertEqual(test_rpm[contents.ASSOCIATION_METADATA_KEYWORD]['requires'][0],
                         'name.1 > version.1-release.1-epoch.1')
        self.assertFalse('provides' in test_rpm[contents.ASSOCIATION_METADATA_KEYWORD])
Пример #2
0
    def test_reformat_rpm_no_provides(self):
        """
        When a user doesn't specify provides in the --fields option, reformat_rpm should not
        attempt to reformat the field
        """
        # Setup a test rpm without a provides field
        test_rpm = {
            'requires': [
                {'name': 'name.1',
                 'version': 'version.1',
                 'release': 'release.1',
                 'epoch': 'epoch.1',
                 'flags': 'GT'},
            ]

        }

        # Test
        command = contents.PackageSearchCommand(None, self.context)
        command._reformat_rpm_provides_requires(test_rpm)

        # Verify requires was reformatted into a single string
        self.assertTrue(isinstance(test_rpm['requires'][0], basestring))
        self.assertEqual(test_rpm['requires'][0], 'name.1 > version.1-release.1-epoch.1')
        # Confirm there's no 'provides' field
        self.assertFalse('provides' in test_rpm)
Пример #3
0
    def test_reformat_rpm_provides_requires(self):
        # Setup
        test_rpm = {
            'provides': [{'name': 'name.1',
                          'version': 'version.1',
                          'release': 'release.1',
                          'epoch': 'epoch.1',
                          'flags': None},
                         {'name': 'name.2',
                          'version': None,
                          'release': None,
                          'epoch': None,
                          'flags': None},
                         ],
            'requires': [{'name': 'name.1',
                          'version': 'version.1',
                          'release': 'release.1',
                          'epoch': 'epoch.1',
                          'flags': 'GT'},
                         ]
        }

        # Test
        command = contents.PackageSearchCommand(None, self.context)
        command._reformat_rpm_provides_requires(test_rpm)

        # Verify
        self.assertTrue(isinstance(test_rpm['provides'][0], basestring))
        self.assertTrue(isinstance(test_rpm['provides'][1], basestring))
        self.assertTrue(isinstance(test_rpm['requires'][0], basestring))

        self.assertEqual(test_rpm['provides'][0], 'name.1-version.1-release.1-epoch.1')
        self.assertEqual(test_rpm['provides'][1], 'name.2')
        self.assertEqual(test_rpm['requires'][0], 'name.1 > version.1-release.1-epoch.1')
Пример #4
0
    def test_reformat_rpm_no_requires_provides_details(self):
        """
        Test that reformat_rpm correctly handles no 'provides' or 'requires' fields inside the
        metadata dict.
        """
        test_rpm = {contents.ASSOCIATION_METADATA_KEYWORD: {}}

        # Test
        command = contents.PackageSearchCommand(None, self.context)
        command._reformat_rpm_provides_requires(test_rpm)

        # Verify no fields showed up uninvited
        self.assertFalse('provides' in test_rpm[contents.ASSOCIATION_METADATA_KEYWORD])
        self.assertFalse('requires' in test_rpm[contents.ASSOCIATION_METADATA_KEYWORD])
Пример #5
0
    def test_reformat_rpm_no_requires_provides(self):
        """
        When a user doesn't specify provides and requires in the --fields option, reformat_rpm
        should not try and reformat those fields
        """
        test_rpm = {}

        # Test
        command = contents.PackageSearchCommand(None, self.context)
        command._reformat_rpm_provides_requires(test_rpm)

        # Verify no fields showed up uninvited
        self.assertFalse('provides' in test_rpm)
        self.assertFalse('requires' in test_rpm)
Пример #6
0
    def test_reformat_rpm_provides_requires_details(self):
        """
        When the details flag is set, package_search manually applies a filter for the unit data.
        Everything except for the association information is placed in a dict called metadata. This
        tests that the provides and requires sections are reformatted with this second structure.
        """
        # Setup
        test_rpm = {contents.ASSOCIATION_METADATA_KEYWORD: {
            'provides': [
                {'name': 'name.1',
                 'version': 'version.1',
                 'release': 'release.1',
                 'epoch': 'epoch.1',
                 'flags': None},
                {'name': 'name.2',
                 'version': None,
                 'release': None,
                 'epoch': None,
                 'flags': None},
            ],
            'requires': [
                {'name': 'name.1',
                 'version': 'version.1',
                 'release': 'release.1',
                 'epoch': 'epoch.1',
                 'flags': 'GT'},
            ]

        }}

        # Test
        command = contents.PackageSearchCommand(None, self.context)
        command._reformat_rpm_provides_requires(test_rpm)

        # Verify
        self.assertTrue(isinstance(test_rpm[contents.ASSOCIATION_METADATA_KEYWORD]['provides'][0],
                                   basestring))
        self.assertTrue(isinstance(test_rpm[contents.ASSOCIATION_METADATA_KEYWORD]['provides'][1],
                                   basestring))
        self.assertTrue(isinstance(test_rpm[contents.ASSOCIATION_METADATA_KEYWORD]['requires'][0],
                                   basestring))

        self.assertEqual(test_rpm[contents.ASSOCIATION_METADATA_KEYWORD]['provides'][0],
                         'name.1-version.1-release.1-epoch.1')
        self.assertEqual(test_rpm[contents.ASSOCIATION_METADATA_KEYWORD]['provides'][1],
                         'name.2')
        self.assertEqual(test_rpm[contents.ASSOCIATION_METADATA_KEYWORD]['requires'][0],
                         'name.1 > version.1-release.1-epoch.1')
Пример #7
0
 def test_parse_sort(self, mock_parse):
     command = contents.PackageSearchCommand(None, self.context)
     command._parse_sort('test-data')
     mock_parse.assert_called_once_with(DisplayUnitAssociationsCommand, 'test-data')
Пример #8
0
 def test_parse_key_value_override(self, mock_parse):
     command = contents.PackageSearchCommand(None, self.context)
     command._parse_key_value('test-data')
     mock_parse.assert_called_once_with('test-data')
Пример #9
0
 def test_structure(self):
     command = contents.PackageSearchCommand(None, self.context)
     self.assertTrue(isinstance(command, DisplayUnitAssociationsCommand))
     self.assertEqual(command.context, self.context)