def setUp(self, _): self.conn = PyonSelectConnection(sentinel.conn_params, sentinel.open_callback, sentinel.reconn_strat) self.conn.parameters = DotDict({'channel_max': 25}) self.conn._channels = {}
def setUp(self, _): self.conn = PyonSelectConnection(sentinel.conn_params, sentinel.open_callback, sentinel.reconn_strat) self.conn.parameters = DotDict({'channel_max':25}) self.conn._channels = {}
class TestPyonSelectConnection(PyonTestCase): @patch('pyon.net.messaging.SelectConnection') def setUp(self, _): self.conn = PyonSelectConnection(sentinel.conn_params, sentinel.open_callback, sentinel.reconn_strat) self.conn.parameters = DotDict({'channel_max': 25}) self.conn._channels = {} def test_mark_bad_channel(self): self.assertEquals(len(self.conn._bad_channel_numbers), 0) self.conn.mark_bad_channel(15) self.assertEquals(len(self.conn._bad_channel_numbers), 1) self.assertIn(15, self.conn._bad_channel_numbers) def test__next_channel_number_first(self): self.assertEquals(self.conn._next_channel_number(), 1) def test__next_channel_number_existing_channels(self): self.conn._channels[1] = sentinel.chan1 self.conn._channels[2] = sentinel.chan2 self.conn._channels[5] = sentinel.chan3 new_ch_num = self.conn._next_channel_number() self.assertEquals(new_ch_num, 3) self.conn._channels[new_ch_num] = sentinel.any new_ch_num = self.conn._next_channel_number() self.assertEquals(new_ch_num, 4) self.conn._channels[new_ch_num] = sentinel.any new_ch_num = self.conn._next_channel_number() self.assertEquals(new_ch_num, 6) self.conn._channels[new_ch_num] = sentinel.any def test__next_channel_number_existing_channels_and_bad(self): self.conn._channels[1] = sentinel.chan1 self.conn._channels[2] = sentinel.chan2 self.conn._channels[5] = sentinel.chan3 self.conn.mark_bad_channel(3) self.conn.mark_bad_channel(6) new_ch_num = self.conn._next_channel_number() self.assertEquals(new_ch_num, 4) self.conn._channels[new_ch_num] = sentinel.any new_ch_num = self.conn._next_channel_number() self.assertEquals(new_ch_num, 7) self.conn._channels[new_ch_num] = sentinel.any def test__next_channel_number_after_channel_is_freed(self): self.conn._channels[1] = sentinel.chan1 self.conn._channels[2] = sentinel.chan2 self.conn._channels[5] = sentinel.chan3 new_ch_num = self.conn._next_channel_number() self.assertEquals(new_ch_num, 3) self.conn._channels[new_ch_num] = sentinel.any # free up a channel del self.conn._channels[1] # acquire again, should be 1 new_ch_num = self.conn._next_channel_number() self.assertEquals(new_ch_num, 1) self.conn._channels[new_ch_num] = sentinel.any def test__next_channel_number_all_used_by_channels(self): self.conn._channels = {x: sentinel.any for x in xrange(1, 26)} self.assertRaises(NoFreeChannels, self.conn._next_channel_number) def test__next_channel_number_all_used_either_channels_or_bad(self): for x in xrange(1, 26): if x % 2: self.conn._channels[x] = sentinel.any else: self.conn.mark_bad_channel(x) self.assertRaises(NoFreeChannels, self.conn._next_channel_number) def text__next_channel_number_adds_to_pending(self): ch = self.conn._next_channel_number() self.assertIn(ch, self.conn._pending) ch2 = self.conn._next_channel_number() self.assertNotEquals(ch, ch2)
class TestPyonSelectConnection(PyonTestCase): @patch('pyon.net.messaging.SelectConnection') def setUp(self, _): self.conn = PyonSelectConnection(sentinel.conn_params, sentinel.open_callback, sentinel.reconn_strat) self.conn.parameters = DotDict({'channel_max':25}) self.conn._channels = {} def test_mark_bad_channel(self): self.assertEquals(len(self.conn._bad_channel_numbers), 0) self.conn.mark_bad_channel(15) self.assertEquals(len(self.conn._bad_channel_numbers), 1) self.assertIn(15, self.conn._bad_channel_numbers) def test__next_channel_number_first(self): self.assertEquals(self.conn._next_channel_number(), 1) def test__next_channel_number_existing_channels(self): self.conn._channels[1] = sentinel.chan1 self.conn._channels[2] = sentinel.chan2 self.conn._channels[5] = sentinel.chan3 new_ch_num = self.conn._next_channel_number() self.assertEquals(new_ch_num, 3) self.conn._channels[new_ch_num] = sentinel.any new_ch_num = self.conn._next_channel_number() self.assertEquals(new_ch_num, 4) self.conn._channels[new_ch_num] = sentinel.any new_ch_num = self.conn._next_channel_number() self.assertEquals(new_ch_num, 6) self.conn._channels[new_ch_num] = sentinel.any def test__next_channel_number_existing_channels_and_bad(self): self.conn._channels[1] = sentinel.chan1 self.conn._channels[2] = sentinel.chan2 self.conn._channels[5] = sentinel.chan3 self.conn.mark_bad_channel(3) self.conn.mark_bad_channel(6) new_ch_num = self.conn._next_channel_number() self.assertEquals(new_ch_num, 4) self.conn._channels[new_ch_num] = sentinel.any new_ch_num = self.conn._next_channel_number() self.assertEquals(new_ch_num, 7) self.conn._channels[new_ch_num] = sentinel.any def test__next_channel_number_after_channel_is_freed(self): self.conn._channels[1] = sentinel.chan1 self.conn._channels[2] = sentinel.chan2 self.conn._channels[5] = sentinel.chan3 new_ch_num = self.conn._next_channel_number() self.assertEquals(new_ch_num, 3) self.conn._channels[new_ch_num] = sentinel.any # free up a channel del self.conn._channels[1] # acquire again, should be 1 new_ch_num = self.conn._next_channel_number() self.assertEquals(new_ch_num, 1) self.conn._channels[new_ch_num] = sentinel.any def test__next_channel_number_all_used_by_channels(self): self.conn._channels = {x:sentinel.any for x in xrange(1, 26)} self.assertRaises(NoFreeChannels, self.conn._next_channel_number) def test__next_channel_number_all_used_either_channels_or_bad(self): for x in xrange(1, 26): if x % 2: self.conn._channels[x] = sentinel.any else: self.conn.mark_bad_channel(x) self.assertRaises(NoFreeChannels, self.conn._next_channel_number)