-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest_backup.py
More file actions
88 lines (76 loc) · 3.08 KB
/
Copy pathtest_backup.py
File metadata and controls
88 lines (76 loc) · 3.08 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#!/usr/bin/env python3
"""
Тестовый скрипт для проверки системы бекапов
"""
from backup import BackupManager
from data import TICKETS_DB, REFERRALS_DB, BONUSES_DB
from reviews import REVIEWS
import json
print("=" * 50)
print("🧪 Тест системы бекапов ClientBotManager")
print("=" * 50)
# Добавим тестовые данные
print("\n📝 Добавление тестовых данных...")
TICKETS_DB['123456789'] = {
'order_001': {
'order_id': 'order_001',
'user_id': 123456789,
'status': 'новый',
'data': {'fio': 'Иван Иванов', 'idea': 'Бот для продаж'}
}
}
REFERRALS_DB['987654321'] = [123456789, 111111111]
BONUSES_DB['987654321'] = 500
REVIEWS.append({'author': 'Тестовый юзер', 'text': 'Отличный бот!'})
print(f" ✅ Добавлено: 1 заказ, 1 реферальная группа, 1 отзыв")
# Инициализируем BackupManager
print("\n🔧 Инициализация BackupManager...")
manager = BackupManager('backups')
print(" ✅ BackupManager готов")
# Создаем бекап
print("\n📦 Создание бекапа...")
data_to_backup = {
'tickets': TICKETS_DB,
'referrals': REFERRALS_DB,
'bonuses': BONUSES_DB,
'reviews': REVIEWS
}
backup_path = manager.create_backup(data_to_backup)
if backup_path:
print(f" ✅ Бекап создан: {backup_path}")
else:
print(" ❌ Ошибка при создании бекапа")
exit(1)
# Получаем список бекапов
print("\n📂 Просмотр списка бекапов...")
backups = manager.list_backups()
print(f" 📊 Всего бекапов: {len(backups)}")
for i, backup in enumerate(backups, 1):
filename = backup['filename']
size_kb = backup['size_kb']
metadata = backup.get('metadata', {})
records = metadata.get('records_count', {})
print(f"\n {i}. {filename}")
print(f" Размер: {size_kb} KB")
if metadata:
created = metadata.get('created_at', 'неизвестно')
print(f" Создан: {created}")
print(f" Заказов: {records.get('tickets', 0)}")
print(f" Рефералов: {records.get('referrals', 0)}")
print(f" Отзывов: {records.get('reviews', 0)}")
# Восстанавливаем данные
print("\n🔄 Восстановление из бекапа...")
if backups:
restored = manager.restore_backup(backups[0]['filepath'])
if restored:
print(f" ✅ Данные восстановлены!")
print(f" Заказов: {len(restored.get('tickets', {}))}")
print(f" Рефералов: {len(restored.get('referrals', {}))}")
print(f" Отзывов: {len(restored.get('reviews', []))}")
else:
print(" ❌ Ошибка при восстановлении")
else:
print(" ⚠️ Нет доступных бекапов")
print("\n" + "=" * 50)
print("✅ Все тесты пройдены успешно!")
print("=" * 50)