def test_no_source_packages(self):
        """
        Test when source_packages is the empty list.
        """
        tree = depsolve._build_provides_tree([])

        self.assertEqual(tree, {})
    def test_empty_provides(self):
        """
        Make sure the function can handle RPMs without provides data.
        """
        source_packages = [(rpm.as_named_tuple, []) for rpm in self.rpms]

        tree = depsolve._build_provides_tree(source_packages)

        self.assertEqual(tree, {})
    def test_with_provides(self):
        source_packages = [(rpm.as_named_tuple, rpm.metadata['provides']) for rpm in self.rpms \
                           if 'provides' in rpm.metadata]

        tree = depsolve._build_provides_tree(source_packages)

        expected_tree = {
            'webbrowser': {
                'firefox': self.rpm_1.as_named_tuple},
            'calculator': {
                'gnome-calculator': self.rpm_4.as_named_tuple,
                'gcalctool': self.rpm_6.as_named_tuple}
        }
        self.assertEqual(tree, expected_tree)