| | 167 | |
| | 168 | |
| | 169 | def testNoRetries(self): |
| | 170 | self.client.retries=0 |
| | 171 | self.assertRaises(Timeout, self.client._SendPacket, None, None) |
| | 172 | |
| | 173 | |
| | 174 | def testSingleRetry(self): |
| | 175 | self.client.retries=1 |
| | 176 | self.client.timeout=0 |
| | 177 | packet=MockPacket(AccessRequest) |
| | 178 | self.assertRaises(Timeout, self.client._SendPacket, packet, 432) |
| | 179 | self.assertEqual(self.client._socket.output, |
| | 180 | [("request packet", (self.server, 432))]) |
| | 181 | |
| | 182 | |
| | 183 | def testDoubleRetry(self): |
| | 184 | self.client.retries=2 |
| | 185 | self.client.timeout=0 |
| | 186 | packet=MockPacket(AccessRequest) |
| | 187 | self.assertRaises(Timeout, self.client._SendPacket, packet, 432) |
| | 188 | self.assertEqual(self.client._socket.output, |
| | 189 | [("request packet", (self.server, 432)), |
| | 190 | ("request packet", (self.server, 432))]) |
| | 191 | |
| | 192 | |
| | 193 | def testAuthDelay(self): |
| | 194 | self.client.retries=2 |
| | 195 | self.client.timeout=1 |
| | 196 | packet=MockPacket(AccessRequest) |
| | 197 | self.assertRaises(Timeout, self.client._SendPacket, packet, 432) |
| | 198 | self.failIf(packet.has_key("Acct-Delay-Time")) |
| | 199 | |
| | 200 | |
| | 201 | def testSingleAccountDelay(self): |
| | 202 | self.client.retries=2 |
| | 203 | self.client.timeout=1 |
| | 204 | packet=MockPacket(AccountingRequest) |
| | 205 | self.assertRaises(Timeout, self.client._SendPacket, packet, 432) |
| | 206 | self.assertEqual(packet["Acct-Delay-Time"], [1]) |
| | 207 | |
| | 208 | |
| | 209 | def testDoubleAccountDelay(self): |
| | 210 | self.client.retries=3 |
| | 211 | self.client.timeout=1 |
| | 212 | packet=MockPacket(AccountingRequest) |
| | 213 | self.assertRaises(Timeout, self.client._SendPacket, packet, 432) |
| | 214 | self.assertEqual(packet["Acct-Delay-Time"], [2]) |
| | 215 | |
| | 216 | |
| | 217 | def testIgnorePacketError(self): |
| | 218 | self.client.retries=1 |
| | 219 | self.client.timeout=1 |
| | 220 | self.client._socket=MockSocket(1, 2, "valid reply") |
| | 221 | packet=MockPacket(AccountingRequest, verify=True, error=True) |
| | 222 | self.assertRaises(Timeout, self.client._SendPacket, packet, 432) |
| | 223 | |
| | 224 | |
| | 225 | def testValidReply(self): |
| | 226 | self.client.retries=1 |
| | 227 | self.client.timeout=1 |
| | 228 | self.client._socket=MockSocket(1, 2, "valid reply") |
| | 229 | packet=MockPacket(AccountingRequest, verify=True) |
| | 230 | reply=self.client._SendPacket(packet, 432) |
| | 231 | self.failUnless(reply is packet.reply) |
| | 232 | |
| | 233 | |
| | 234 | def testInvalidReply(self): |
| | 235 | self.client.retries=1 |
| | 236 | self.client.timeout=1 |
| | 237 | self.client._socket=MockSocket(1, 2, "invalid reply") |
| | 238 | packet=MockPacket(AccountingRequest, verify=False) |
| | 239 | self.assertRaises(Timeout, self.client._SendPacket, packet, 432) |
| | 240 | |
| | 241 | |
| | 242 | |
| | 243 | class OtherTests(unittest.TestCase): |
| | 244 | def setUp(self): |
| | 245 | self.server=object() |
| | 246 | self.client=Client(self.server, secret="zeer geheim") |
| | 247 | |
| | 248 | |
| | 249 | def testCreateAuthPacket(self): |
| | 250 | packet=self.client.CreateAuthPacket(id=15) |
| | 251 | self.failUnless(isinstance(packet, AuthPacket)) |
| | 252 | self.failUnless(packet.dict is self.client.dict) |
| | 253 | self.assertEqual(packet.id, 15) |
| | 254 | self.assertEqual(packet.secret, "zeer geheim") |
| | 255 | |
| | 256 | |
| | 257 | def testCreateAcctPacket(self): |
| | 258 | packet=self.client.CreateAcctPacket(id=15) |
| | 259 | self.failUnless(isinstance(packet, AcctPacket)) |
| | 260 | self.failUnless(packet.dict is self.client.dict) |
| | 261 | self.assertEqual(packet.id, 15) |
| | 262 | self.assertEqual(packet.secret, "zeer geheim") |
| | 263 | |