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_valid(self): self.assertTrue(V.is_valid_drive_letter('A')) self.assertTrue(V.is_valid_drive_letter('Z')) self.assertTrue(V.is_valid_drive_letter('a')) self.assertTrue(V.is_valid_drive_letter('z'))
def test_invalid(self): self.assertFalse(V.is_valid_drive_letter('')) self.assertFalse(V.is_valid_drive_letter(':')) self.assertFalse(V.is_valid_drive_letter('aa')) self.assertFalse(V.is_valid_drive_letter('a:'))