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)
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)
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)
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)
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)
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)')
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)