mirror of https://github.com/zulip/zulip.git
test_fixtures: Move test_db_status state under UUID_VAR_PATH.
This should mean that maintaining two Zulip development environments using the same Git checkout no longer has caching problems keeping track of the migration status.
This commit is contained in:
parent
b7c3b4df0c
commit
3983ebce9a
|
@ -13,7 +13,7 @@ sh "$(dirname "$0")/../scripts/setup/flush-memcached"
|
|||
|
||||
./manage.py purge_queue --all
|
||||
./manage.py migrate --noinput
|
||||
./manage.py get_migration_status --settings=zproject.settings --output="var/migration_status_dev"
|
||||
./manage.py get_migration_status --settings=zproject.settings --output="migration_status_dev"
|
||||
./manage.py createcachetable third_party_api_results
|
||||
./manage.py populate_db -n100 --threads=1
|
||||
# Ensure that the local user's API key is synced from ~/.zuliprc
|
||||
|
|
|
@ -328,8 +328,9 @@ def main(options):
|
|||
else:
|
||||
print("RabbitMQ is already configured.")
|
||||
|
||||
migration_status_path = os.path.join(UUID_VAR_PATH, "migration_status_dev")
|
||||
if options.is_force or not is_template_database_current(
|
||||
migration_status="var/migration_status_dev",
|
||||
migration_status=migration_status_path,
|
||||
settings="zproject.settings",
|
||||
database_name="zulip",
|
||||
):
|
||||
|
|
|
@ -23,7 +23,7 @@ sh "$(dirname "$0")/../../scripts/setup/flush-memcached"
|
|||
|
||||
./manage.py migrate --noinput --settings=zproject.test_settings
|
||||
./manage.py get_migration_status --settings=zproject.test_settings \
|
||||
--output="var/migration_status_test"
|
||||
--output="migration_status_test"
|
||||
|
||||
# This next line can be simplified to "-n0" once we fix our app (and tests) with 0 messages.
|
||||
./manage.py populate_db --settings=zproject.test_settings --test-suite -n30 \
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
import os
|
||||
import re
|
||||
import hashlib
|
||||
import sys
|
||||
from typing import Any, List, Optional, Text
|
||||
from importlib import import_module
|
||||
from six.moves import cStringIO as StringIO
|
||||
|
@ -9,9 +10,14 @@ from six.moves import cStringIO as StringIO
|
|||
from django.db import connections, DEFAULT_DB_ALIAS
|
||||
from django.db.utils import OperationalError
|
||||
from django.apps import apps
|
||||
from django.conf import settings
|
||||
from django.core.management import call_command
|
||||
from django.utils.module_loading import module_has_submodule
|
||||
|
||||
sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(__file__))))
|
||||
from scripts.lib.zulip_tools import get_dev_uuid_var_path
|
||||
|
||||
UUID_VAR_DIR = get_dev_uuid_var_path()
|
||||
FILENAME_SPLITTER = re.compile('[\W\-_]')
|
||||
|
||||
def database_exists(database_name, **options):
|
||||
|
@ -94,9 +100,9 @@ def _check_hash(target_hash_file, status_dir):
|
|||
|
||||
def is_template_database_current(
|
||||
database_name='zulip_test_template',
|
||||
migration_status='var/migration_status_test',
|
||||
migration_status=None,
|
||||
settings='zproject.test_settings',
|
||||
status_dir='var/test_db_status',
|
||||
status_dir=None,
|
||||
check_files=None):
|
||||
# type: (str, str, str, str, Optional[List[str]]) -> bool
|
||||
# Using str type for check_files because re.split doesn't accept unicode
|
||||
|
@ -107,6 +113,10 @@ def is_template_database_current(
|
|||
'tools/setup/postgres-init-test-db',
|
||||
'tools/setup/postgres-init-dev-db',
|
||||
]
|
||||
if status_dir is None:
|
||||
status_dir = os.path.join(UUID_VAR_DIR, 'test_db_status')
|
||||
if migration_status is None:
|
||||
migration_status = os.path.join(UUID_VAR_DIR, 'migration_status_test')
|
||||
|
||||
if not os.path.exists(status_dir):
|
||||
os.mkdir(status_dir)
|
||||
|
|
|
@ -1,11 +1,13 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
import argparse
|
||||
import os
|
||||
from typing import Any
|
||||
from django.conf import settings
|
||||
from django.db import DEFAULT_DB_ALIAS
|
||||
from django.core.management.base import BaseCommand
|
||||
|
||||
from zerver.lib.test_fixtures import get_migration_status
|
||||
|
||||
from scripts.lib.zulip_tools import get_dev_uuid_var_path
|
||||
|
||||
class Command(BaseCommand):
|
||||
help = "Get status of migrations."
|
||||
|
@ -26,7 +28,9 @@ class Command(BaseCommand):
|
|||
# type: (*Any, **Any) -> None
|
||||
result = get_migration_status(**options)
|
||||
if options['output'] is not None:
|
||||
with open(options['output'], 'w') as f:
|
||||
uuid_var_path = get_dev_uuid_var_path()
|
||||
path = os.path.join(uuid_var_path, options['output'])
|
||||
with open(path, 'w') as f:
|
||||
f.write(result)
|
||||
else:
|
||||
self.stdout.write(result)
|
||||
|
|
Loading…
Reference in New Issue