def test_grant(self):
     ok = FakeAchievement(can_unlock=True)
     not_ok = FakeAchievement(can_unlock=False)
     processor = Processor([ok, not_ok])
     sprinter = FakeSprinter()
     sprinters_and_changes = [(sprinter, [], [])]
     processor.grant(sprinters_and_changes)
     expect(sprinter.achievements) == [ok]
 def test_earns_only_unlockable_achievements(self):
     ok = FakeAchievement()
     not_ok = FakeAchievement(can_unlock=False)
     achievements = [ok, not_ok]
     sprinter_changes = [SprinterChange()]
     processor = Processor(achievements)
     earned = processor.earned_achievements(sprinter_changes, [])
     expect(earned) == [ok]