Skip to content

Commit

Permalink
Using OWM.userdir for config bundle loader/manager
Browse files Browse the repository at this point in the history
  • Loading branch information
mwatts15 committed Aug 20, 2020
1 parent 412348f commit 7959007
Show file tree
Hide file tree
Showing 5 changed files with 25 additions and 6 deletions.
1 change: 1 addition & 0 deletions owmeta_core/bundle/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -375,6 +375,7 @@ def __init__(self, ident, bundles_directory=DEFAULT_BUNDLES_DIRECTORY, version=N
conf.update({'rdf.source': 'default'})
self.version = version
self.remotes = remotes
# XXX: Look at how we bring in projects remotes directory
if not remotes_directory:
remotes_directory = DEFAULT_REMOTES_DIRECTORY
self.remotes_directory = realpath(expandvars(expanduser(remotes_directory)))
Expand Down
11 changes: 9 additions & 2 deletions owmeta_core/command.py
Original file line number Diff line number Diff line change
Expand Up @@ -1081,13 +1081,20 @@ def _conf(self, *args, read_only=False):

deps = dat.get('dependencies', None)
if deps:
cfg_builder = BundleDependentStoreConfigBuilder(read_only=read_only)
bundles_directory = self.bundle._bundles_directory()
remotes_directory = self.bundle._user_remotes_directory()
# XXX: Look at how we bring in projects remotes directory
cfg_builder = BundleDependentStoreConfigBuilder(bundles_directory=bundles_directory,
remotes_directory=remotes_directory,
read_only=read_only)
store_name, store_conf = cfg_builder.build(store_conf, deps)
dat['rdf.source'] = 'default'
dat['rdf.store'] = store_name
dat['rdf.store_conf'] = store_conf

self._bundle_dep_mgr = BundleDependencyManager(dependencies=lambda: deps)
self._bundle_dep_mgr = BundleDependencyManager(bundles_directory=bundles_directory,
remotes_directory=remotes_directory,
dependencies=lambda: deps)

self._owm_connection = connect(conf=dat)

Expand Down
6 changes: 6 additions & 0 deletions owmeta_core/commands/bundle.py
Original file line number Diff line number Diff line change
Expand Up @@ -304,6 +304,12 @@ def fetch(self, bundle_id, bundle_version=None):
def _bundles_directory(self):
return p(self._parent.userdir, 'bundles')

def _user_remotes_directory(self):
return p(self._parent.userdir, 'remotes')

def _project_remotes_directory(self):
return p(self._parent.owmdir, 'remotes')

def load(self, input_file_name):
'''
Load a bundle from a file and register it into the project
Expand Down
4 changes: 2 additions & 2 deletions tests/OWMCLITest.py
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ def test_translator_list(owm_project):


def test_translate_data_source_loader(owm_project):
owm = OWM(owmdir=p(owm_project.testdir, '.owm'))
owm = owm_project.owm()
with owm.connect() as conn:
with transaction.manager:
# Create data sources
Expand Down Expand Up @@ -183,7 +183,7 @@ def test_translate_data_source_loader(owm_project):
@mark.core_bundle_version(1)
@mark.core_bundle
def test_source_list(owm_project, core_bundle):
owm = OWM(owmdir=p(owm_project.testdir, '.owm'))
owm = owm_project.owm()
deps = [{'id': 'openworm/owmeta-core', 'version': 1}]
owm.config.set('dependencies', json.dumps(deps))

Expand Down
9 changes: 7 additions & 2 deletions tests/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,6 @@ def owm_project_with_customizations(request):

@fixture
def core_bundle(request):
print('core_bundle')
CoreBundle = namedtuple('CoreBundle', ('id', 'version', 'source_directory', 'remote'))
version_mark = request.node.get_closest_marker('core_bundle_version')
if not version_mark:
Expand Down Expand Up @@ -199,7 +198,13 @@ def f(*args, **kwargs):

res.owmdir = p(res.testdir, DEFAULT_OWM_DIR)
res.default_context_id = default_context_id
res.owm = lambda **kwargs: OWM(owmdir=p(res.testdir, '.owm'), **kwargs)

def owm(**kwargs):
r = OWM(owmdir=p(res.testdir, '.owm'), **kwargs)
r.userdir = p(res.test_homedir, '.owmeta')
return r

res.owm = owm

yield res
finally:
Expand Down

0 comments on commit 7959007

Please sign in to comment.