Skip to content
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 42 additions & 0 deletions src/rez/tests/test_package_respository.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# SPDX-License-Identifier: Apache-2.0
# Copyright Contributors to the Rez Project


"""
Test package repository plugin.
"""
import unittest

from rezplugins.package_repository import filesystem
from rez.packages import create_package
from rez.tests.util import TestBase, TempdirMixin
from rez.utils.platform_ import platform_


class TestFilesystemPackageRepository(TestBase, TempdirMixin):
```?
@classmethod
def setUpClass(cls):
TempdirMixin.setUpClass()

cls.settings = dict()

@classmethod
def tearDownClass(cls):
TempdirMixin.tearDownClass()

@unittest.skipIf(platform_.name != "windows",
"Skipping because this issue only affects case-insensitive platforms.")
def test_mismatching_case(self):
"""Test that we get a caught PackageRepositoryError on case-insensitive platforms."""
pool = filesystem.ResourcePool(cache_size=None)
pkg_repository = filesystem.FileSystemPackageRepository(self.root, pool)

package = create_package("myTestPackage", data={})
variant = next(package.iter_variants())
case_mismatch_package = create_package("MyTestPackage", data={})
case_mismatch_variant = next(case_mismatch_package.iter_variants())

pkg_repository._create_variant(variant, overrides={})
with self.assertRaises(filesystem.PackageRepositoryError):
pkg_repository._create_variant(case_mismatch_variant, overrides={})
5 changes: 5 additions & 0 deletions src/rezplugins/package_repository/filesystem.py
Original file line number Diff line number Diff line change
Expand Up @@ -1213,6 +1213,11 @@ def _create_variant(self, variant, dry_run=False, overrides=None):
family = self.get_package_family(variant_name)
if not family:
family = self._create_family(variant_name)
if not family:
raise PackageRepositoryError(
f'Package family: {variant_name} does not exist and could not be created '
f'in repository: {self.location}. Perhaps family already exists with different character case?'
)

if isinstance(family, FileSystemCombinedPackageFamilyResource):
raise NotImplementedError(
Expand Down
Loading