Exemplo n.º 1
0
    def test___eq___false(self):
        """
        Test the __eq__ method with dissimilar Requirements.
        """
        r_1 = depsolve.Requirement('test', 1, '1.0.1')
        r_2 = depsolve.Requirement('test', 0, '1.0.2')
        r_3 = depsolve.Requirement('test_2', 0, '1.0.2')

        self.assertFalse(r_1 == r_2)
        # Make sure that the name being different makes the comparison not equal
        self.assertFalse(r_2 == r_3)
Exemplo n.º 2
0
    def test___cmp___mine_greater_other(self):
        # Test that the __cmp__ method correctly measures one Requirement being greater than the
        # other.

        # Put a tricky z bit on this one that should reduce to 1.0.1, just to make sure that it is
        # correctly evaluated
        r_1 = depsolve.Requirement('test', 1, '1.0.01', '23')
        r_2 = depsolve.Requirement('test', 0, '1.0.2', '23')

        # This should return a negative value
        self.assertTrue(r_1.__cmp__(r_2) > 0)
Exemplo n.º 3
0
    def test___cmp___disparate_names(self):
        """
        Test that the __cmp__ method correctly raises ValueError when the names are not equal.
        """
        # Put a tricky z bit on this one that should reduce to 1.0.1, just to make sure that it is
        # correctly evaluated
        r_1 = depsolve.Requirement('test_1', 0, '1.0.01', '23')
        r_2 = depsolve.Requirement('test_2', 0, '1.0.1', '23')

        # This should return a negative value
        self.assertRaises(ValueError, r_1.__cmp__, r_2)
Exemplo n.º 4
0
    def test___cmp___mine_equal_other(self):
        """
        Test that the __cmp__ method correctly measures one Requirement being equal to the other.
        """
        # Put a tricky z bit on this one that should reduce to 1.0.1, just to make sure that it is
        # correctly evaluated
        r_1 = depsolve.Requirement('test', 0, '1.0.01', '23')
        r_2 = depsolve.Requirement('test', 0, '1.0.1', '23')

        # This should return a negative value
        self.assertEqual(r_1.__cmp__(r_2), 0)
Exemplo n.º 5
0
    def test_provides_matches_requires(self):
        # Assert that match correctly handles provides that match requires.
        r_1 = depsolve.Requirement('webbrowser')
        r_2 = depsolve.Requirement('calculator')
        reqs = [r_1, r_2]
        self.unit_generator.return_value = self._rpm_generator()

        satisfactions = self.solver.match(reqs)

        # The newer version of firefox, gnome-calculator, and gcalctool should be the members of
        # this set
        expected_satisfactions = set([self.rpm_1, self.rpm_4, self.rpm_6])
        self.assertEqual(satisfactions, expected_satisfactions)
Exemplo n.º 6
0
    def test___repr__(self):
        # Test the __repr__() method.
        r = depsolve.Requirement('test', 1, '1.0.1', '2', depsolve.Requirement.GE)

        repr = r.__repr__()

        self.assertEqual(repr, 'Require(name=test, epoch=1, version=1.0.1, release=2, flags=GE)')
Exemplo n.º 7
0
    def test_fills_requirement_lt_true(self):
        # Test fills_requirement() with LT that is True.
        rpm = _make_unit(models.RPM, name='firefox', epoch=0, version='23.0.0', release='1',
                         arch='x86_64', checksumtype='sha256', checksum='some_sum')
        requirement = depsolve.Requirement('firefox', 0, '23.0.1', '1', depsolve.Requirement.LT)

        self.assertEqual(requirement.fills_requirement(rpm), True)
Exemplo n.º 8
0
    def test_fills_requirement_lt_true(self):
        """
        Test fills_requirement() with LT that is True.
        """
        rpm = models.RPM('firefox', 0, '23.0.0', '1', 'x86_64', 'sha256', 'some_sum', {})
        requirement = depsolve.Requirement('firefox', 0, '23.0.1', '1', depsolve.Requirement.LT)

        self.assertEqual(requirement.fills_requirement(rpm), True)
Exemplo n.º 9
0
    def test_fills_requirement_le_false(self):
        """
        Test fills_requirement() with LE that is False.
        """
        rpm = models.RPM('firefox', 0, '23.0.2', '1', 'x86_64', 'sha256', 'some_sum', {})
        requirement = depsolve.Requirement('firefox', 0, '23.0.1', '1', depsolve.Requirement.LE)

        self.assertEqual(requirement.fills_requirement(rpm), False)
Exemplo n.º 10
0
    def test_fills_requirement_eq_versioned_true(self):
        # Test fille_requirement() when the EQ flag is set and it is versioned for the case
        # when the RPM does meet the requirement.
        rpm = _make_unit(models.RPM, name='firefox', epoch=0, version='23.0', release='1',
                         arch='x86_64', checksumtype='sha256', checksum='some_sum')
        requirement = depsolve.Requirement('firefox', 0, '23.0', '1', flags=depsolve.Requirement.EQ)

        self.assertEqual(requirement.fills_requirement(rpm), True)
Exemplo n.º 11
0
    def test_fills_requirement_name_match_versioned(self):
        # A package with the name that the unversioned Requirement
        # specifies should meet the Requirement.
        rpm = _make_unit(models.RPM, name='firefox', epoch=0, version='23.0', release='1',
                         arch='x86_64', checksumtype='sha256', checksum='some_sum')
        requirement = depsolve.Requirement('firefox')

        self.assertEqual(requirement.fills_requirement(rpm), True)
Exemplo n.º 12
0
    def test_fills_requirement_eq_versioned_true(self):
        """
        Test fille_requirement() when the EQ flag is set and it is versioned for the case when the
        RPM does meet the requirement.
        """
        rpm = models.RPM('firefox', 0, '23.0', '1', 'x86_64', 'sha256', 'some_sum', {})
        requirement = depsolve.Requirement('firefox', 0, '23.0', '1', flags=depsolve.Requirement.EQ)

        self.assertEqual(requirement.fills_requirement(rpm), True)
Exemplo n.º 13
0
    def test_fills_requirement_name_match_versioned(self):
        """
        A package with the name that the unversioned Requirement specifies should meet the
        Requirement.
        """
        rpm = models.RPM('firefox', 0, '23.0', '1', 'x86_64', 'sha256', 'some_sum', {})
        requirement = depsolve.Requirement('firefox')

        self.assertEqual(requirement.fills_requirement(rpm), True)
Exemplo n.º 14
0
    def test_fills_requirement_name_mismatch(self):
        # A package with a different name than the Requirement's name
        # should not meet the Requirement.
        rpm = _make_unit(models.RPM, name='firefox', epoch=0, version='23.0', release='1',
                         arch='x86_64', checksumtype='sha256', checksum='some_sum')
        requirement = depsolve.Requirement('openssh-server', 0, '23.0', '1')

        # Because 'firefox' is different than 'openssh-server', the rpm doesn't satisfy the
        # requirement even though the versions are equal
        self.assertEqual(requirement.fills_requirement(rpm), False)
Exemplo n.º 15
0
    def test_fills_requirement_ge_true(self):
        """
        Test fills_requirement() with GE that is True.
        """
        rpm_1 = models.RPM('firefox', 0, '23.0.2', '1', 'x86_64', 'sha256', 'some_sum', {})
        rpm_2 = models.RPM('firefox', 0, '23.0.1', '1', 'x86_64', 'sha256', 'some_sum', {})
        requirement = depsolve.Requirement('firefox', 0, '23.0.1', '1', depsolve.Requirement.GE)

        self.assertEqual(requirement.fills_requirement(rpm_1), True)
        self.assertEqual(requirement.fills_requirement(rpm_2), True)
Exemplo n.º 16
0
    def test_fills_requirement_name_mismatch(self):
        """
        A package with a different name than the Requirement's name should not meet the Requirement.
        """
        rpm = models.RPM('firefox', 0, '23.0', '1', 'x86_64', 'sha256', 'some_sum', {})
        requirement = depsolve.Requirement('openssh-server', 0, '23.0', '1')

        # Because 'firefox' is different than 'openssh-server', the rpm doesn't satisfy the
        # requirement even though the versions are equal
        self.assertEqual(requirement.fills_requirement(rpm), False)
Exemplo n.º 17
0
    def test___init___no_flags(self):
        # Test the __init__() method with no flags, which should choose EQ by default.
        name = 'test'
        epoch = 0
        version = '1.0.1'
        release = '21'

        r = depsolve.Requirement(name, epoch, version, release)

        self.assertEqual(r.name, name)
        self.assertEqual(r.epoch, epoch)
        self.assertEqual(r.version, version)
        self.assertEqual(r.release, release)
        self.assertEqual(r.flags, depsolve.Requirement.EQ)
Exemplo n.º 18
0
    def test_fills_requirement_lt_false(self):
        """
        Test fills_requirement() with LT that is False.
        """
        rpm = models.RPM(name='firefox',
                         epoch=0,
                         version='23.0.2',
                         release='1',
                         arch='x86_64',
                         checksumtype='sha256',
                         checksum='some_sum')
        requirement = depsolve.Requirement('firefox', 0, '23.0.1', '1',
                                           depsolve.Requirement.LT)

        self.assertEqual(requirement.fills_requirement(rpm), False)
Exemplo n.º 19
0
    def test_fills_requirement_eq_versioned_false(self):
        """
        Test fille_requirement() when the EQ flag is set and it is versioned for the case when the
        RPM does not meet the requirement.
        """
        rpm = models.RPM(name='firefox',
                         epoch=0,
                         version='23.0.2',
                         release='1',
                         arch='x86_64',
                         checksumtype='sha256',
                         checksum='some_sum')
        requirement = depsolve.Requirement('firefox',
                                           0,
                                           '23.0.1',
                                           '1',
                                           flags=depsolve.Requirement.EQ)

        self.assertEqual(requirement.fills_requirement(rpm), False)
Exemplo n.º 20
0
    def test_fills_requirement_le_true(self):
        """
        Test fills_requirement() with LE that is True.
        """
        rpm_1 = models.RPM(name='firefox',
                           epoch=0,
                           version='23.0.0',
                           release='1',
                           arch='x86_64',
                           checksumtype='sha256',
                           checksum='some_sum')
        rpm_2 = models.RPM(name='firefox',
                           epoch=0,
                           version='23.0.1',
                           release='1',
                           arch='x86_64',
                           checksumtype='sha256',
                           checksum='some_sum')
        requirement = depsolve.Requirement('firefox', 0, '23.0.1', '1',
                                           depsolve.Requirement.LE)

        self.assertEqual(requirement.fills_requirement(rpm_1), True)
        self.assertEqual(requirement.fills_requirement(rpm_2), True)
Exemplo n.º 21
0
 def test_is_versioned_true(self):
     # Test the is_versioned() method for the True case.
     self.assertEqual(depsolve.Requirement('test', version='1.0.1').is_versioned, True)
Exemplo n.º 22
0
 def test_is_versioned_false(self):
     # Test the is_versioned() method for the False case.
     self.assertEqual(
         depsolve.Requirement('test', version='').is_versioned, False)
     self.assertEqual(
         depsolve.Requirement('test', version=None).is_versioned, False)
Exemplo n.º 23
0
    def test___ne___false(self):
        # Test the __ne__ method with equal Requirements.
        r_1 = depsolve.Requirement('test', 0, '1.0.1')
        r_2 = depsolve.Requirement('test', 0, '1.0.1')

        self.assertFalse(r_1 != r_2)
Exemplo n.º 24
0
    def test__eq__leading_release_zeroes(self):
        r_1 = depsolve.Requirement('test', epoch='0', version='0', release='1')
        r_2 = depsolve.Requirement('test', epoch='0', version='0', release='01')

        self.assertTrue(r_1 == r_2)
Exemplo n.º 25
0
    def test___eq___true(self):
        # Test the __eq__ method with equal Requirements.
        r_1 = depsolve.Requirement('test', 0, '1.0.1')
        r_2 = depsolve.Requirement('test', 0, '1.0.1')

        self.assertTrue(r_1 == r_2)