edq.config.testing
1import enum 2import os 3import typing 4 5import edq.config.app 6import edq.config.settings 7import edq.testing.cli 8import edq.testing.unittest 9import edq.util.crypto 10import edq.util.json 11 12class TestEnumStr(enum.Enum): 13 """ A test enum that only has strings. """ 14 15 FIRST = 'a' 16 SECOND = 'b' 17 18class TestApplicationConfig(edq.config.app.BaseApplicationConfig): 19 """ A test application config. """ 20 21 serialization_omit_none = True 22 23 def __init__(self, 24 user: typing.Union[str, None] = None, 25 token: typing.Union[edq.util.crypto.Secret, None] = None, 26 number: typing.Union[int, None] = None, 27 enum_value: typing.Union[TestEnumStr, None] = None, 28 **kwargs: typing.Any) -> None: 29 super().__init__(**kwargs) 30 31 self.user: typing.Union[str, None] = user 32 self.token: typing.Union[edq.util.crypto.Secret, None] = token 33 self.number: typing.Union[int, None] = number 34 self.enum_value: typing.Union[TestEnumStr, None] = enum_value 35 36def clear_env() -> None: 37 """ Clear out any EDQ-looking environment variables. """ 38 39 for key in os.environ.keys(): 40 if (key.startswith(edq.config.settings.get_env_prefix())): 41 os.environ.pop(key, None) 42 43def verify_cli_test_config_content( 44 test: edq.testing.unittest.BaseTest, 45 test_info: edq.testing.cli.CLITestInfo, 46 ) -> None: 47 """ Verify the contents of a config file created by a CLI test. """ 48 49 path = os.path.join(test_info.work_dir, *test_info.extra_options["path"].split('/')) 50 51 data_actual = edq.util.json.load_path(path) 52 data_expected = test_info.extra_options["data"] 53 54 test.assertJSONDictEqual(data_expected, data_actual) 55 56def set_testing_application_config_class( 57 test: edq.testing.unittest.BaseTest, 58 test_info: edq.testing.cli.CLITestInfo, 59 ) -> None: 60 """ Set the application config class to a more varied testing one. """ 61 62 edq.config.settings.set_application_config_class(TestApplicationConfig) 63 64def clear_testing_application_config_class( 65 test: edq.testing.unittest.BaseTest, 66 test_info: edq.testing.cli.CLITestInfo, 67 ) -> None: 68 """ Clear the application config class. """ 69 70 edq.config.settings.set_application_config_class()
class
TestEnumStr(enum.Enum):
13class TestEnumStr(enum.Enum): 14 """ A test enum that only has strings. """ 15 16 FIRST = 'a' 17 SECOND = 'b'
A test enum that only has strings.
FIRST =
<TestEnumStr.FIRST: 'a'>
SECOND =
<TestEnumStr.SECOND: 'b'>
19class TestApplicationConfig(edq.config.app.BaseApplicationConfig): 20 """ A test application config. """ 21 22 serialization_omit_none = True 23 24 def __init__(self, 25 user: typing.Union[str, None] = None, 26 token: typing.Union[edq.util.crypto.Secret, None] = None, 27 number: typing.Union[int, None] = None, 28 enum_value: typing.Union[TestEnumStr, None] = None, 29 **kwargs: typing.Any) -> None: 30 super().__init__(**kwargs) 31 32 self.user: typing.Union[str, None] = user 33 self.token: typing.Union[edq.util.crypto.Secret, None] = token 34 self.number: typing.Union[int, None] = number 35 self.enum_value: typing.Union[TestEnumStr, None] = enum_value
A test application config.
TestApplicationConfig( user: Optional[str] = None, token: Optional[edq.util.crypto.Secret] = None, number: Optional[int] = None, enum_value: Optional[TestEnumStr] = None, **kwargs: Any)
24 def __init__(self, 25 user: typing.Union[str, None] = None, 26 token: typing.Union[edq.util.crypto.Secret, None] = None, 27 number: typing.Union[int, None] = None, 28 enum_value: typing.Union[TestEnumStr, None] = None, 29 **kwargs: typing.Any) -> None: 30 super().__init__(**kwargs) 31 32 self.user: typing.Union[str, None] = user 33 self.token: typing.Union[edq.util.crypto.Secret, None] = token 34 self.number: typing.Union[int, None] = number 35 self.enum_value: typing.Union[TestEnumStr, None] = enum_value
token: Optional[edq.util.crypto.Secret]
enum_value: Optional[TestEnumStr]
Inherited Members
def
clear_env() -> None:
37def clear_env() -> None: 38 """ Clear out any EDQ-looking environment variables. """ 39 40 for key in os.environ.keys(): 41 if (key.startswith(edq.config.settings.get_env_prefix())): 42 os.environ.pop(key, None)
Clear out any EDQ-looking environment variables.
def
verify_cli_test_config_content( test: edq.testing.unittest.BaseTest, test_info: edq.testing.cli.CLITestInfo) -> None:
44def verify_cli_test_config_content( 45 test: edq.testing.unittest.BaseTest, 46 test_info: edq.testing.cli.CLITestInfo, 47 ) -> None: 48 """ Verify the contents of a config file created by a CLI test. """ 49 50 path = os.path.join(test_info.work_dir, *test_info.extra_options["path"].split('/')) 51 52 data_actual = edq.util.json.load_path(path) 53 data_expected = test_info.extra_options["data"] 54 55 test.assertJSONDictEqual(data_expected, data_actual)
Verify the contents of a config file created by a CLI test.
def
set_testing_application_config_class( test: edq.testing.unittest.BaseTest, test_info: edq.testing.cli.CLITestInfo) -> None:
57def set_testing_application_config_class( 58 test: edq.testing.unittest.BaseTest, 59 test_info: edq.testing.cli.CLITestInfo, 60 ) -> None: 61 """ Set the application config class to a more varied testing one. """ 62 63 edq.config.settings.set_application_config_class(TestApplicationConfig)
Set the application config class to a more varied testing one.
def
clear_testing_application_config_class( test: edq.testing.unittest.BaseTest, test_info: edq.testing.cli.CLITestInfo) -> None:
65def clear_testing_application_config_class( 66 test: edq.testing.unittest.BaseTest, 67 test_info: edq.testing.cli.CLITestInfo, 68 ) -> None: 69 """ Clear the application config class. """ 70 71 edq.config.settings.set_application_config_class()
Clear the application config class.