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')
|
resp = resp.form.submit('submit')
|
||||||
assert 'Unknown referenced objects [Unknown datasources: foobar]' in resp
|
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):
|
def test_settings_user(pub):
|
||||||
user = create_superuser(pub)
|
user = create_superuser(pub)
|
||||||
|
|
|
@ -19,12 +19,14 @@ import json
|
||||||
import os
|
import os
|
||||||
import pickle
|
import pickle
|
||||||
import re
|
import re
|
||||||
|
import shutil
|
||||||
import sys
|
import sys
|
||||||
import traceback
|
import traceback
|
||||||
import zipfile
|
import zipfile
|
||||||
from contextlib import ExitStack, contextmanager
|
from contextlib import ExitStack, contextmanager
|
||||||
|
|
||||||
from django.utils.encoding import force_str
|
from django.utils.encoding import force_str
|
||||||
|
from django.utils.timezone import localtime
|
||||||
|
|
||||||
from . import custom_views, data_sources, formdef, sessions
|
from . import custom_views, data_sources, formdef, sessions
|
||||||
from .admin import RootDirectory as AdminRootDirectory
|
from .admin import RootDirectory as AdminRootDirectory
|
||||||
|
@ -282,6 +284,12 @@ class WcsPublisher(QommonPublisher):
|
||||||
rv[key] = value
|
rv[key] = value
|
||||||
return rv
|
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:
|
with zipfile.ZipFile(fd) as z:
|
||||||
for f in z.namelist():
|
for f in z.namelist():
|
||||||
if f in ('.indexes', '.max_id'):
|
if f in ('.indexes', '.max_id'):
|
||||||
|
|
Loading…
Reference in New Issue