first commit
This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
import tempfile
|
||||
import unittest
|
||||
from pathlib import Path
|
||||
|
||||
from cadpy import generation, step_artifacts
|
||||
from cadpy.step_targets import ResolvedStepTarget
|
||||
|
||||
|
||||
class StepArtifactsTests(unittest.TestCase):
|
||||
def test_existing_step_target_ignores_python_source_for_glb_regeneration(self) -> None:
|
||||
with tempfile.TemporaryDirectory() as temporary_directory:
|
||||
root = Path(temporary_directory)
|
||||
step_path = root / "part.step"
|
||||
source_path = root / "part.py"
|
||||
step_path.write_text("ISO-10303-21;\nEND-ISO-10303-21;\n", encoding="utf-8")
|
||||
source_path.write_text("def gen_step():\n return None\n", encoding="utf-8")
|
||||
|
||||
target = ResolvedStepTarget(
|
||||
cad_path="part",
|
||||
kind="part",
|
||||
source_path=source_path,
|
||||
step_path=step_path,
|
||||
)
|
||||
self.assertIsNone(step_artifacts._python_source_for_target(target))
|
||||
|
||||
def test_missing_logical_step_can_still_use_python_source(self) -> None:
|
||||
with tempfile.TemporaryDirectory() as temporary_directory:
|
||||
root = Path(temporary_directory)
|
||||
step_path = root / "part.step"
|
||||
source_path = root / "part.py"
|
||||
source_path.write_text("def gen_step():\n return None\n", encoding="utf-8")
|
||||
|
||||
target = ResolvedStepTarget(
|
||||
cad_path="part",
|
||||
kind="part",
|
||||
source_path=step_path,
|
||||
step_path=step_path,
|
||||
)
|
||||
self.assertEqual(step_artifacts._python_source_for_target(target), source_path)
|
||||
|
||||
def test_existing_step_spec_can_reuse_python_backed_glb_when_step_hash_matches(self) -> None:
|
||||
with tempfile.TemporaryDirectory() as temporary_directory:
|
||||
root = Path(temporary_directory)
|
||||
step_path = root / "part.step"
|
||||
step_path.write_text("ISO-10303-21;\nEND-ISO-10303-21;\n", encoding="utf-8")
|
||||
|
||||
spec = generation.EntrySpec(
|
||||
source_ref="part.step",
|
||||
cad_ref="part",
|
||||
kind="part",
|
||||
source_path=step_path,
|
||||
display_name="part",
|
||||
source="imported",
|
||||
step_path=step_path,
|
||||
)
|
||||
self.assertFalse(generation._artifact_source_kind_matches_spec(spec, {"sourceKind": "python"}))
|
||||
self.assertTrue(
|
||||
generation._artifact_source_kind_matches_spec(
|
||||
spec,
|
||||
{
|
||||
"sourceKind": "python",
|
||||
"stepHash": generation.step_file_hash(step_path),
|
||||
},
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user