mirror of
https://github.com/ansible/awx.git
synced 2026-01-14 11:20:39 -03:30
get logging test endpoint to work again
The handler and formatter classes are expecting an object and the previous method passed a dict, so this change converts the data into a mock settings object.
This commit is contained in:
parent
7d283f1dfd
commit
c1ff41fa45
@ -152,7 +152,12 @@ class SettingLoggingTest(GenericAPIView):
|
||||
serializer = self.get_serializer(obj, data=request.data)
|
||||
serializer.is_valid(raise_exception=True)
|
||||
try:
|
||||
BaseHTTPSHandler.perform_test(serializer.validated_data)
|
||||
class MockSettings:
|
||||
pass
|
||||
mock_settings = MockSettings()
|
||||
for k, v in serializer.validated_data.items():
|
||||
setattr(mock_settings, k, v)
|
||||
BaseHTTPSHandler.perform_test(mock_settings)
|
||||
except LoggingConnectivityException as e:
|
||||
return Response({'error': str(e)}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
|
||||
return Response(status=status.HTTP_200_OK)
|
||||
|
||||
@ -2,7 +2,6 @@
|
||||
# All Rights Reserved.
|
||||
|
||||
# Python
|
||||
from collections import OrderedDict
|
||||
import pytest
|
||||
import os
|
||||
|
||||
@ -209,26 +208,18 @@ def test_logging_aggregrator_connection_test_bad_request(get, post, admin, key):
|
||||
def test_logging_aggregrator_connection_test_valid(mocker, get, post, admin):
|
||||
with mock.patch.object(BaseHTTPSHandler, 'perform_test') as perform_test:
|
||||
url = reverse('api:setting_logging_test')
|
||||
post(url, {
|
||||
user_data = {
|
||||
'LOG_AGGREGATOR_TYPE': 'logstash',
|
||||
'LOG_AGGREGATOR_HOST': 'localhost',
|
||||
'LOG_AGGREGATOR_PORT': 8080,
|
||||
'LOG_AGGREGATOR_USERNAME': 'logger',
|
||||
'LOG_AGGREGATOR_PASSWORD': 'mcstash'
|
||||
}, user=admin, expect=200)
|
||||
perform_test.assert_called_with(OrderedDict([
|
||||
('LOG_AGGREGATOR_HOST', u'localhost'),
|
||||
('LOG_AGGREGATOR_PORT', 8080),
|
||||
('LOG_AGGREGATOR_TYPE', 'logstash'),
|
||||
('LOG_AGGREGATOR_USERNAME', 'logger'),
|
||||
('LOG_AGGREGATOR_PASSWORD', 'mcstash'),
|
||||
('LOG_AGGREGATOR_LOGGERS', ['awx', 'activity_stream', 'job_events', 'system_tracking']),
|
||||
('LOG_AGGREGATOR_INDIVIDUAL_FACTS', False),
|
||||
('LOG_AGGREGATOR_ENABLED', False),
|
||||
('LOG_AGGREGATOR_TOWER_UUID', ''),
|
||||
('LOG_AGGREGATOR_PROTOCOL', 'https'),
|
||||
('LOG_AGGREGATOR_TCP_TIMEOUT', 5),
|
||||
]))
|
||||
}
|
||||
post(url, user_data, user=admin, expect=200)
|
||||
create_settings = perform_test.call_args[0][0]
|
||||
for k, v in user_data.items():
|
||||
assert hasattr(create_settings, k)
|
||||
assert getattr(create_settings, k) == v
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
|
||||
@ -22,7 +22,7 @@ class LogstashFormatter(LogstashFormatterVersion1):
|
||||
settings_module = kwargs.pop('settings_module', None)
|
||||
ret = super(LogstashFormatter, self).__init__(**kwargs)
|
||||
if settings_module:
|
||||
self.host_id = settings_module.CLUSTER_HOST_ID
|
||||
self.host_id = getattr(settings_module, 'CLUSTER_HOST_ID', None)
|
||||
if hasattr(settings_module, 'LOG_AGGREGATOR_TOWER_UUID'):
|
||||
self.tower_uuid = settings_module.LOG_AGGREGATOR_TOWER_UUID
|
||||
self.message_type = getattr(settings_module, 'LOG_AGGREGATOR_TYPE', 'other')
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user