Exemple #1
0
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
Exemple #2
0
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
Exemple #3
0
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
Exemple #4
0
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")
Exemple #5
0
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)
Exemple #6
0
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()
Exemple #7
0
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}')")
Exemple #8
0
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)