Exemplo n.º 1
0
    def test_clear(self):
        """SpooledTempfileDriver - Clear Credentials"""
        descriptor = 'descriptor'
        credentials = Credentials('aaaa', True)  # pretend it's encrypted

        assert_true(self._sp_driver.save_credentials(descriptor, credentials))

        SpooledTempfileDriver.clear()

        assert_false(self._sp_driver.has_credentials(descriptor))
Exemplo n.º 2
0
    def test_save_and_load_credentials_persists_statically(self):
        """SpooledTempfileDriver - Save and Load Credentials"""
        raw_credentials_dict = {
            'python': 'is very difficult',
            'someone': 'save meeeee',
        }
        descriptor = 'descriptor'

        raw_credentials = json.dumps(raw_credentials_dict)
        encrypted_raw_credentials = encrypt_with_kms(raw_credentials, REGION,
                                                     KMS_ALIAS)

        credentials = Credentials(encrypted_raw_credentials, True)
        assert_true(self._sp_driver.save_credentials(descriptor, credentials))

        driver2 = SpooledTempfileDriver(
            'service', REGION)  # Create a separate, identical driver
        loaded_credentials = driver2.load_credentials(descriptor)

        assert_is_not_none(loaded_credentials)
        assert_true(loaded_credentials.is_encrypted())
        assert_equal(loaded_credentials.get_data_kms_decrypted(),
                     raw_credentials.encode())
Exemplo n.º 3
0
 def teardown():
     SpooledTempfileDriver.clear()
Exemplo n.º 4
0
 def setup(self):
     SpooledTempfileDriver.clear()
     self._sp_driver = SpooledTempfileDriver('service', REGION)
Exemplo n.º 5
0
class TestSpooledTempfileDriver:
    def setup(self):
        SpooledTempfileDriver.clear()
        self._sp_driver = SpooledTempfileDriver('service', REGION)

    @staticmethod
    def teardown():
        SpooledTempfileDriver.clear()

    def test_save_and_has_credentials(self):
        """SpooledTempfileDriver - Save and Has Credentials"""
        assert_false(self._sp_driver.has_credentials('descriptor'))

        credentials = Credentials('aaaa',
                                  True)  # let's pretend they're encrypted
        assert_true(self._sp_driver.save_credentials('descriptor',
                                                     credentials))

        assert_true(self._sp_driver.has_credentials('descriptor'))

    @mock_kms
    def test_save_and_load_credentials(self):
        """SpooledTempfileDriver - Save and Load Credentials"""
        raw_credentials = 'aaaa'
        descriptor = 'descriptor'
        encrypted_raw_credentials = encrypt_with_kms(raw_credentials, REGION,
                                                     KMS_ALIAS)

        credentials = Credentials(encrypted_raw_credentials, True, REGION)
        assert_true(self._sp_driver.save_credentials(descriptor, credentials))

        loaded_credentials = self._sp_driver.load_credentials(descriptor)

        assert_is_not_none(loaded_credentials)
        assert_true(loaded_credentials.is_encrypted())
        assert_equal(loaded_credentials.get_data_kms_decrypted(),
                     raw_credentials.encode())

    @mock_kms
    def test_save_and_load_credentials_persists_statically(self):
        """SpooledTempfileDriver - Save and Load Credentials"""
        raw_credentials_dict = {
            'python': 'is very difficult',
            'someone': 'save meeeee',
        }
        descriptor = 'descriptor'

        raw_credentials = json.dumps(raw_credentials_dict)
        encrypted_raw_credentials = encrypt_with_kms(raw_credentials, REGION,
                                                     KMS_ALIAS)

        credentials = Credentials(encrypted_raw_credentials, True)
        assert_true(self._sp_driver.save_credentials(descriptor, credentials))

        driver2 = SpooledTempfileDriver(
            'service', REGION)  # Create a separate, identical driver
        loaded_credentials = driver2.load_credentials(descriptor)

        assert_is_not_none(loaded_credentials)
        assert_true(loaded_credentials.is_encrypted())
        assert_equal(loaded_credentials.get_data_kms_decrypted(),
                     raw_credentials.encode())

    def test_save_errors_on_unencrypted(self):
        """SpooledTempfileDriver - Save Errors on Unencrypted Credentials"""
        raw_credentials = 'aaaa'
        descriptor = 'descriptor5'

        credentials = Credentials(raw_credentials, False)

        assert_false(self._sp_driver.save_credentials(descriptor, credentials))
        assert_false(self._sp_driver.has_credentials(descriptor))

    @patch('logging.Logger.error')
    def test_load_credentials_nonexistent(self, logging_error):
        """SpooledTempfileDriver - Load Credentials returns None on missing"""
        assert_false(self._sp_driver.has_credentials('qwertyuiop'))
        assert_is_none(self._sp_driver.load_credentials('qwertyuiop'))
        logging_error.assert_called_with(
            'SpooledTempfileDriver failed to load_credentials: Spool "%s" does not exist?',
            'service/qwertyuiop')

    def test_clear(self):
        """SpooledTempfileDriver - Clear Credentials"""
        descriptor = 'descriptor'
        credentials = Credentials('aaaa', True)  # pretend it's encrypted

        assert_true(self._sp_driver.save_credentials(descriptor, credentials))

        SpooledTempfileDriver.clear()

        assert_false(self._sp_driver.has_credentials(descriptor))
Exemplo n.º 6
0
 def teardown(self):
     self.kms_mocker.start()
     SpooledTempfileDriver.clear()
Exemplo n.º 7
0
 def setup(self):
     self.kms_mocker = mock_kms()
     self.kms_mocker.start()
     setup_mock_kms(REGION, KMS_ALIAS)
     SpooledTempfileDriver.clear()
     self._sp_driver = SpooledTempfileDriver('service', REGION)