def test_value_decyrpt(self, sops_mock):
        encrypted_config_file_path = os.path.join(
            os.path.dirname(__file__), 'decryptors', 'files',
            'tssc-config-secret-stuff.yml')

        config_value = ConfigValue(
            value=
            'ENC[AES256_GCM,data:UGKfnzsSrciR7GXZJhOCMmFrz3Y6V3pZsd3P,iv:yuReqA+n+rRXVHMc+2US5t7yPx54sooZSXWV4KLjDIs=,tag:jueP7/ZWLfYrEuhh+4eS8g==,type:str]',
            parent_source=encrypted_config_file_path,
            path_parts=[
                'tssc-config', 'global-environment-defaults', 'DEV',
                'kube-api-token'
            ])

        DecryptionUtils.register_config_value_decryptor(SOPS())

        sops_mock.side_effect = create_sops_side_effect('mock decrypted value')
        decrypted_value = config_value.value
        sops_mock.assert_called_once_with(
            '--decrypt',
            '--extract=["tssc-config"]["global-environment-defaults"]["DEV"]["kube-api-token"]',
            None,
            encrypted_config_file_path,
            _in=None,
            _out=Any(StringIO),
            _err=Any(StringIO))
        self.assertEqual(decrypted_value, 'mock decrypted value')
예제 #2
0
    def test_encrypted_value_with_sops_decryptor(self, sops_mock):
        encrypted_config_file_path = os.path.join(
            os.path.dirname(__file__), 'files', 'tssc-config-secret-stuff.yml')

        config_file_path = os.path.join(os.path.dirname(__file__), 'files',
                                        'tssc-config.yml')

        decryptors_config_file_path = os.path.join(
            os.path.dirname(__file__), 'files', 'tssc-config-decryptors.yml')

        mock_decrypted_value = 'mock decrypted value'
        sops_mock.side_effect = create_sops_side_effect(mock_decrypted_value)
        self._run_main_test(argv=[
            '--step', 'required-step-config-test', '--environment', 'DEV'
        ],
                            config_files=[
                                encrypted_config_file_path, config_file_path,
                                decryptors_config_file_path
                            ],
                            expected_results={
                                'tssc-results': {
                                    'required-step-config-test': {
                                        'environment-name': 'DEV',
                                        'kube-api-token': mock_decrypted_value,
                                        'required-config-key':
                                        mock_decrypted_value
                                    }
                                }
                            })
    def test_encrypted_value_with_sops_decryptor(self, sops_mock):
        encrypted_config_file_path = os.path.join(
            os.path.dirname(__file__), 'files',
            'step-runner-config-secret-stuff.yml')

        config_file_path = os.path.join(os.path.dirname(__file__), 'files',
                                        'step-runner-config.yml')

        decryptors_config_file_path = os.path.join(
            os.path.dirname(__file__), 'files',
            'step-runner-config-decryptors.yml')

        mock_decrypted_value = 'mock decrypted value'
        sops_mock.side_effect = create_sops_side_effect(mock_decrypted_value)
        self._run_main_test(
            argv=[
                '--step', 'required-step-config-test', '--environment', 'DEV'
            ],
            config_files=[
                encrypted_config_file_path, config_file_path,
                decryptors_config_file_path
            ],
            expected_results={
                'step-runner-results': {
                    'DEV': {
                        'required-step-config-test': {
                            'tests.helpers.sample_step_implementers.RequiredStepConfigStepImplementer':
                            {
                                'artifacts': [{
                                    'name': 'environment-name',
                                    'description': '',
                                    'value': 'DEV'
                                }, {
                                    'name': 'kube-api-token',
                                    'description': '',
                                    'value': 'mock decrypted value'
                                }, {
                                    'name': 'required-config-key',
                                    'description': '',
                                    'value': 'mock decrypted value'
                                }],
                                'message':
                                '',
                                'sub-step-implementer-name':
                                'tests.helpers.sample_step_implementers.RequiredStepConfigStepImplementer',
                                'success':
                                True
                            }
                        }
                    }
                }
            })