def __init__(self, drive): """ Creates a `DiskDrive` from a `drive`. `drive` must be the path to a Windows disk drive (from 'A:' to 'Z:', case-insensitive). If only the first positional argument is provided and it is already an instance of the `DiskDrive` class (either directly or by inheritance), this constructor will clone it and create a new `DiskDrive` object with the same properties. """ new_letter = drive._drive_letter if isinstance(drive, self.__class__) else drive cleaned_letter = clean_drive_letter(new_letter) if is_valid_drive_letter(cleaned_letter): self._drive_letter = cleaned_letter else: raise InvalidDiskDriveError(new_letter)
def test_clean_drive_letter(self): self.assertEqual(C.clean_drive_letter('A'), 'A') self.assertEqual(C.clean_drive_letter('A:'), 'A') self.assertEqual(C.clean_drive_letter('A:\\'), 'A') self.assertEqual(C.clean_drive_letter('a'), 'A') self.assertEqual(C.clean_drive_letter('a:\\'), 'A')