feat(artifacts): add immutable artifact store
This commit is contained in:
@@ -183,6 +183,83 @@ class RustBoundaryCheckTests(unittest.TestCase):
|
||||
self.assertEqual(violations[0].source, "crank-config")
|
||||
self.assertEqual(violations[0].dependency, "crank-core")
|
||||
|
||||
def test_rejects_artifact_store_dependency_on_workspace_crates(self) -> None:
|
||||
packages = [
|
||||
package(
|
||||
self.root,
|
||||
"crank-artifacts",
|
||||
"crates/crank-artifacts",
|
||||
["crank-core"],
|
||||
),
|
||||
package(self.root, "crank-core", "crates/crank-core"),
|
||||
]
|
||||
|
||||
violations = self.checker.find_violations(metadata(packages, self.root))
|
||||
|
||||
self.assertEqual(len(violations), 1)
|
||||
self.assertEqual(violations[0].source, "crank-artifacts")
|
||||
self.assertEqual(violations[0].dependency, "crank-core")
|
||||
|
||||
def test_allows_artifact_store_dev_dependency_on_workspace_crates(self) -> None:
|
||||
artifacts = package(
|
||||
self.root,
|
||||
"crank-artifacts",
|
||||
"crates/crank-artifacts",
|
||||
)
|
||||
artifacts["dependencies"] = [dependency("crank-test-support", "dev")]
|
||||
packages = [
|
||||
artifacts,
|
||||
package(
|
||||
self.root,
|
||||
"crank-test-support",
|
||||
"crates/crank-test-support",
|
||||
),
|
||||
]
|
||||
|
||||
violations = self.checker.find_violations(metadata(packages, self.root))
|
||||
|
||||
self.assertEqual(violations, [])
|
||||
|
||||
def test_rejects_artifact_store_build_dependency_on_workspace_crates(self) -> None:
|
||||
artifacts = package(
|
||||
self.root,
|
||||
"crank-artifacts",
|
||||
"crates/crank-artifacts",
|
||||
)
|
||||
artifacts["dependencies"] = [dependency("crank-core", "build")]
|
||||
packages = [
|
||||
artifacts,
|
||||
package(self.root, "crank-core", "crates/crank-core"),
|
||||
]
|
||||
|
||||
violations = self.checker.find_violations(metadata(packages, self.root))
|
||||
|
||||
self.assertEqual(len(violations), 1)
|
||||
self.assertEqual(violations[0].source, "crank-artifacts")
|
||||
self.assertEqual(violations[0].dependency, "crank-core")
|
||||
|
||||
def test_mixed_dependency_kinds_produce_one_production_violation(self) -> None:
|
||||
artifacts = package(
|
||||
self.root,
|
||||
"crank-artifacts",
|
||||
"crates/crank-artifacts",
|
||||
)
|
||||
artifacts["dependencies"] = [
|
||||
dependency("crank-core", "dev"),
|
||||
dependency("crank-core"),
|
||||
dependency("crank-core", "build"),
|
||||
]
|
||||
packages = [
|
||||
artifacts,
|
||||
package(self.root, "crank-core", "crates/crank-core"),
|
||||
]
|
||||
|
||||
violations = self.checker.find_violations(metadata(packages, self.root))
|
||||
|
||||
self.assertEqual(len(violations), 1)
|
||||
self.assertEqual(violations[0].source, "crank-artifacts")
|
||||
self.assertEqual(violations[0].dependency, "crank-core")
|
||||
|
||||
def test_rejects_domain_and_runtime_dependencies_on_observability(self) -> None:
|
||||
for source in ("crank-core", "crank-registry", "crank-runtime"):
|
||||
packages = [
|
||||
|
||||
Reference in New Issue
Block a user