mirror of
https://github.com/chanzuckerberg/cellxgene.git
synced 2026-09-18 18:38:11 +08:00
66 lines
2.7 KiB
Python
66 lines
2.7 KiB
Python
import unittest
|
|
|
|
from server.common.config.app_config import AppConfig
|
|
from server.test import FIXTURES_ROOT
|
|
from server.test.unit.common.config import ConfigTests
|
|
from server.common.errors import ConfigurationError
|
|
|
|
|
|
class BaseConfigTest(ConfigTests):
|
|
def setUp(self):
|
|
self.config_file_name = f"{unittest.TestCase.id(self).split('.')[-1]}.yml"
|
|
self.config = AppConfig()
|
|
self.config.update_server_config(app__flask_secret_key="secret")
|
|
self.config.update_server_config(multi_dataset__dataroot=FIXTURES_ROOT)
|
|
self.server_config = self.config.server_config
|
|
self.config.complete_config()
|
|
|
|
message_list = []
|
|
|
|
def noop(message):
|
|
message_list.append(message)
|
|
|
|
messagefn = noop
|
|
self.context = dict(messagefn=messagefn, messages=message_list)
|
|
|
|
def get_config(self, **kwargs):
|
|
file_name = self.custom_app_config(
|
|
dataroot=f"{FIXTURES_ROOT}", config_file_name=self.config_file_name, **kwargs
|
|
)
|
|
config = AppConfig()
|
|
config.update_from_config_file(file_name)
|
|
return config
|
|
|
|
def test_mapping_creation_returns_map_of_server_and_dataset_config(self):
|
|
config = AppConfig()
|
|
mapping = config.default_dataset_config.create_mapping(config.default_config)
|
|
self.assertIsNotNone(mapping["server__app__verbose"])
|
|
self.assertIsNotNone(mapping["dataset__presentation__max_categories"])
|
|
self.assertIsNotNone(mapping["dataset__user_annotations__ontology__obo_location"])
|
|
self.assertIsNotNone(mapping["server__multi_dataset__allowed_matrix_types"])
|
|
|
|
def test_changes_from_default_returns_list_of_nondefault_config_values(self):
|
|
config = self.get_config(verbose="true", lfc_cutoff=0.05)
|
|
server_changes = config.server_config.changes_from_default()
|
|
dataset_changes = config.default_dataset_config.changes_from_default()
|
|
|
|
self.assertEqual(
|
|
server_changes,
|
|
[
|
|
("app__verbose", True, False),
|
|
("app__flask_secret_key", "secret", None),
|
|
("multi_dataset__dataroot", FIXTURES_ROOT, None),
|
|
("multi_dataset__matrix_cache__timelimit_s", 5, 30),
|
|
("data_locator__s3__region_name", "us-east-1", True),
|
|
],
|
|
)
|
|
self.assertEqual(dataset_changes, [("diffexp__lfc_cutoff", 0.05, 0.01)])
|
|
|
|
def test_check_config_throws_error_if_attr_has_not_been_checked(self):
|
|
config = self.get_config(verbose="true")
|
|
config.complete_config()
|
|
config.check_config()
|
|
config.update_server_config(app__verbose=False)
|
|
with self.assertRaises(ConfigurationError):
|
|
config.check_config()
|