|
@@ -74,24 +74,170 @@ class Registration:
|
|
|
self.__password = value
|
|
|
|
|
|
|
|
|
+class File:
|
|
|
+
|
|
|
+ def __init__(self, name) -> None:
|
|
|
+ self.name = name
|
|
|
+ self.in_trash = False
|
|
|
+ self.is_deleted = False
|
|
|
+
|
|
|
+ def restore_from_trash(self):
|
|
|
+ print(f"Файл {self.name} восстановлен из корзины")
|
|
|
+ self.in_trash = False
|
|
|
+
|
|
|
+ def remove(self):
|
|
|
+ print(f"Файл {self.name} был удален")
|
|
|
+ self.is_deleted = True
|
|
|
+
|
|
|
+ def read(self):
|
|
|
+ if self.is_deleted == True:
|
|
|
+ print(f"ErrorReadFileDeleted({self.name})")
|
|
|
+ return
|
|
|
+ if self.in_trash == True:
|
|
|
+ print(f"ErrorReadFileTrashed({self.name})")
|
|
|
+ return
|
|
|
+ print(f"Прочитали все содержимое файла {self.name}")
|
|
|
+
|
|
|
+ def write(self, content):
|
|
|
+ if self.is_deleted:
|
|
|
+ print(f"ErrorWriteFileDeleted({self.name})")
|
|
|
+ return
|
|
|
+ if self.in_trash:
|
|
|
+ print(f"ErrorWriteFileTrashed({self.name})")
|
|
|
+ return
|
|
|
+ print(f"Записали значение {content} в файл {self.name}")
|
|
|
+
|
|
|
+
|
|
|
+class Trash:
|
|
|
+
|
|
|
+ content = []
|
|
|
+
|
|
|
+ def __init__(self):
|
|
|
+ pass
|
|
|
+
|
|
|
+ @staticmethod
|
|
|
+ def add(file: File):
|
|
|
+ if not isinstance(file, File):
|
|
|
+ print("В корзину можно добавлять только файл")
|
|
|
+ else:
|
|
|
+ file.in_trash = True
|
|
|
+ Trash.content.append(file)
|
|
|
+
|
|
|
+ @staticmethod
|
|
|
+ def clear():
|
|
|
+ print("Очищаем корзину")
|
|
|
+ while Trash.content:
|
|
|
+ Trash.content[0].remove()
|
|
|
+ Trash.content.pop(0)
|
|
|
+ print("Корзина пуста")
|
|
|
+
|
|
|
+ @staticmethod
|
|
|
+ def restore():
|
|
|
+ print("Восстанавливаем файлы из корзины")
|
|
|
+ while Trash.content:
|
|
|
+ Trash.content[0].restore_from_trash()
|
|
|
+ Trash.content.pop(0)
|
|
|
+ print("Корзина пуста")
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|
|
|
-def check_password_dictionary(value: str):
|
|
|
- with open('easy_passwords.txt', 'r', encoding='utf-8') as f:
|
|
|
- password_list = f.read().split('\n')
|
|
|
- print(password_list)
|
|
|
- # password_list = open('easy_passwords.txt', 'r', encoding='utf-8').read().split('\n')
|
|
|
- return value in password_list
|
|
|
|
|
|
def main():
|
|
|
- # reg = Registration('asdfa@sfsdf.werwe', 'QwerTy123')
|
|
|
- # reg = Registration('asdfa@sfsdf.werwe', 'QwerTy123')
|
|
|
- # print(reg.login)
|
|
|
- # print(reg.password)
|
|
|
|
|
|
- # print(check_password_dictionary('124244242'))
|
|
|
- # print(check_password_dictionary('as1SNdf'))
|
|
|
+ f1 = File('puppies.jpg')
|
|
|
+ f2 = File('cat.jpg')
|
|
|
+ f3 = File('xxx.doc')
|
|
|
+ passwords = File('pass.txt')
|
|
|
+
|
|
|
+ for file in [f1, f2, f3, passwords]:
|
|
|
+ assert file.is_deleted is False
|
|
|
+ assert file.in_trash is False
|
|
|
|
|
|
+ f3.read()
|
|
|
+ f3.remove()
|
|
|
+ assert f3.is_deleted is True
|
|
|
+ f3.read()
|
|
|
+ f3.write('hello')
|
|
|
|
|
|
+ assert Trash.content == []
|
|
|
+
|
|
|
+ Trash.add(f2)
|
|
|
+ Trash.add(passwords)
|
|
|
+ Trash.add(f3)
|
|
|
+
|
|
|
+ f1.read()
|
|
|
+ Trash.add(f1)
|
|
|
+ f1.read()
|
|
|
+
|
|
|
+ for file in [f1, f2, f3, passwords]:
|
|
|
+ assert file.in_trash is True
|
|
|
+
|
|
|
+ for f in [f2, passwords, f3, f1]:
|
|
|
+ assert f in Trash.content
|
|
|
+
|
|
|
+ Trash.restore()
|
|
|
+ assert Trash.content == [], 'После восстановления корзина должна была очиститься'
|
|
|
+
|
|
|
+ Trash.add(passwords)
|
|
|
+ Trash.add(f2)
|
|
|
+ Trash.add('hello')
|
|
|
+ Trash.add(f1)
|
|
|
+
|
|
|
+ for f in [passwords, f2, f1]:
|
|
|
+ assert f in Trash.content
|
|
|
+
|
|
|
+
|
|
|
+ Trash.clear()
|
|
|
+
|
|
|
+ for file in [passwords, f2, f1]:
|
|
|
+ assert file.is_deleted is True
|
|
|
+
|
|
|
+ assert Trash.content == [], 'После удаления файлов корзина должна была очиститься'
|
|
|
+
|
|
|
+ f1.read()
|
|
|
+
|
|
|
+ '''
|
|
|
+ f1 = File('puppies.jpg')
|
|
|
+ assert f1.name == 'puppies.jpg'
|
|
|
+ assert f1.in_trash is False
|
|
|
+ assert f1.is_deleted is False
|
|
|
+
|
|
|
+ f1.read() # Прочитали все содержимое файла puppies.jpg
|
|
|
+ f1.remove() # Файл puppies.jpg был удален
|
|
|
+ assert f1.is_deleted is True
|
|
|
+ f1.read() # ErrorReadFileDeleted(puppies.jpg)
|
|
|
+
|
|
|
+ passwords = File('pass.txt')
|
|
|
+ assert passwords.name == 'pass.txt'
|
|
|
+ assert passwords.in_trash is False
|
|
|
+ assert passwords.is_deleted is False
|
|
|
+
|
|
|
+ f3 = File('xxx.doc')
|
|
|
+
|
|
|
+ assert f3.__dict__ == {'name': 'xxx.doc', 'in_trash': False, 'is_deleted': False}
|
|
|
+ f3.read()
|
|
|
+ f3.remove()
|
|
|
+ assert f3.is_deleted is True
|
|
|
+ f3.read()
|
|
|
+ f3.in_trash = True
|
|
|
+ f3.is_deleted = False
|
|
|
+ f3.read()
|
|
|
+ f3.write('hello')
|
|
|
+ f3.restore_from_trash()
|
|
|
+ assert f3.in_trash is False
|
|
|
+ f3.write('hello') # Записали значение «hello» в файл cat.jpg
|
|
|
+
|
|
|
+ f2 = File('cat.jpg')
|
|
|
+ f2.write('hello') # Записали значение «hello» в файл cat.jpg
|
|
|
+ f2.write([1, 2, 3]) # Записали значение «hello» в файл cat.jpg
|
|
|
+ f2.remove() # Файл cat.jpg был удален
|
|
|
+ f2.write('world') # ErrorWriteFileDeleted(cat.jpg)
|
|
|
+ '''
|
|
|
+
|
|
|
+
|
|
|
+ '''
|
|
|
try:
|
|
|
s2 = Registration("fga", "asd12")
|
|
|
except ValueError as e:
|
|
@@ -195,7 +341,7 @@ def main():
|
|
|
raise TypeError("Пароль должен быть строкой")
|
|
|
|
|
|
print('U r hacked Pentagon')
|
|
|
-
|
|
|
+ '''
|
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|