|
30 | 30 | import os
|
31 | 31 | import re
|
32 | 32 | import unittest
|
33 |
| -from typing import Optional |
| 33 | +from datetime import datetime |
34 | 34 | from pathlib import Path
|
| 35 | +from typing import Optional |
| 36 | +from zoneinfo import ZoneInfo |
35 | 37 |
|
36 | 38 | import pytest
|
37 | 39 |
|
38 | 40 | from build123d.build_common import GridLocations
|
39 | 41 | from build123d.build_enums import Unit
|
40 | 42 | from build123d.build_line import BuildLine
|
41 | 43 | from build123d.build_sketch import BuildSketch
|
42 |
| -from build123d.exporters3d import export_gltf, export_step, export_brep, export_stl |
| 44 | +from build123d.exporters3d import export_brep, export_gltf, export_step, export_stl |
43 | 45 | from build123d.geometry import Color, Pos, Vector, VectorLike
|
44 | 46 | from build123d.objects_curve import Line
|
45 | 47 | from build123d.objects_part import Box, Sphere
|
@@ -144,6 +146,29 @@ def test_export_step_unknown(self):
|
144 | 146 | os.chmod("box_read_only.step", 0o777) # Make the file read/write
|
145 | 147 | os.remove("box_read_only.step")
|
146 | 148 |
|
| 149 | + def test_export_step_timestamp_datetime(self): |
| 150 | + b = Box(1, 1, 1) |
| 151 | + t = datetime(2025, 5, 6, 21, 30, 25, tzinfo=ZoneInfo("Europe/Amsterdam")) |
| 152 | + self.assertTrue(export_step(b, "box.step", timestamp=t)) |
| 153 | + with open("box.step", "r") as file: |
| 154 | + step_data = file.read() |
| 155 | + os.remove("box.step") |
| 156 | + self.assertEqual( |
| 157 | + re.findall("FILE_NAME\\('[^']*','([^']*)'", step_data), |
| 158 | + ["2025-05-06T21:30:25+02:00"], |
| 159 | + ) |
| 160 | + |
| 161 | + def test_export_step_timestamp_str(self): |
| 162 | + b = Box(1, 1, 1) |
| 163 | + self.assertTrue(export_step(b, "box.step", timestamp="0000-00-00T00:00:00")) |
| 164 | + with open("box.step", "r") as file: |
| 165 | + step_data = file.read() |
| 166 | + os.remove("box.step") |
| 167 | + self.assertEqual( |
| 168 | + re.findall("FILE_NAME\\('[^']*','([^']*)'", step_data), |
| 169 | + ["0000-00-00T00:00:00"], |
| 170 | + ) |
| 171 | + |
147 | 172 |
|
148 | 173 | class TestExportGltf(DirectApiTestCase):
|
149 | 174 | def test_export_gltf(self):
|
|
0 commit comments