def test_get_attrs_from_obj(): """Tests 'attrs_from_obj() method of configuration class.""" # noinspection PyMissingOrEmptyDocstring class AnyClass: """Example class with an attribute, a method, and a property.""" def __init__(self): self.any_attr = 1 def any_callable_method(self): return self.any_attr + 1 @property def any_property_as_well(self): return self.any_callable_method() + 1 from snowmobile import Configuration cfg = Configuration(config_file_nm=CONFIG_FILE_NM) any_instance_of_any_class = AnyClass() attributes = cfg.attrs_from_obj(obj=any_instance_of_any_class) methods = cfg.methods_from_obj(obj=any_instance_of_any_class) assert attributes["any_attr"] == 1 assert methods["any_callable_method"]() == 2 assert attributes["any_property_as_well"] == 3
def test_set_item_on_base_class(): """Verifies behavior of __setitem__ dunder method for base class.""" from snowmobile import Configuration cfg = Configuration(config_file_nm=CONFIG_FILE_NM) cfg.script.any_arbitrary_attribute = 1 # cfg.script derives from Base, cfg does not cfg.script["tw"] = 1 assert cfg.script.any_arbitrary_attribute assert cfg.script.tw
def test_finds_a_valid_configuration_file(): """""" from snowmobile import Configuration cfg = Configuration(config_file_nm=CONFIG_FILE_NM) cfg.cache.clear(CONFIG_FILE_NM) cfg2 = Configuration(config_file_nm=CONFIG_FILE_NM) assert cfg.location == cfg2.location
def test_error_on_no_configuration_file_found(): """Test basic behavior of ``snowmobile.toml`` file save.""" from snowmobile import Configuration with pytest.raises(Exception): _ = Configuration( config_file_nm="_an_invalid_snowmobile_test_file.txt")
def test_base_json_serialization(): """Testing serialization methods of pydantic-derived objects.""" from snowmobile import Configuration cfg = Configuration(config_file_nm=CONFIG_FILE_NM) assert cfg.script.json(by_alias=True) == cfg.script.__json__(by_alias=True) assert cfg.script.json(by_alias=False) != cfg.script.json(by_alias=True)
def test_export_configuration(tmpdir): """Test basic behavior of ``snowmobile.toml`` file save.""" from pathlib import Path from snowmobile import Configuration tmpdir = Path(tmpdir) Configuration(export_dir=tmpdir) assert (tmpdir / "snowmobile.toml").exists()
def test_configuration_dunder_methods(): """Verifies appearance of __str__ and __repr__ methods.""" from snowmobile import Configuration cfg = Configuration(config_file_nm=CONFIG_FILE_NM) assert str(cfg) == f"snowmobile.Configuration('{CONFIG_FILE_NM}')" assert (str(repr(cfg)) == f"snowmobile.Configuration(config_file_nm='{CONFIG_FILE_NM}')")
def test_configuration_json_serialization(): """Testing serialization methods of configuration objects.""" from snowmobile import Configuration cfg = Configuration(config_file_nm=CONFIG_FILE_NM) assert cfg.json(by_alias=True) == cfg.__json__(by_alias=True) assert cfg.json(by_alias=False) != cfg.json(by_alias=True)