27
27
IsOrganisationLightspeedSubscriber ,
28
28
)
29
29
from ansible_ai_connect .ai .api .tests .test_views import WisdomServiceAPITestCaseBase
30
- from ansible_ai_connect .ai .api .utils .version import api_version_reverse as reverse
31
30
from ansible_ai_connect .organizations .models import Organization
31
+ from ansible_ai_connect .test_utils import APIVersionTestCaseBase
32
32
33
33
34
34
@patch .object (IsOrganisationAdministrator , "has_permission" , return_value = True )
35
35
@patch .object (IsOrganisationLightspeedSubscriber , "has_permission" , return_value = True )
36
- class TestTelemetrySettingsView (WisdomServiceAPITestCaseBase ):
36
+ class TestTelemetrySettingsView (APIVersionTestCaseBase , WisdomServiceAPITestCaseBase ):
37
37
def setUp (self ):
38
38
super ().setUp ()
39
39
feature_flags .FeatureFlags .instance = None
40
40
41
41
def test_get_settings_authentication_error (self , * args ):
42
42
# self.client.force_authenticate(user=self.user)
43
- r = self .client .get (reverse ("telemetry_settings" ))
43
+ r = self .client .get (self . api_version_reverse ("telemetry_settings" ))
44
44
self .assertEqual (r .status_code , HTTPStatus .UNAUTHORIZED )
45
45
46
46
def test_permission_classes (self , * args ):
47
- url = reverse ("telemetry_settings" )
47
+ url = self . api_version_reverse ("telemetry_settings" )
48
48
view = resolve (url ).func .view_class
49
49
50
50
required_permissions = [
@@ -62,7 +62,7 @@ def test_get_settings_without_org_id(self, *args):
62
62
self .client .force_authenticate (user = self .user )
63
63
64
64
with self .assertLogs (logger = "root" , level = "DEBUG" ) as log :
65
- r = self .client .get (reverse ("telemetry_settings" ))
65
+ r = self .client .get (self . api_version_reverse ("telemetry_settings" ))
66
66
self .assertEqual (r .status_code , HTTPStatus .BAD_REQUEST )
67
67
self .assert_segment_log (log , "telemetrySettingsGet" , None )
68
68
@@ -75,7 +75,7 @@ def test_get_settings_when_undefined(self, LDClient, *args):
75
75
self .client .force_authenticate (user = self .user )
76
76
77
77
with self .assertLogs (logger = "root" , level = "DEBUG" ) as log :
78
- r = self .client .get (reverse ("telemetry_settings" ))
78
+ r = self .client .get (self . api_version_reverse ("telemetry_settings" ))
79
79
self .assertEqual (r .status_code , HTTPStatus .OK )
80
80
self .assertFalse (r .data ["optOut" ])
81
81
self .assert_segment_log (log , "telemetrySettingsGet" , None , opt_out = False )
@@ -91,22 +91,22 @@ def test_get_settings_when_defined(self, LDClient, *args):
91
91
self .client .force_authenticate (user = self .user )
92
92
93
93
with self .assertLogs (logger = "root" , level = "DEBUG" ) as log :
94
- r = self .client .get (reverse ("telemetry_settings" ))
94
+ r = self .client .get (self . api_version_reverse ("telemetry_settings" ))
95
95
self .assertEqual (r .status_code , HTTPStatus .OK )
96
96
self .assertTrue (r .data ["optOut" ])
97
97
self .assert_segment_log (log , "telemetrySettingsGet" , None , opt_out = True )
98
98
99
99
def test_set_settings_authentication_error (self , * args ):
100
100
# self.client.force_authenticate(user=self.user)
101
- r = self .client .post (reverse ("telemetry_settings" ))
101
+ r = self .client .post (self . api_version_reverse ("telemetry_settings" ))
102
102
self .assertEqual (r .status_code , HTTPStatus .UNAUTHORIZED )
103
103
104
104
@override_settings (SEGMENT_WRITE_KEY = "DUMMY_KEY_VALUE" )
105
105
def test_set_settings_without_org_id (self , * args ):
106
106
self .client .force_authenticate (user = self .user )
107
107
108
108
with self .assertLogs (logger = "root" , level = "DEBUG" ) as log :
109
- r = self .client .post (reverse ("telemetry_settings" ))
109
+ r = self .client .post (self . api_version_reverse ("telemetry_settings" ))
110
110
self .assertEqual (r .status_code , HTTPStatus .BAD_REQUEST )
111
111
self .assert_segment_log (log , "telemetrySettingsSet" , None )
112
112
@@ -118,15 +118,15 @@ def test_set_settings_with_valid_value(self, LDClient, *args):
118
118
self .user .organization = Organization .objects .get_or_create (id = 123 )[0 ]
119
119
self .client .force_authenticate (user = self .user )
120
120
# Settings should initially be False
121
- r = self .client .get (reverse ("telemetry_settings" ))
121
+ r = self .client .get (self . api_version_reverse ("telemetry_settings" ))
122
122
self .assertEqual (r .status_code , HTTPStatus .OK )
123
123
self .assertFalse (r .data ["optOut" ])
124
124
125
125
# Set settings
126
126
with self .assertLogs (logger = "ansible_ai_connect.users.signals" , level = "DEBUG" ) as signals :
127
127
with self .assertLogs (logger = "root" , level = "DEBUG" ) as log :
128
128
r = self .client .post (
129
- reverse ("telemetry_settings" ),
129
+ self . api_version_reverse ("telemetry_settings" ),
130
130
data = '{ "optOut": "True" }' ,
131
131
content_type = "application/json" ,
132
132
)
@@ -141,7 +141,7 @@ def test_set_settings_with_valid_value(self, LDClient, *args):
141
141
)
142
142
143
143
# Check Settings were stored
144
- r = self .client .get (reverse ("telemetry_settings" ))
144
+ r = self .client .get (self . api_version_reverse ("telemetry_settings" ))
145
145
self .assertEqual (r .status_code , HTTPStatus .OK )
146
146
self .assertTrue (r .data ["optOut" ])
147
147
@@ -156,7 +156,7 @@ def test_set_settings_throws_exception(self, LDClient, *args):
156
156
with patch ("django.db.models.base.Model.save" , side_effect = DatabaseError ()):
157
157
with self .assertLogs (logger = "root" , level = "DEBUG" ) as log :
158
158
r = self .client .post (
159
- reverse ("telemetry_settings" ),
159
+ self . api_version_reverse ("telemetry_settings" ),
160
160
data = '{ "optOut": "False" }' ,
161
161
content_type = "application/json" ,
162
162
)
@@ -173,7 +173,7 @@ def test_set_settings_throws_validation_exception(self, LDClient, *args):
173
173
174
174
with self .assertLogs (logger = "root" , level = "DEBUG" ) as log :
175
175
r = self .client .post (
176
- reverse ("telemetry_settings" ),
176
+ self . api_version_reverse ("telemetry_settings" ),
177
177
data = '{ "unknown_json_field": "a-new-key" }' ,
178
178
content_type = "application/json" ,
179
179
)
@@ -183,9 +183,11 @@ def test_set_settings_throws_validation_exception(self, LDClient, *args):
183
183
184
184
@patch .object (IsOrganisationAdministrator , "has_permission" , return_value = True )
185
185
@patch .object (IsOrganisationLightspeedSubscriber , "has_permission" , return_value = False )
186
- class TestTelemetrySettingsViewAsNonSubscriber (WisdomServiceAPITestCaseBase ):
186
+ class TestTelemetrySettingsViewAsNonSubscriber (
187
+ APIVersionTestCaseBase , WisdomServiceAPITestCaseBase
188
+ ):
187
189
def test_get_settings_as_non_subscriber (self , * args ):
188
190
self .user .organization = Organization .objects .get_or_create (id = 123 )[0 ]
189
191
self .client .force_authenticate (user = self .user )
190
- r = self .client .get (reverse ("telemetry_settings" ))
192
+ r = self .client .get (self . api_version_reverse ("telemetry_settings" ))
191
193
self .assertEqual (r .status_code , HTTPStatus .FORBIDDEN )
0 commit comments