import pytest from heleos import naming from heleos.errors import ValidationError def test_slug_and_db_identifiers(): assert naming.slug("acme", "shop") == "acme-shop" assert naming.slug_underscored("acme", "my-shop") == "acme_my_shop" assert naming.database_name("acme", "shop") == "db_acme_shop" assert naming.database_user("acme", "shop") == "u_acme_shop" assert naming.sftp_user("acme") == "sftp_acme" @pytest.mark.parametrize("bad", ["", "A", "1abc", "ab_cd", "-abc", "x" * 40]) def test_invalid_customer(bad): with pytest.raises(ValidationError): naming.validate_customer(bad) @pytest.mark.parametrize("name", ["proxy", "platform", "mariadb", "deployments"]) def test_reserved_names_rejected(name): with pytest.raises(ValidationError): naming.validate_customer(name) with pytest.raises(ValidationError): naming.validate_site(name) def test_valid_ids(): assert naming.validate_customer("acme") == "acme" assert naming.validate_site("blog-2") == "blog-2"