blob: b70c6e09763dd326bf5dba1d5fe10f6821cf58b1 [file] [log] [blame]
"""check builtin data descriptors such as mode and name attributes on a file are correctly handled
bug notified by Pierre Rouleau on 2005-04-24
"""
from __future__ import print_function
__revision__ = None
class File(file): # pylint: disable=undefined-variable
""" Testing new-style class inheritance from file"""
def __init__(self, name, mode="r", buffering=-1, verbose=False):
"""Constructor"""
self.was_modified = False
self.verbose = verbose
super(File, self).__init__(name, mode, buffering) # [super-with-arguments]
if self.verbose:
print(f"File {self.name} is opened. The mode is: {self.mode}")
def write(self, a_string):
""" Write a string to the file."""
super(File, self).write(a_string) # [super-with-arguments]
self.was_modified = True
def writelines(self, sequence):
""" Write a sequence of strings to the file. """
super(File, self).writelines(sequence) # [super-with-arguments]
self.was_modified = True
def close(self):
"""Close the file."""
if self.verbose:
print(f"Closing file {self.name}")
super(File, self).close() # [super-with-arguments]
self.was_modified = False