class TestPachinko(Harness): def setUp(self): Harness.setUp(self) self.payday = Payday(self.db) def test_get_participants_gets_participants(self): a_team = self.make_participant('a_team', claimed_time='now', number='plural', balance=20) a_team.add_member(self.make_participant('alice', claimed_time='now')) a_team.add_member(self.make_participant('bob', claimed_time='now')) ts_start = self.payday.start() actual = [p.username for p in self.payday.get_participants(ts_start)] expected = ['a_team', 'alice', 'bob'] assert actual == expected def test_pachinko_pachinkos(self): a_team = self.make_participant('a_team', claimed_time='now', number='plural', balance=20, pending=0) a_team.add_member(self.make_participant('alice', claimed_time='now', balance=0, pending=0)) a_team.add_member(self.make_participant('bob', claimed_time='now', balance=0, pending=0)) ts_start = self.payday.start() participants = self.payday.genparticipants(ts_start, ts_start) self.payday.pachinko(ts_start, participants)
class TestPachinko(Harness): def setUp(self): Harness.setUp(self) self.payday = Payday(self.db) def test_get_participants_gets_participants(self): a_team = self.make_participant('a_team', claimed_time='now', number='plural', balance=20) a_team.add_member(self.make_participant('alice', claimed_time='now')) a_team.add_member(self.make_participant('bob', claimed_time='now')) ts_start = self.payday.start() actual = [p.username for p in self.payday.get_participants(ts_start)] expected = ['a_team', 'alice', 'bob'] assert actual == expected def test_pachinko_pachinkos(self): a_team = self.make_participant('a_team', claimed_time='now', number='plural', balance=20, pending=0) a_team.add_member( self.make_participant('alice', claimed_time='now', balance=0, pending=0)) a_team.add_member( self.make_participant('bob', claimed_time='now', balance=0, pending=0)) ts_start = self.payday.start() participants = self.payday.genparticipants(ts_start, ts_start) self.payday.pachinko(ts_start, participants)
class TestPachinko(Harness): def setUp(self): Harness.setUp(self) self.payday = Payday(self.db) def test_get_participants_gets_participants(self): a_team = self.make_participant('a_team', claimed_time='now', number='plural', balance=20) a_team.add_member(self.make_participant('alice', claimed_time='now')) a_team.add_member(self.make_participant('bob', claimed_time='now')) ts_start = self.payday.start() actual = [p.username for p in self.payday.get_participants(ts_start)] expected = ['a_team', 'alice', 'bob'] assert actual == expected def test_pachinko_pachinkos(self): a_team = self.make_participant('a_team', claimed_time='now', number='plural', balance=20, \ pending=0) a_team.add_member(self.make_participant('alice', claimed_time='now', balance=0, pending=0)) a_team.add_member(self.make_participant('bob', claimed_time='now', balance=0, pending=0)) ts_start = self.payday.start() participants = self.payday.genparticipants(ts_start, LOOP_PACHINKO) self.payday.pachinko(ts_start, participants) assert Participant.from_username('alice').pending == D('0.01') assert Participant.from_username('bob').pending == D('0.01') def test_pachinko_sees_current_take(self): a_team = self.make_participant('a_team', claimed_time='now', number='plural', balance=20, \ pending=0) alice = self.make_participant('alice', claimed_time='now', balance=0, pending=0) a_team.add_member(alice) a_team.set_take_for(alice, D('1.00'), alice) ts_start = self.payday.start() participants = self.payday.genparticipants(ts_start, LOOP_PACHINKO) self.payday.pachinko(ts_start, participants) assert Participant.from_username('alice').pending == D('1.00') def test_pachinko_ignores_take_set_after_payday_starts(self): a_team = self.make_participant('a_team', claimed_time='now', number='plural', balance=20, \ pending=0) alice = self.make_participant('alice', claimed_time='now', balance=0, pending=0) a_team.add_member(alice) a_team.set_take_for(alice, D('0.33'), alice) ts_start = self.payday.start() a_team.set_take_for(alice, D('1.00'), alice) participants = self.payday.genparticipants(ts_start, LOOP_PACHINKO) self.payday.pachinko(ts_start, participants) assert Participant.from_username('alice').pending == D('0.33') def test_pachinko_ignores_take_thats_already_been_processed(self): a_team = self.make_participant('a_team', claimed_time='now', number='plural', balance=20, \ pending=0) alice = self.make_participant('alice', claimed_time='now', balance=0, pending=0) a_team.add_member(alice) a_team.set_take_for(alice, D('0.33'), alice) ts_start = self.payday.start() a_team.set_take_for(alice, D('1.00'), alice) for i in range(4): participants = self.payday.genparticipants(ts_start, LOOP_PACHINKO) self.payday.pachinko(ts_start, participants) assert Participant.from_username('alice').pending == D('0.33')
class TestPachinko(Harness): def setUp(self): Harness.setUp(self) self.payday = Payday(self.db) def test_get_participants_gets_participants(self): a_team = self.make_participant("a_team", claimed_time="now", number="plural", balance=20) a_team.add_member(self.make_participant("alice", claimed_time="now")) a_team.add_member(self.make_participant("bob", claimed_time="now")) ts_start = self.payday.start() actual = [p.username for p in self.payday.get_participants(ts_start)] expected = ["a_team", "alice", "bob"] assert actual == expected def test_pachinko_pachinkos(self): a_team = self.make_participant("a_team", claimed_time="now", number="plural", balance=20, pending=0) a_team.add_member(self.make_participant("alice", claimed_time="now", balance=0, pending=0)) a_team.add_member(self.make_participant("bob", claimed_time="now", balance=0, pending=0)) ts_start = self.payday.start() participants = self.payday.genparticipants(ts_start, LOOP_PACHINKO) self.payday.pachinko(ts_start, participants) assert Participant.from_username("alice").pending == D("0.01") assert Participant.from_username("bob").pending == D("0.01") def test_pachinko_sees_current_take(self): a_team = self.make_participant("a_team", claimed_time="now", number="plural", balance=20, pending=0) alice = self.make_participant("alice", claimed_time="now", balance=0, pending=0) a_team.add_member(alice) a_team.set_take_for(alice, D("1.00"), alice) ts_start = self.payday.start() participants = self.payday.genparticipants(ts_start, LOOP_PACHINKO) self.payday.pachinko(ts_start, participants) assert Participant.from_username("alice").pending == D("1.00") def test_pachinko_ignores_take_set_after_payday_starts(self): a_team = self.make_participant("a_team", claimed_time="now", number="plural", balance=20, pending=0) alice = self.make_participant("alice", claimed_time="now", balance=0, pending=0) a_team.add_member(alice) a_team.set_take_for(alice, D("0.33"), alice) ts_start = self.payday.start() a_team.set_take_for(alice, D("1.00"), alice) participants = self.payday.genparticipants(ts_start, LOOP_PACHINKO) self.payday.pachinko(ts_start, participants) assert Participant.from_username("alice").pending == D("0.33") def test_pachinko_ignores_take_thats_already_been_processed(self): a_team = self.make_participant("a_team", claimed_time="now", number="plural", balance=20, pending=0) alice = self.make_participant("alice", claimed_time="now", balance=0, pending=0) a_team.add_member(alice) a_team.set_take_for(alice, D("0.33"), alice) ts_start = self.payday.start() a_team.set_take_for(alice, D("1.00"), alice) for i in range(4): participants = self.payday.genparticipants(ts_start, LOOP_PACHINKO) self.payday.pachinko(ts_start, participants) assert Participant.from_username("alice").pending == D("0.33")
class TestPachinko(Harness): def setUp(self): Harness.setUp(self) self.payday = Payday(self.db) def test_get_participants_gets_participants(self): a_team = self.make_participant('a_team', claimed_time='now', number='plural', balance=20) a_team.add_member(self.make_participant('alice', claimed_time='now')) a_team.add_member(self.make_participant('bob', claimed_time='now')) ts_start = self.payday.start() actual = [p.username for p in self.payday.get_participants(ts_start)] expected = ['a_team', 'alice', 'bob'] assert actual == expected def test_pachinko_pachinkos(self): a_team = self.make_participant('a_team', claimed_time='now', number='plural', balance=20, \ pending=0) a_team.add_member( self.make_participant('alice', claimed_time='now', balance=0, pending=0)) a_team.add_member( self.make_participant('bob', claimed_time='now', balance=0, pending=0)) ts_start = self.payday.start() participants = self.payday.genparticipants(ts_start, LOOP_PACHINKO) self.payday.pachinko(ts_start, participants) assert Participant.from_username('alice').pending == D('0.01') assert Participant.from_username('bob').pending == D('0.01') def test_pachinko_sees_current_take(self): a_team = self.make_participant('a_team', claimed_time='now', number='plural', balance=20, \ pending=0) alice = self.make_participant('alice', claimed_time='now', balance=0, pending=0) a_team.add_member(alice) a_team.set_take_for(alice, D('1.00'), alice) ts_start = self.payday.start() participants = self.payday.genparticipants(ts_start, LOOP_PACHINKO) self.payday.pachinko(ts_start, participants) assert Participant.from_username('alice').pending == D('1.00') def test_pachinko_ignores_take_set_after_payday_starts(self): a_team = self.make_participant('a_team', claimed_time='now', number='plural', balance=20, \ pending=0) alice = self.make_participant('alice', claimed_time='now', balance=0, pending=0) a_team.add_member(alice) a_team.set_take_for(alice, D('0.33'), alice) ts_start = self.payday.start() a_team.set_take_for(alice, D('1.00'), alice) participants = self.payday.genparticipants(ts_start, LOOP_PACHINKO) self.payday.pachinko(ts_start, participants) assert Participant.from_username('alice').pending == D('0.33') def test_pachinko_ignores_take_thats_already_been_processed(self): a_team = self.make_participant('a_team', claimed_time='now', number='plural', balance=20, \ pending=0) alice = self.make_participant('alice', claimed_time='now', balance=0, pending=0) a_team.add_member(alice) a_team.set_take_for(alice, D('0.33'), alice) ts_start = self.payday.start() a_team.set_take_for(alice, D('1.00'), alice) for i in range(4): participants = self.payday.genparticipants(ts_start, LOOP_PACHINKO) self.payday.pachinko(ts_start, participants) assert Participant.from_username('alice').pending == D('0.33')