|
12 | 12 | _parse_web_class_objects, |
13 | 13 | _to_v2_file_upload_item, |
14 | 14 | _next_cursor_is_present, |
| 15 | + _get_url, |
15 | 16 | ) |
16 | 17 |
|
17 | 18 |
|
@@ -108,3 +109,36 @@ def test_next_cursor_is_present(self): |
108 | 109 | assert _next_cursor_is_present({"response_metadata": {"next_cursor": ""}}) is False |
109 | 110 | assert _next_cursor_is_present({"response_metadata": {"next_cursor": None}}) is False |
110 | 111 | assert _next_cursor_is_present({"something_else": {"next_cursor": "next-page"}}) is False |
| 112 | + |
| 113 | + def test_get_url_prevent_double_slash(self): |
| 114 | + # Test case: Prevent double slash when both base_url and api_method include slashes |
| 115 | + api_url = _get_url("https://slack.com/api/", "/chat.postMessage") |
| 116 | + self.assertEqual( |
| 117 | + api_url, |
| 118 | + "https://slack.com/api/chat.postMessage", |
| 119 | + "Should correctly handle and remove double slashes between base_url and api_method", |
| 120 | + ) |
| 121 | + |
| 122 | + # Test case: Handle base_url without trailing slash |
| 123 | + api_url = _get_url("https://slack.com/api", "chat.postMessage") |
| 124 | + self.assertEqual( |
| 125 | + api_url, |
| 126 | + "https://slack.com/chat.postMessage", |
| 127 | + "Should correctly handle base_url without a trailing slash", |
| 128 | + ) |
| 129 | + |
| 130 | + # Test case: Handle api_method without leading slash |
| 131 | + api_url = _get_url("https://slack.com/api/", "chat.postMessage") |
| 132 | + self.assertEqual( |
| 133 | + api_url, |
| 134 | + "https://slack.com/api/chat.postMessage", |
| 135 | + "Should correctly handle api_method without a leading slash", |
| 136 | + ) |
| 137 | + |
| 138 | + # Test case: Both inputs are clean |
| 139 | + api_url = _get_url("https://slack.com/api", "/chat.postMessage") |
| 140 | + self.assertEqual( |
| 141 | + api_url, |
| 142 | + "https://slack.com/chat.postMessage", |
| 143 | + "Should correctly combine base_url and api_method with clean inputs", |
| 144 | + ) |
0 commit comments