|
9 | 9 | BotInfoIdentity, |
10 | 10 | Configuration, |
11 | 11 | ConflictException, |
| 12 | + EdgeRequest, |
| 13 | + EdgeRequestHeadersInner, |
12 | 14 | ErrorCode, |
13 | 15 | ErrorResponse, |
14 | 16 | Event, |
| 17 | + EventEdge, |
15 | 18 | EventSearch, |
16 | 19 | EventUpdate, |
17 | 20 | ForbiddenException, |
@@ -83,6 +86,74 @@ def delete_visitor_path(visitor_id, region: Region = Region.US): |
83 | 86 | base = Configuration.get_host(region) |
84 | 87 | return f'{base}/visitors/{visitor_id}' |
85 | 88 |
|
| 89 | + @staticmethod |
| 90 | + def get_edge_path(region: Region = Region.US): |
| 91 | + base = Configuration.get_host(region) |
| 92 | + return f'{base}/edge' |
| 93 | + |
| 94 | + def test_analyze_request_for_automation_intelligence(self) -> None: |
| 95 | + """Test case for analyze_request_for_automation_intelligence |
| 96 | +
|
| 97 | + Collect Automation Intelligence. |
| 98 | + """ |
| 99 | + mock_pool = MockPoolManager(self) |
| 100 | + self.api.api_client.rest_client.pool_manager = mock_pool |
| 101 | + edge_request = EdgeRequest( |
| 102 | + headers=[EdgeRequestHeadersInner(name='Host', value='example.com')], |
| 103 | + method='GET', |
| 104 | + url='https://example.com/login', |
| 105 | + ipv4_address='34.162.244.71', |
| 106 | + ) |
| 107 | + mock_pool.expect_request( |
| 108 | + 'POST', |
| 109 | + TestFingerprintApi.get_edge_path(), |
| 110 | + headers=self.request_headers, |
| 111 | + preload_content=True, |
| 112 | + timeout=None, |
| 113 | + body=( |
| 114 | + '{"headers": [{"name": "Host", "value": "example.com"}], ' |
| 115 | + '"method": "GET", "url": "https://example.com/login", ' |
| 116 | + '"ipv4_address": "34.162.244.71"}' |
| 117 | + ), |
| 118 | + response_data_file='edge/post_edge_200.json', |
| 119 | + ) |
| 120 | + |
| 121 | + event_edge_response = self.api.analyze_request_for_automation_intelligence(edge_request) |
| 122 | + self.assertIsInstance(event_edge_response, EventEdge) |
| 123 | + self.assertEqual(event_edge_response.source, 'edge') |
| 124 | + |
| 125 | + def test_analyze_request_for_automation_intelligence_bad_request(self) -> None: |
| 126 | + """Test case for analyze_request_for_automation_intelligence with 400 Bad Request""" |
| 127 | + mock_pool = MockPoolManager(self) |
| 128 | + self.api.api_client.rest_client.pool_manager = mock_pool |
| 129 | + edge_request = EdgeRequest( |
| 130 | + headers=[EdgeRequestHeadersInner(name='Host', value='example.com')], |
| 131 | + method='GET', |
| 132 | + url='https://example.com/login', |
| 133 | + ipv4_address='34.162.244.71', |
| 134 | + ) |
| 135 | + mock_pool.expect_request( |
| 136 | + 'POST', |
| 137 | + TestFingerprintApi.get_edge_path(), |
| 138 | + headers=self.request_headers, |
| 139 | + preload_content=True, |
| 140 | + timeout=None, |
| 141 | + body=( |
| 142 | + '{"headers": [{"name": "Host", "value": "example.com"}], ' |
| 143 | + '"method": "GET", "url": "https://example.com/login", ' |
| 144 | + '"ipv4_address": "34.162.244.71"}' |
| 145 | + ), |
| 146 | + response_status_code=400, |
| 147 | + response_data_file='errors/400_request_body_invalid.json', |
| 148 | + ) |
| 149 | + |
| 150 | + with self.assertRaises(BadRequestException) as context: |
| 151 | + self.api.analyze_request_for_automation_intelligence(edge_request) |
| 152 | + |
| 153 | + self.assertEqual(context.exception.status, 400) |
| 154 | + self.assertIsInstance(context.exception.data, ErrorResponse) |
| 155 | + self.assertEqual(context.exception.data.error.code, ErrorCode.REQUEST_CANNOT_BE_PARSED) |
| 156 | + |
86 | 157 | def test_delete_visitor_data(self) -> None: |
87 | 158 | """Test case for delete_visitor_data |
88 | 159 |
|
|
0 commit comments