A class that mocks out fileinput.FileInput for use during unit tests
| 497 | |
| 498 | |
| 499 | class MockFileInput: |
| 500 | """A class that mocks out fileinput.FileInput for use during unit tests""" |
| 501 | |
| 502 | def __init__(self, files=None, inplace=False, backup="", *, |
| 503 | mode="r", openhook=None, encoding=None, errors=None): |
| 504 | self.files = files |
| 505 | self.inplace = inplace |
| 506 | self.backup = backup |
| 507 | self.mode = mode |
| 508 | self.openhook = openhook |
| 509 | self.encoding = encoding |
| 510 | self.errors = errors |
| 511 | self._file = None |
| 512 | self.invocation_counts = collections.defaultdict(lambda: 0) |
| 513 | self.return_values = {} |
| 514 | |
| 515 | def close(self): |
| 516 | self.invocation_counts["close"] += 1 |
| 517 | |
| 518 | def nextfile(self): |
| 519 | self.invocation_counts["nextfile"] += 1 |
| 520 | return self.return_values["nextfile"] |
| 521 | |
| 522 | def filename(self): |
| 523 | self.invocation_counts["filename"] += 1 |
| 524 | return self.return_values["filename"] |
| 525 | |
| 526 | def lineno(self): |
| 527 | self.invocation_counts["lineno"] += 1 |
| 528 | return self.return_values["lineno"] |
| 529 | |
| 530 | def filelineno(self): |
| 531 | self.invocation_counts["filelineno"] += 1 |
| 532 | return self.return_values["filelineno"] |
| 533 | |
| 534 | def fileno(self): |
| 535 | self.invocation_counts["fileno"] += 1 |
| 536 | return self.return_values["fileno"] |
| 537 | |
| 538 | def isfirstline(self): |
| 539 | self.invocation_counts["isfirstline"] += 1 |
| 540 | return self.return_values["isfirstline"] |
| 541 | |
| 542 | def isstdin(self): |
| 543 | self.invocation_counts["isstdin"] += 1 |
| 544 | return self.return_values["isstdin"] |
| 545 | |
| 546 | class BaseFileInputGlobalMethodsTest(unittest.TestCase): |
| 547 | """Base class for unit tests for the global function of |
no outgoing calls
searching dependent graphs…