import os
import shutil
from botocore import loaders
from tests import unittest, temporary_file
class TestLoaderAllowsDataPathOverride(unittest.TestCase):
def create_file(self, f, contents, name):
f.write(contents)
f.flush()
dirname = os.path.dirname(os.path.abspath(f.name))
override_name = os.path.join(dirname, name)
shutil.copy(f.name, override_name)
return override_name
def test_can_override_session(self):
with temporary_file('w') as f:
override_name = self.create_file(
f, contents='{"foo": "bar"}', name='_retry.json')
new_data_path = os.path.dirname(override_name)
loader = loaders.create_loader(search_path_string=new_data_path)
new_content = loader.load_data('_retry')
self.assertEqual(new_content, {"foo": "bar"})