aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/hydrilla/builder/build.py6
-rw-r--r--src/hydrilla/builder/piggybacking.py4
-rw-r--r--tests/test_build.py4
3 files changed, 9 insertions, 5 deletions
diff --git a/src/hydrilla/builder/build.py b/src/hydrilla/builder/build.py
index 44f3dd9..89c1f5a 100644
--- a/src/hydrilla/builder/build.py
+++ b/src/hydrilla/builder/build.py
@@ -200,11 +200,13 @@ class Build:
path = piggybacked.resolve_file(desired_path)
if path is None:
path = (self.srcdir / desired_path).resolve()
- if not path.is_relative_to(self.srcdir):
+ try:
+ rel_path = path.relative_to(self.srcdir)
+ except ValueError:
raise FileReferenceError(_('loading_{}_outside_package_dir')
.format(filename))
- if str(path.relative_to(self.srcdir)) == 'index.json':
+ if str(rel_path) == 'index.json':
raise FileReferenceError(_('loading_reserved_index_json'))
else:
include_in_source_archive = False
diff --git a/src/hydrilla/builder/piggybacking.py b/src/hydrilla/builder/piggybacking.py
index 7c03946..00186bc 100644
--- a/src/hydrilla/builder/piggybacking.py
+++ b/src/hydrilla/builder/piggybacking.py
@@ -98,7 +98,9 @@ class Piggybacked:
path = path.resolve()
- if not path.is_relative_to(root_path):
+ try:
+ path.relative_to(root_path)
+ except ValueError:
raise FileReferenceError(_('loading_{}_outside_piggybacked_dir')
.format(file_ref_name))
diff --git a/tests/test_build.py b/tests/test_build.py
index a636488..8c204b9 100644
--- a/tests/test_build.py
+++ b/tests/test_build.py
@@ -281,7 +281,7 @@ def sample_source_change_index_json(monkeypatch, sample_source):
@collect(variant_makers)
def sample_source_add_comments(monkeypatch, sample_source):
"""Add index.json comments that should be preserved."""
- for dictionary in index_obj, *index_obj['definitions'], *expected:
+ for dictionary in (index_obj, *index_obj['definitions'], *expected):
monkeypatch.setitem(dictionary, 'comment', 'index.json comment')
@collect(variant_makers)
@@ -356,7 +356,7 @@ def sample_source_add_extra_props(monkeypatch, sample_source):
def sample_source_make_version_2(monkeypatch, sample_source,
expected_documents_to_modify=[]):
"""Increase sources' schema version from 1 to 2."""
- for obj in index_obj, *expected_documents_to_modify:
+ for obj in (index_obj, *expected_documents_to_modify):
monkeypatch.setitem(obj, '$schema', obj['$schema'].replace('1', '2'))
permission_variant_makers = []