| 341 | | # |
|---|
| 342 | | # def ascii_xreadlines(self): |
|---|
| 343 | | # """Write some ASCII data to the host and use an |
|---|
| 344 | | # xreadline-like object to retrieve it. |
|---|
| 345 | | # """ |
|---|
| 346 | | # host = self.host |
|---|
| 347 | | # # write data |
|---|
| 348 | | # local_data = 'line 1\nanother line\nyet another line' |
|---|
| 349 | | # self.write_test_data(local_data, 'w') |
|---|
| 350 | | # # open file, skip some bytes |
|---|
| 351 | | # input_ = host.file(self.remote_name, 'r') |
|---|
| 352 | | # data = input_.read(3) |
|---|
| 353 | | # xrl_obj = input_.xreadlines() |
|---|
| 354 | | # self.failUnless(xrl_obj.__class__ is |
|---|
| 355 | | # ftputil._XReadlines) |
|---|
| 356 | | # self.failUnless(xrl_obj._ftp_file.__class__ is |
|---|
| 357 | | # ftputil._FTPFile) |
|---|
| 358 | | # data = xrl_obj[0] |
|---|
| 359 | | # self.assertEqual(data, 'e 1\n') |
|---|
| 360 | | # # try to skip an index |
|---|
| 361 | | # self.assertRaises(RuntimeError, operator.__getitem__, |
|---|
| 362 | | # xrl_obj, 2) |
|---|
| 363 | | # # continue reading |
|---|
| 364 | | # data = xrl_obj[1] |
|---|
| 365 | | # self.assertEqual(data, 'another line\n') |
|---|
| 366 | | # data = xrl_obj[2] |
|---|
| 367 | | # self.assertEqual(data, 'yet another line') |
|---|
| 368 | | # # try to read beyond EOF |
|---|
| 369 | | # self.assertRaises(IndexError, operator.__getitem__, |
|---|
| 370 | | # xrl_obj, 3) |
|---|
| | 341 | |
|---|
| | 342 | def test_ascii_xreadlines(self): |
|---|
| | 343 | """Use an xreadline-like object to retrieve ASCII data.""" |
|---|
| | 344 | host = ftp_host_factory(session_factory=ReadMockSession) |
|---|
| | 345 | # open file, skip some bytes |
|---|
| | 346 | input_ = host.file('dummy', 'r') |
|---|
| | 347 | data = input_.read(3) |
|---|
| | 348 | xrl_obj = input_.xreadlines() |
|---|
| | 349 | self.failUnless(xrl_obj.__class__ is |
|---|
| | 350 | ftputil._XReadlines) |
|---|
| | 351 | self.failUnless(xrl_obj._ftp_file.__class__ is |
|---|
| | 352 | ftputil._FTPFile) |
|---|
| | 353 | data = xrl_obj[0] |
|---|
| | 354 | self.assertEqual(data, 'e 1\n') |
|---|
| | 355 | # try to skip an index |
|---|
| | 356 | self.assertRaises(RuntimeError, operator.__getitem__, |
|---|
| | 357 | xrl_obj, 2) |
|---|
| | 358 | # continue reading |
|---|
| | 359 | data = xrl_obj[1] |
|---|
| | 360 | self.assertEqual(data, 'another line\n') |
|---|
| | 361 | data = xrl_obj[2] |
|---|
| | 362 | self.assertEqual(data, 'yet another line') |
|---|
| | 363 | # try to read beyond EOF |
|---|
| | 364 | self.assertRaises(IndexError, operator.__getitem__, |
|---|
| | 365 | xrl_obj, 3) |
|---|