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)
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')
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)
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()