|
1 | | -import logging |
2 | | -from unittest.mock import Mock |
3 | | -from ldclient.impl.util import validate_sdk_key |
| 1 | +from ldclient.impl.util import is_valid_sdk_key_format |
4 | 2 |
|
5 | 3 |
|
6 | | -def test_validate_sdk_key_valid(): |
| 4 | +def test_is_valid_sdk_key_format_valid(): |
7 | 5 | """Test validation of valid SDK keys""" |
8 | | - logger = Mock(spec=logging.Logger) |
9 | | - |
10 | 6 | valid_keys = [ |
11 | 7 | "sdk-12345678-1234-1234-1234-123456789012", |
12 | 8 | "valid-sdk-key-123", |
13 | | - "VALID_SDK_KEY_456" |
| 9 | + "VALID_SDK_KEY_456", |
| 10 | + "test.key_with.dots", |
| 11 | + "test-key-with-hyphens" |
14 | 12 | ] |
15 | 13 |
|
16 | 14 | for key in valid_keys: |
17 | | - assert validate_sdk_key(key, logger) is True |
18 | | - logger.warning.assert_not_called() |
19 | | - logger.reset_mock() |
| 15 | + assert is_valid_sdk_key_format(key) is True |
20 | 16 |
|
21 | 17 |
|
22 | | -def test_validate_sdk_key_invalid(): |
| 18 | +def test_is_valid_sdk_key_format_invalid(): |
23 | 19 | """Test validation of invalid SDK keys""" |
24 | | - logger = Mock(spec=logging.Logger) |
25 | | - |
26 | 20 | invalid_keys = [ |
27 | 21 | "sdk-key-with-\x00-null", |
28 | 22 | "sdk-key-with-\n-newline", |
29 | | - "sdk-key-with-\t-tab" |
| 23 | + "sdk-key-with-\t-tab", |
| 24 | + "sdk key with spaces", |
| 25 | + "sdk@key#with$special%chars", |
| 26 | + "sdk/key\\with/slashes" |
30 | 27 | ] |
31 | 28 |
|
32 | 29 | for key in invalid_keys: |
33 | | - assert validate_sdk_key(key, logger) is False |
34 | | - logger.warning.assert_called_with("SDK key contains invalid characters") |
35 | | - logger.reset_mock() |
| 30 | + assert is_valid_sdk_key_format(key) is False |
36 | 31 |
|
37 | 32 |
|
38 | | -def test_validate_sdk_key_non_string(): |
| 33 | +def test_is_valid_sdk_key_format_non_string(): |
39 | 34 | """Test validation of non-string SDK keys""" |
40 | | - logger = Mock(spec=logging.Logger) |
41 | | - |
42 | | - non_string_values = [123, None, object(), [], {}] |
| 35 | + non_string_values = [123, object(), [], {}] |
43 | 36 |
|
44 | 37 | for value in non_string_values: |
45 | | - result = validate_sdk_key(value, logger) |
46 | | - assert result is False |
47 | | - logger.warning.assert_called_with("SDK key must be a string") |
48 | | - logger.reset_mock() |
| 38 | + assert is_valid_sdk_key_format(value) is False |
| 39 | + |
| 40 | + |
| 41 | +def test_is_valid_sdk_key_format_empty_and_none(): |
| 42 | + """Test validation of empty and None SDK keys""" |
| 43 | + assert is_valid_sdk_key_format("") is True |
| 44 | + assert is_valid_sdk_key_format(None) is True |
49 | 45 |
|
50 | 46 |
|
51 | | -def test_validate_sdk_key_empty(): |
52 | | - """Test validation of empty SDK keys""" |
53 | | - logger = Mock(spec=logging.Logger) |
| 47 | +def test_is_valid_sdk_key_format_max_length(): |
| 48 | + """Test validation of SDK key maximum length""" |
| 49 | + valid_key = "a" * 8192 |
| 50 | + assert is_valid_sdk_key_format(valid_key) is True |
54 | 51 |
|
55 | | - assert validate_sdk_key("", logger) is True |
56 | | - logger.warning.assert_not_called() |
| 52 | + invalid_key = "a" * 8193 |
| 53 | + assert is_valid_sdk_key_format(invalid_key) is False |
0 commit comments