-
- Downloads
tests: each mock package now has its own class (#16157)
Packages in Spack are classes, and we need to be able to execute class methods on mock packages. The previous design used instances of a single MockPackage class; this version gives each package its own class that can spider depenencies. This allows us to implement class methods like `possible_dependencies()` on mock packages. This design change moves mock package creation into the `MockPackageMultiRepo`, and mock packages now *must* be created from a repo. This is required for us to mock `possible_dependencies()`, which needs to be able to get dependency packages from the package repo. Changes include: * `MockPackage` is now `MockPackageBase` * `MockPackageBase` instances must now be created with `MockPackageMultiRepo.add_package()` * add `possible_dependencies()` method to `MockPackageBase` * refactor tests to use new code structure * move package mocking infrastructure into `spack.util.mock_package`, as it's becoming a more sophisticated class and it gets lots in `conftest.py`
Showing
- lib/spack/spack/test/cmd/ci.py 9 additions, 10 deletionslib/spack/spack/test/cmd/ci.py
- lib/spack/spack/test/cmd/env.py 14 additions, 16 deletionslib/spack/spack/test/cmd/env.py
- lib/spack/spack/test/concretize.py 5 additions, 5 deletionslib/spack/spack/test/concretize.py
- lib/spack/spack/test/conftest.py 0 additions, 73 deletionslib/spack/spack/test/conftest.py
- lib/spack/spack/test/database.py 18 additions, 19 deletionslib/spack/spack/test/database.py
- lib/spack/spack/test/spec_dag.py 20 additions, 20 deletionslib/spack/spack/test/spec_dag.py
- lib/spack/spack/test/spec_yaml.py 9 additions, 10 deletionslib/spack/spack/test/spec_yaml.py
- lib/spack/spack/test/util/mock_package.py 43 additions, 0 deletionslib/spack/spack/test/util/mock_package.py
- lib/spack/spack/util/mock_package.py 161 additions, 0 deletionslib/spack/spack/util/mock_package.py
Loading
Please register or sign in to comment