import pytest from util.config.validators import ConfigValidationException from util.config.validators.validate_secscan import SecurityScannerValidator from util.secscan.fake import fake_security_scanner from test.fixtures import * @pytest.mark.parametrize('unvalidated_config', [ ({'DISTRIBUTED_STORAGE_PREFERENCE': []}), ]) def test_validate_noop(unvalidated_config, app): SecurityScannerValidator.validate(unvalidated_config, None, None) @pytest.mark.parametrize('unvalidated_config, expected_error', [ ({ 'TESTING': True, 'DISTRIBUTED_STORAGE_PREFERENCE': [], 'FEATURE_SECURITY_SCANNER': True, 'SECURITY_SCANNER_ENDPOINT': 'http://invalidhost', }, Exception), ({ 'TESTING': True, 'DISTRIBUTED_STORAGE_PREFERENCE': [], 'FEATURE_SECURITY_SCANNER': True, 'SECURITY_SCANNER_ENDPOINT': 'http://fakesecurityscanner', }, None), ]) def test_validate(unvalidated_config, expected_error, app): with fake_security_scanner(hostname='fakesecurityscanner'): if expected_error is not None: with pytest.raises(expected_error): SecurityScannerValidator.validate(unvalidated_config, None, None) else: SecurityScannerValidator.validate(unvalidated_config, None, None)