misc: create backup of configuration file before import (#24927) #528
|
@ -383,6 +383,9 @@ def test_settings_export_import(pub):
|
|||
resp = resp.form.submit('submit')
|
||||
assert 'Unknown referenced objects [Unknown datasources: foobar]' in resp
|
||||
|
||||
# check a backup of settings has been created
|
||||
assert [x for x in os.listdir(pub.app_dir) if x.startswith('config.pck.backup-')]
|
||||
|
||||
|
||||
def test_settings_user(pub):
|
||||
user = create_superuser(pub)
|
||||
|
|
|
@ -19,12 +19,14 @@ import json
|
|||
import os
|
||||
import pickle
|
||||
import re
|
||||
import shutil
|
||||
import sys
|
||||
import traceback
|
||||
import zipfile
|
||||
from contextlib import ExitStack, contextmanager
|
||||
|
||||
from django.utils.encoding import force_str
|
||||
from django.utils.timezone import localtime
|
||||
|
||||
from . import custom_views, data_sources, formdef, sessions
|
||||
from .admin import RootDirectory as AdminRootDirectory
|
||||
|
@ -282,6 +284,12 @@ class WcsPublisher(QommonPublisher):
|
|||
rv[key] = value
|
||||
return rv
|
||||
|
||||
now = localtime()
|
||||
for filename in ('config.pck', 'config.json'):
|
||||
filepath = os.path.join(self.app_dir, filename)
|
||||
if os.path.exists(filepath):
|
||||
shutil.copyfile(filepath, filepath + '.backup-%s' % now.strftime('%Y%m%d'))
|
||||
|
||||
with zipfile.ZipFile(fd) as z:
|
||||
for f in z.namelist():
|
||||
if f in ('.indexes', '.max_id'):
|
||||
|
|
Loading…
Reference in New Issue