Skip to main content
Glama

MCP Atlassian

by ArconixForge
test_env.py8.59 kB
"""Tests for environment variable utility functions.""" from mcp_atlassian.utils.env import ( is_env_extended_truthy, is_env_ssl_verify, is_env_truthy, ) class TestIsEnvTruthy: """Test the is_env_truthy function.""" def test_standard_truthy_values(self, monkeypatch): """Test standard truthy values: 'true', '1', 'yes'.""" truthy_values = ["true", "1", "yes"] for value in truthy_values: monkeypatch.setenv("TEST_VAR", value) assert is_env_truthy("TEST_VAR") is True # Test uppercase variants for value in truthy_values: monkeypatch.setenv("TEST_VAR", value.upper()) assert is_env_truthy("TEST_VAR") is True # Test mixed case variants for value in truthy_values: monkeypatch.setenv("TEST_VAR", value.capitalize()) assert is_env_truthy("TEST_VAR") is True def test_standard_falsy_values(self, monkeypatch): """Test that standard falsy values return False.""" falsy_values = ["false", "0", "no", "", "invalid", "y", "on"] for value in falsy_values: monkeypatch.setenv("TEST_VAR", value) assert is_env_truthy("TEST_VAR") is False def test_unset_variable_with_default(self, monkeypatch): """Test behavior when variable is unset with various defaults.""" monkeypatch.delenv("TEST_VAR", raising=False) # Default empty string assert is_env_truthy("TEST_VAR") is False # Default truthy value assert is_env_truthy("TEST_VAR", "true") is True assert is_env_truthy("TEST_VAR", "1") is True assert is_env_truthy("TEST_VAR", "yes") is True # Default falsy value assert is_env_truthy("TEST_VAR", "false") is False assert is_env_truthy("TEST_VAR", "0") is False def test_empty_string_environment_variable(self, monkeypatch): """Test behavior when environment variable is set to empty string.""" monkeypatch.setenv("TEST_VAR", "") assert is_env_truthy("TEST_VAR") is False class TestIsEnvExtendedTruthy: """Test the is_env_extended_truthy function.""" def test_extended_truthy_values(self, monkeypatch): """Test extended truthy values: 'true', '1', 'yes', 'y', 'on'.""" truthy_values = ["true", "1", "yes", "y", "on"] for value in truthy_values: monkeypatch.setenv("TEST_VAR", value) assert is_env_extended_truthy("TEST_VAR") is True # Test uppercase variants for value in truthy_values: monkeypatch.setenv("TEST_VAR", value.upper()) assert is_env_extended_truthy("TEST_VAR") is True # Test mixed case variants for value in truthy_values: monkeypatch.setenv("TEST_VAR", value.capitalize()) assert is_env_extended_truthy("TEST_VAR") is True def test_extended_falsy_values(self, monkeypatch): """Test that extended falsy values return False.""" falsy_values = ["false", "0", "no", "", "invalid", "off"] for value in falsy_values: monkeypatch.setenv("TEST_VAR", value) assert is_env_extended_truthy("TEST_VAR") is False def test_extended_vs_standard_difference(self, monkeypatch): """Test that extended truthy accepts 'y' and 'on' while standard doesn't.""" extended_only_values = ["y", "on"] for value in extended_only_values: monkeypatch.setenv("TEST_VAR", value) # Extended should be True assert is_env_extended_truthy("TEST_VAR") is True # Standard should be False assert is_env_truthy("TEST_VAR") is False def test_unset_variable_with_default(self, monkeypatch): """Test behavior when variable is unset with various defaults.""" monkeypatch.delenv("TEST_VAR", raising=False) # Default empty string assert is_env_extended_truthy("TEST_VAR") is False # Default truthy values assert is_env_extended_truthy("TEST_VAR", "true") is True assert is_env_extended_truthy("TEST_VAR", "y") is True assert is_env_extended_truthy("TEST_VAR", "on") is True # Default falsy value assert is_env_extended_truthy("TEST_VAR", "false") is False class TestIsEnvSslVerify: """Test the is_env_ssl_verify function.""" def test_ssl_verify_default_true(self, monkeypatch): """Test that SSL verification defaults to True when unset.""" monkeypatch.delenv("TEST_VAR", raising=False) assert is_env_ssl_verify("TEST_VAR") is True def test_ssl_verify_explicit_false_values(self, monkeypatch): """Test that SSL verification is False only for explicit false values.""" false_values = ["false", "0", "no"] for value in false_values: monkeypatch.setenv("TEST_VAR", value) assert is_env_ssl_verify("TEST_VAR") is False # Test uppercase variants for value in false_values: monkeypatch.setenv("TEST_VAR", value.upper()) assert is_env_ssl_verify("TEST_VAR") is False # Test mixed case variants for value in false_values: monkeypatch.setenv("TEST_VAR", value.capitalize()) assert is_env_ssl_verify("TEST_VAR") is False def test_ssl_verify_truthy_and_other_values(self, monkeypatch): """Test that SSL verification is True for truthy and other values.""" truthy_values = ["true", "1", "yes", "y", "on", "enable", "enabled", "anything"] for value in truthy_values: monkeypatch.setenv("TEST_VAR", value) assert is_env_ssl_verify("TEST_VAR") is True def test_ssl_verify_custom_default(self, monkeypatch): """Test SSL verification with custom defaults.""" monkeypatch.delenv("TEST_VAR", raising=False) # Custom default true assert is_env_ssl_verify("TEST_VAR", "true") is True # Custom default false assert is_env_ssl_verify("TEST_VAR", "false") is False # Custom default other value assert is_env_ssl_verify("TEST_VAR", "anything") is True def test_ssl_verify_empty_string(self, monkeypatch): """Test SSL verification when set to empty string.""" monkeypatch.setenv("TEST_VAR", "") # Empty string is not in the false values, so should be True assert is_env_ssl_verify("TEST_VAR") is True class TestEdgeCases: """Test edge cases and special scenarios.""" def test_whitespace_handling(self, monkeypatch): """Test that whitespace in values is not stripped.""" # Values with leading/trailing whitespace should not match monkeypatch.setenv("TEST_VAR", " true ") assert is_env_truthy("TEST_VAR") is False assert is_env_extended_truthy("TEST_VAR") is False monkeypatch.setenv("TEST_VAR", " false ") assert is_env_ssl_verify("TEST_VAR") is True # Not in false values def test_special_characters(self, monkeypatch): """Test behavior with special characters.""" special_values = ["true!", "@yes", "1.0", "y,", "on;"] for value in special_values: monkeypatch.setenv("TEST_VAR", value) assert is_env_truthy("TEST_VAR") is False assert is_env_extended_truthy("TEST_VAR") is False assert is_env_ssl_verify("TEST_VAR") is True # Not in false values def test_unicode_values(self, monkeypatch): """Test behavior with unicode values.""" unicode_values = ["truë", "yés", "1️⃣"] for value in unicode_values: monkeypatch.setenv("TEST_VAR", value) assert is_env_truthy("TEST_VAR") is False assert is_env_extended_truthy("TEST_VAR") is False assert is_env_ssl_verify("TEST_VAR") is True # Not in false values def test_numeric_string_edge_cases(self, monkeypatch): """Test numeric string edge cases.""" numeric_values = ["01", "1.0", "10", "-1", "2"] for value in numeric_values: monkeypatch.setenv("TEST_VAR", value) if value == "01": # "01" is not exactly "1", so should be False assert is_env_truthy("TEST_VAR") is False assert is_env_extended_truthy("TEST_VAR") is False else: assert is_env_truthy("TEST_VAR") is False assert is_env_extended_truthy("TEST_VAR") is False assert is_env_ssl_verify("TEST_VAR") is True # Not in false values

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ArconixForge/mcp-atlassian'

If you have feedback or need assistance with the MCP directory API, please join our Discord server