Example #1
0
 def setup(self):
     """LookupTables - Setup S3 bucket mocking"""
     # pylint: disable=attribute-defined-outside-init
     self.config = load_config('tests/unit/conf')
     self.lookup_tables = LookupTables(self.buckets_info)
     self.s3_mock = mock_s3()
     self.s3_mock.start()
     for bucket, files in self.buckets_info.iteritems():
         for json_file in files:
             put_mock_s3_object(
                 bucket, json_file,
                 json.dumps({
                     '{}_key'.format(bucket):
                     '{}_value'.format(os.path.splitext(json_file)[0])
                 }), self.region)
Example #2
0
    def test_load_lookup_tables_compresed(self, mock_logger):
        """LookupTables - Load lookup table, compressed file"""
        self.config['global']['infrastructure']['lookup_tables'][
            'enabled'] = True
        lookup_tables = LookupTables.load_lookup_tables(self.config)
        # Replace one of the S3 objects with a compressed version
        put_mock_s3_object(
            'bucket_name', 'bar.json',
            zlib.compress(json.dumps({'compressed_key': 'compressed_val'})),
            self.region)
        result = lookup_tables.download_s3_objects()

        assert_equal(result.get('bar'), {'compressed_key': 'compressed_val'})
        assert_equal(result.get('foo'), {'bucket_name_key': 'foo_value'})
        mock_logger.assert_any_call('Data in \'%s\' is not compressed',
                                    'foo.json')
Example #3
0
    def test_get_creds_from_s3(self):
        """OutputDispatcher - Get Creds From S3"""
        test_data = 'credential test string'

        bucket_name = self._dispatcher.secrets_bucket
        key = self._dispatcher.output_cred_name(self._descriptor)

        local_cred_location = os.path.join(self._dispatcher._local_temp_dir(), key)

        put_mock_s3_object(bucket_name, key, test_data, REGION)

        self._dispatcher._get_creds_from_s3(local_cred_location, self._descriptor)

        with open(local_cred_location) as creds:
            line = creds.readline()

        assert_equal(line, test_data)
Example #4
0
    def test_load_lookup_tables(self, mock_logger):
        """Rules Engine - Load lookup table"""
        s3_mock = mock_s3()
        s3_mock.start()
        put_mock_s3_object('bucket_name', 'foo.json',
                           json.dumps({'key1': 'value1'}), 'us-east-1')
        put_mock_s3_object('bucket_name', 'bar.json',
                           json.dumps({'key2': 'value2'}), 'us-east-1')
        self.config['global']['infrastructure']['lookup_tables'][
            'enabled'] = True
        _ = RulesEngine(self.config)
        assert_equal(RulesEngine.get_lookup_table('foo'), {'key1': 'value1'})
        assert_equal(RulesEngine.get_lookup_table('bar'), {'key2': 'value2'})
        assert_equal(RulesEngine.get_lookup_table('not_exist'), None)

        _ = RulesEngine(self.config)
        mock_logger.assert_called()

        s3_mock.stop()