81 config = self._dummy_config()
82 contributors = self._dummy_contributors()
86 self.assertEqual(0, state.next_contributor_index)
88 START_TIME + CONTRIBUTION_INTERVAL,
89 state.next_contributor_deadline)
92 self._test_json_serialization(state)
96 START_TIME + (CONTRIBUTION_INTERVAL / 2),
97 CONTRIBUTION_INTERVAL)
98 self.assertEqual(0, state.next_contributor_index)
100 START_TIME + CONTRIBUTION_INTERVAL,
101 state.next_contributor_deadline)
102 self.assertFalse(state.have_all_contributions())
105 self._test_json_serialization(state)
109 START_TIME + CONTRIBUTION_INTERVAL + 0.1,
110 CONTRIBUTION_INTERVAL)
111 self.assertEqual(1, state.next_contributor_index)
113 START_TIME + 0.1 + 2 * CONTRIBUTION_INTERVAL,
114 state.next_contributor_deadline)
115 self.assertFalse(state.have_all_contributions())
118 self._test_json_serialization(state)
121 state.received_contribution(
122 START_TIME + 0.1 + 2.5 * CONTRIBUTION_INTERVAL)
123 self.assertEqual(2, state.next_contributor_index)
125 START_TIME + 0.1 + 2.5 * CONTRIBUTION_INTERVAL,
126 state.next_contributor_deadline)
127 self.assertFalse(state.have_all_contributions())
130 self._test_json_serialization(state)
134 START_TIME + 0.2 + 2.5 * CONTRIBUTION_INTERVAL,
135 CONTRIBUTION_INTERVAL)
136 self.assertEqual(3, state.next_contributor_index)
138 START_TIME + 0.2 + 3.5 * CONTRIBUTION_INTERVAL,
139 state.next_contributor_deadline)
140 self.assertFalse(state.have_all_contributions())
143 state.received_contribution(
144 START_TIME + 0.2 + 3.0 * CONTRIBUTION_INTERVAL)
145 self.assertTrue(state.have_all_contributions())
146 self.assertEqual(0, state.next_contributor_deadline)
149 self._test_json_serialization(state)