26 lines
632 B
Python
26 lines
632 B
Python
class FileLike:
|
|
def __init__(self, fail_something=True):
|
|
self.is_open = False
|
|
self.was_open = False
|
|
self.did_something = False
|
|
self.fail_something = fail_something
|
|
|
|
def open(self):
|
|
self.was_open = False
|
|
self.is_open = True
|
|
|
|
def close(self):
|
|
self.is_open = False
|
|
self.was_open = True
|
|
|
|
def __enter__(self):
|
|
self.open()
|
|
return self
|
|
|
|
def __exit__(self, *args):
|
|
self.close()
|
|
|
|
def do_something(self):
|
|
self.did_something = True
|
|
if self.fail_something:
|
|
raise Exception("Failed while doing something") |